Настройка Nvidia CUDA 2.3 на Ubuntu 9.04

Технология CUDA позволяет производить вычисления на видеокарте. Для некоторых задач скорость вычислений ускоряется в десятки раз. CUDA 2.3 официально поддерживает Ubuntu 9.04 . Но тем не менее есть ньюансы. Предлагаю ознакомиться с моим успешным опытом.

1.для cuda 2.3 нужен 190й драйвер нвидия. ставим драйвер как написано здесь http://www.ubuntugeek.com/install-nvidia-graphics-drivers-190-42-in-ubuntu-karmicjauntyintrepidhardy.html и перезагрузка. А именно так:
откройте файл
$sudo gedit /etc/apt/sources.list

и добавьте следующие строки:
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main

добавляем ключи
$sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys CEC06767

устанавливаем
sudo apt-get install nvidia-190-modaliases nvidia-glx-190 nvidia-settings-190

перезагрузка

2.ставим от рута cudatoolkit. скачать ПО можно отсюда http://www.nvidia.ru/object/cuda_get_ru.html . видеодрайвер не нужен. мы его поставили в предыдущем шаге.
$chmod 744 cudatoolkit_2.3_linux_32_ubuntu9.04.run cudasdk_2.3_linux.run
$sudo ./cudatoolkit_2.3_linux_32_ubuntu9.04.run

3.ставим от пользователя cuda sdk
$./cudasdk_2.3_linux.run

4.добавляем в ~/.bashrc строки
#settings for cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
и выполняем эти команды в терминале чтоб не перезагружаться. для 64-битных систем в переменной LD_LIBRARY_PATH надо указывать на каталог lib64.

5.доустанавливаем пакеты и компилим примерчики sdk
5.1 доустанавливаем пакетики:
$sudo apt-get install g++ freeglut3-dev libxi-dev libxmu-dev
ставит еще кучу дополнительных пакетов. мы соглашаемся.

5.2 компиляцию можно делать для всех программ и по одиночке. пробуем
$cd ~/NVIDIA_GPU_Computing_SDK/C
$make
откомпилированные находятся бинарники в ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
можно примерчики откомпилировать даже если на компьютере нет видеокарты поддерживающей CUDA. В этом случае задается параметр emu=1. результат будет в папке ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/emurelease
$make emu=1

6.запускаем откомпилированные программы и радуемся. проверкой является вывод программ deviceQuery и bandwidthTest . вот вывод программ:

$ ./deviceQuery
CUDA Device Query (Runtime API) version (CUDART static linking)
There is 1 device supporting CUDA

Device 0: “GeForce GTX 260”
CUDA Driver Version: 2.30
CUDA Runtime Version: 2.30
CUDA Capability Major revision number: 1
CUDA Capability Minor revision number: 3
Total amount of global memory: 938803200 bytes
Number of multiprocessors: 27
Number of cores: 216
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 16384 bytes
Total number of registers available per block: 16384
Warp size: 32
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 262144 bytes
Texture alignment: 256 bytes
Clock rate: 1.24 GHz
Concurrent copy and execution: Yes
Run time limit on kernels: Yes
Integrated: No
Support host page-locked memory mapping: Yes
Compute mode: Default (multiple host threads can use this device simultaneously)

Test PASSED

Press ENTER to exit…

$ ./bandwidthTest
Running on……
device 0:GeForce GTX 260
Quick Mode
Host to Device Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 3168.1

Quick Mode
Device to Host Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 2791.8

Quick Mode
Device to Device Bandwidth
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 91845.1

&&&& Test PASSED

Press ENTER to exit…

P.S.после установки 190го драйвера возникает какой-то конфликт с кодеками. предлагают поставить 185й драйвер но тогда cuda работать не будет.

Добавить комментарий

Войти с помощью: