NVIDIA & CUDA

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

NVIDIA & CUDA

Непрочитанное сообщение Olej » 24 окт 2011, 11:13

Это вот сообщения не очень свежие, но конца прошлого года:

Разрушая Америку
в октябре Министерство обороны Китая представило мощнейший суперкомпьютер мира, Tianhe-1A, который настолько мощен, что по словам одного американского эксперта, «камня на камне не оставляет от существующего компьютера №1» в Америке.

Tianhe-1A : самый быстрый суперкомпьютер - на базе процессоров NVIDIA Tesla
28 октября 2010, 22:33
Tianhe-1A, новый суперкомпьютер, представленный на выставке HPC 2010 China, установил новый рекорд производительности в 2,507 петафлоп в бенчмарке LINPACK, став самой быстрой системой в Китае и во всем мире.

В основе Tianhe-1A лежат современные гетерогенные вычисления на основе параллельной работы графических процессоров и многоядерных центральных процессоров, которые обеспечили значительный прирост в производительности и позволили уменьшить размеры системы и сократить энергопотребление. Система построена на 7168 графических процессорах NVIDIA Tesla M2050 и 14336 CPU; идентичную производительность можно достичь только при использовании более 50 000 CPU на гораздо большей площади.
Изображение
Изображение

Судя по картинкам :-o , примерно 5х11=55 стоек...

Эта информация сама по себе интересна:

- для того, чтобы знать, и не опростоволоситься в разговорах в хорошем обществе ;-), что самые быстрые компьютеры не в USA, а в China...

- ещё интереснее она в сочетании с информацией о том, что в мире у 3-х стран есть (испытаны) истребители 5-го поколения: USA (2 уже устаревшие модели), России (T-150, он, кажется, называется ... sic!: который будут производить совместно: Россия + Бразилия + Индия) и ... Китай, который месяц-два назад провели испытательный полёт, чем произвели фурор среди американских аналитиков, "спрогнозировавших", что Китай не сделает ничего подобного до 2018 года...


Но разговор не об этих интересностях Китая :lol: , а о том, что первейший в мире суперкомпьютер построен на GPU NVIDIA + повторить-опробовать эту технологию (и называется она CUDA) можно на любом самом примитивном десктопе (и чем примитивнее - тем убедительнее ;-) ), и достаточно для этого поставить видеокарту (GPU) от NVIDIA, даже не самой дорогой серии Tesla (как делают богатые китайцы)...
-------
* - CUDA (Compute Unified Device Architecture) - архитектура с унифицированными вычислениями.


Я специально для таких испытаний поставил себе GeForce GT 520 - достаточно свежий, но самый бюджетный ;-) вариант (попробовать годится, как-то толком использовать - нет).

О всём, что связано с параллельными вычислениями на GPU, буду писать сюда.
Последний раз редактировалось Olej 14 ноя 2011, 02:33, всего редактировалось 2 раза.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 24 окт 2011, 11:26

Olej писал(а):О всём, что связано с параллельными вычислениями на GPU, буду писать сюда.
Я уже отвечал на вопрос вот здесь: viewtopic.php?f=5&t=1492, но там это частное обсуждение, поэтому есть смысл коротко повторить:

Все tools (SDK etc.) что требуются для CUDA свободно раздаются на сайте NVIDIA, вот здесь :
http://developer.nvidia.com/cuda-downloads
- это не опенсорс, все установки бинарные, но фри...

По CUDA есть такая (основная?) книжка:
http://www.amazon.com/Programming-Massi ... 32&sr=1-11
Изображение
Эту книгу в подлиннике мне припёр из Amazon мой работодатель ... для которого и работа моя состоит в разгребании экзотических технологий.

Есть 2 русскоязычные книги (1 из них перевод):
http://www.nvidia.ru/object/cuda-books-ru.html
- как видите, это показано на русскоязычном сайте NVIDIA.
Я был бы сильно благодарен, если бы кто указал URL электронных копий этих книг, где можно скачать?
P.S. ух ты! :lol:
- из представленных на страничке NVIDIA книжек (а это, наверное, и все из основных, что есть в мире?): 2 - на русском, 4 - на английском, 6 - на китайском. :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 24 окт 2011, 13:16

Olej писал(а): Все tools (SDK etc.) что требуются для CUDA свободно раздаются на сайте NVIDIA, вот здесь :
http://developer.nvidia.com/cuda-downloads
Скачивается и ставится оно всё легко и успешно:

Код: Выделить всё

[olej@nvidia CUDA]$ chmod a+x *.run
[olej@nvidia CUDA]$ ls -l
итого 302564
-rwxrwxr-x. 1 olej olej 143499533 Сен  3 01:09 cudatoolkit_4.0.17_linux_32_fedora13.run
-rwxrwxr-x. 1 olej olej   3376466 Сен 30 19:37 cudatools_4.0.17_linux_32.run
-rwxrwxr-x. 1 olej olej 129498736 Сен 30 19:44 gpucomputingsdk_4.0.17_linux.run
-rwxrwxr-x. 1 olej olej  32704856 Сен  2 22:53 NVIDIA-Linux-x86-280.13.run
-rw-rw-r--. 1 olej olej    723864 Сен 30 19:36 visualprofiler_4.0.51_linux_32_fedora13.tar.gz
Все инсталляции ставятся однотипно:

Код: Выделить всё

[root@nvidia CUDA]# ./cudatools_4.0.17_linux_32.run
Verifying archive integrity... All good.
Uncompressing NVIDIA CUDA TOOLS..........................................................................
Enter install path (default /usr/local/cuda/CUDAToolsSDK):
«Debugger» -> «/usr/local/cuda/CUDAToolsSDK/Debugger»
«Debugger/doc» -> «/usr/local/cuda/CUDAToolsSDK/Debugger/doc»
...
В итоге имеем

Код: Выделить всё

[olej@nvidia cuda]$ ls /usr/local/cuda
bin  computeprof  doc  include  lib  open64  src
[olej@nvidia images]$ du -hs /usr/local/cuda
473M	/usr/local/cuda

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 27 окт 2011, 01:40

Вот здесь, к примеру:
http://developer.download.nvidia.com/co ... ry_1.1.pdf
- на 14 страничках (маленький документ) описывается применение библиотеки CUDA для выполнения быстрых преобразований Фурье (FFT).
Это для представления: тот, кто минимально сталкивался с цифровой обработкой сигналов, сразу сообразит о чём речь...
И это - в сотни раз быстрее, чем на самом быстром вашем десктопе, сколько бы там не было Core в вашем CPU, и на какой бы частоте они не крутились :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 29 окт 2011, 23:40

Olej писал(а): Все tools (SDK etc.) что требуются для CUDA свободно раздаются на сайте NVIDIA, вот здесь :
http://developer.nvidia.com/cuda-downloads
- это не опенсорс, все установки бинарные, но фри...
Н-да ... не поспевают ребятки из NVIDIA :-( ;-)
Последняя редакция SDK файл установочный у них называется cudatoolkit_4.0.17_linux_32_fedora13.run, как легко понятно, под Fedora 13 ... и всё бы ничего, но при make SDK (одного из многочисленных example):

Код: Выделить всё

In file included from /usr/local/cuda/include/cuda_runtime.h:59:0,
                 from <command-line>:0:
/usr/local/cuda/include/host_config.h:82:2: ошибка: #error -- unsupported GNU version! gcc 4.5 and up are not supported!
make[2]: *** [obj/i386/release/Mandelbrot_sm11.cu_11.o] Ошибка 1
make[2]: Выход из каталога `/home/olej/NVIDIA_GPU_Computing_SDK/C/src/Mandelbrot'
make[1]: *** [src/Mandelbrot/Makefile.ph_build] Ошибка 2
make[1]: Выход из каталога `/home/olej/NVIDIA_GPU_Computing_SDK/C'
make: *** [all] Ошибка 2
Вот она, плата за проприетарность + бинарность + фри... когда хочется "и рыбкку съесть и на ### сесть" :evil:
А сборка в Fedora всего лишь 14:

Код: Выделить всё

[olej@nvidia NVIDIA_GPU_Computing_SDK]$ gcc --version
gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
Copyright (C) 2010 Free Software Foundation, Inc.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 30 окт 2011, 12:00

Olej писал(а): ... и всё бы ничего, но при make SDK (одного из многочисленных example):
и таки да ;-) , в заголовочном файле CUDA (не SDK экзамплов), в /usr/local/cuda/include/host_config.h находим удивительные строчки:

Код: Выделить всё

#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)
#error -- unsupported GNU version! gcc 4.5 and up are not supported!
#endif
Я такое могу понимать только как явно выраженное желание сузить круг использования, типа: "про 4.4 мы знаем, а дальше вы приходите к нам и спрашивайте".
Ладно, выправим это по-быстренькому так ;-) :

Код: Выделить всё

#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5)
Это место сборки мы проходим...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 30 окт 2011, 12:14

Olej писал(а): Это место сборки мы проходим...
И тут же врубаемся в новое:

Код: Выделить всё

...
make[2]: Вход в каталог `/home/olej/NVIDIA_GPU_Computing_SDK/C/src/Mandelbrot'
ptxas /tmp/tmpxft_00001781_00000000-5_Mandelbrot_sm11.compute_11.ptx, line 1742; warning : Double is not supported. Demoting
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lglut
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [../../bin/linux/release/Mandelbrot] Ошибка 1
make[2]: Выход из каталога `/home/olej/NVIDIA_GPU_Computing_SDK/C/src/Mandelbrot'
make[1]: *** [src/Mandelbrot/Makefile.ph_build] Ошибка 2
make[1]: Выход из каталога `/home/olej/NVIDIA_GPU_Computing_SDK/C'
make: *** [all] Ошибка 2
Нет 2-х (пока) библиотек!
И нигде (на сайте download) ни слова ни полслова...
Решим эту задачку "в лоб":

Код: Выделить всё

[olej@nvidia ~]$ yum list *xmu* *glut*
...
Установленные пакеты
freeglut.i686                                               2.6.0-5.fc14                                  @russianfedora/14.1
libXmu.i686                                                 1.0.5-2.fc13                                  @russianfedora/14.1
Доступные пакеты
freeglut-devel.i686                                         2.6.0-5.fc14                                  fedora
...
libXmu-devel.i686                                           1.0.5-2.fc13                                  fedora
...
[olej@nvidia ~]$ sudo yum install libXmu-devel* freeglut-devel*
...
[olej@nvidia lib]$ cd /usr/lib
[olej@nvidia lib]$ ls  *glut*
libglut.so  libglut.so.3  libglut.so.3.9.0
[olej@nvidia lib]$ ls  *Xmu*
libXmu.so  libXmu.so.6  libXmu.so.6.2.0  libXmuu.so  libXmuu.so.1  libXmuu.so.1.0.0
После чего достаточно продолжительная сборка SDK успешно завершается ... с десятками работающих examples параллельных многопроцессорных GPU приложений CUDA :

Код: Выделить всё

...
Finished building all
make[1]: Выход из каталога `/home/olej/NVIDIA_GPU_Computing_SDK/OpenCL'
P.S. Позже я нашёл, что эта проблема с библиотеками (и другими, например, в Ubuntu) - известна, и решение её описано, вот здесь: http://www.sturge.ca/?p=51
Кроме того, на самом сайте NVIDIA есть отличный форум CUDA On Linux (там рядом есть такой же и для виндоузников ... но это уже ищите сами ;-) ).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 30 окт 2011, 12:37

Olej писал(а): ... с десятками работающих examples параллельных многопроцессорных GPU приложений CUDA :
Собственно, вот только-что собранные нами примеры из самых разных областей применения:

Код: Выделить всё

[olej@nvidia release]$ pwd
/home/olej/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
[olej@nvidia release]$ ls -l | wc -l
84
- 84 полностью завершённых работающих проектов начиная от исходников *.cu
Но пока для меня важно, что на самых разных проектах (при сборке) мы проверили корректность компилятора nvcc, который компилирует .cu -> .c ...
Ну и всех сопутствующих настроек:

Код: Выделить всё

[olej@nvidia release]$ env | grep cuda
LD_LIBRARY_PATH=:/usr/local/cuda/lib:/usr/local/cuda/lib
PATH=/usr/lib/qt-3.3/bin:/usr/lib/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/cuda/bin:/home/olej/bin:/usr/local/cuda/bin
Вот так ... "лёгким движением руки..."(с) (на $100 ;-) ) посредственный десктоп-компьютер превращается в суперскалярного SIMD-монстра :lol:
Например, для DSP задач ... судя по тому, что пишут, даже специализированные DSP-процессоры Texas Instrument в сравнении с таким подходом "не конают" :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 30 окт 2011, 21:56

Olej писал(а):Вот так ... "лёгким движением руки..."(с) (на $100 ;-) ) посредственный десктоп-компьютер превращается в суперскалярного SIMD-монстра :lol:
Например, для DSP задач ... судя по тому, что пишут, даже специализированные DSP-процессоры Texas Instrument в сравнении с таким подходом "не конают" :lol:
Вот здесь: http://developer.nvidia.com/gpu-accelerated-libraries - обзор целевых библиотек CUDA, в частности (что меня главным образом и интересует) библиотека CUDA Fast Fourier Transform library (cuFFT).
Здесь на неё пример использования (в SDK его нет): http://developer.nvidia.com/cuda-librar ... impleCUFFT

Подробнее о cuFFT: http://developer.nvidia.com/cufft - с графиками скорости выполнения, где показано, как GPU процессор (правда Tesla, это чуть дороже) выполняет FFT в десятки и сотни раз (в зависимости от условий) быстрее, чем CPU хост Intel Quard Core i7-940 1333, 2.93GHz.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: NVIDIA & CUDA

Непрочитанное сообщение Olej » 30 окт 2011, 22:15

Так...
Теперь к вопросу совместимости и возможности раскрутить (или попробовать) такие супер-производительные вычисления...
Понятно, что для этих игрищ нам нужен видео-девайс от NVIDIA:

Код: Выделить всё

[olej@nvidia src]$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: nVidia Corporation Device 1040 (rev a1)
01:00.1 Audio device: nVidia Corporation Device 0e08 (rev a1)
- здесь то, что и аудио на моём компьютере от nVidia - это просто совпадение, это мои сборщики на заказ так ... перестарались с материнкой; а вот видео - это обязательное необходимое условие, что нам и показывает простейший тест, собранный пол-страницами выше ;-) в составе SDK:

Код: Выделить всё

[olej@nvidia release]$ ./clock --device=0
[clock] starting...
> Using CUDA device [0]: GeForce GT 520
time = 108284
[clock] test results...
PASSED
А совместимость выбранной платы (а их перечень всё время обновляется!) с CUDA и с её версией смотрим здесь:
http://developer.nvidia.com/cuda-gpus

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей