2.2 Установка CUDA под Linux

Так как Unix-подобных операционных систем на основе ядра Linux много, остановимся на одной из них, а именно на операционной системе Ubuntu Linux. В прочих GNU/Linux операционных системах процесс установки NVIDIA CUDA не имеет каких-либо значительных отличий.

Все требуемые установочные файлы можно найти на сайте NVIDIA http://developer.nvidia.com/cuda-downloads. При выборе пакетов надо иметь в виду, что мы ставим под Linux (32 или 64 бита), для определенного устройства (видеокарта, вычислитель и т.д.).

Для того чтобы приступить к установке CUDA под Ubuntu нам понадобится следующее программное обеспечение:

Примечание: если графический интерфейс недоступен, можно использовать команду wget. Например:

wget http://ru.download.nvidia.com/XFree86/Linux-x86/285.05.09/  
NVIDIA-Linux-x86-285.05.09.run

Начинаем с установки зависимостей:

sudo apt-get install build-essential gcc-4.4 g++-4.4 libxi-dev libxmu-dev freeglut3-dev

Установка специальных драйверов NVIDIA:

а) удаление текущих драйверих NVIDIA, которые возможно уже установлены:

sudo apt-get --purge remove nvidia-common nvidia-current

б) открываем файл blacklist:

sudo gedit /etc/modprobe.d/blacklist.conf

и добавляем в него модули свободных драйверов:

blacklist vga16fb  
 
blacklist rivafb  
 
blacklist nvidiafb  
 
blacklist rivatv

в) остановка графического ядра X:

service gdm stop

г) удаление модулей свободных драйверов:

sudo apt-get --purge remove xserver-xorg-video-nouveau

д) установка драйвера:

sudo sh devdriver_*.*_linux_**_***.**.**.run

где * - зависят от вашего драйвера.

е) запуск графического ядра X:

sudo service gdm start

Установка CUDA toolkit:

а) Установка:

sudo sh ./cudatoolkit_*.*.*_linux_**_ubuntu**.**.run

б) Прописывание системных переменных:

Предполагая, что мы установили CUDA в директорию по умолчанию, мы должны добавить в .bashrc файл нашего домашней директории:

export CUDA_HOME=”/usr/local/cuda”  
 
export LD_LIBRARY_PATH=”${LD_LIBRARY_PATH}:${CUDA_HOME}/lib”  
 
export PATH=${CUDA_HOME}/bin:${PATH}

для amd64 замените lib на lib64.

в) применение изменений:

source ~/.bashrc  
 
sudo ldconfig

Создание привязки nvcc с gcc/g++ (Например, в домашнем каталоге):

а) создание связей:

mkdir gcc44  
 
cd gcc44  
 
ln -s /usr/bin/cpp-4.4 cpp  
 
ln -s /usr/bin/gcc-4.4 gcc  
 
ln -s /usr/bin/g++-4.4 g++

б) подключение к профилю nvcc:

sudo gedit /usr/local/cuda/bin/nvcc.profile

добавьте

compile-bindir=/home/xxx/gcc44

Установка NVIDIA GPU Computing SDK:

cd ~/NVIDIA_GPU_COMPUTING_SDK/  
 
make

Проверка работоспособности:

Запустите следующие приложения из примеров:

deviceQuery  
deviceQueryDrv

На этом процесс установки CUDA на Ubuntu Linux завершен. Теперь перейдем к настройке среды разработки в Linux. Так как Visual Studio является прерогативой операционных систем семейства Windows, то мы остановимся на более популярной среде разработки Netbeans для операционных систем семейства Linux.

Описание настройки среды разработки Netbeans для программирования на CUDA. Во-первых, любая графическая среда разработки для программирования на CUDA должна распознавать “cu” файлы и компилировать используя компилятор NVIDIA (nvcc). Для этого перейдем “Tools Options”, в закладке “C/C++” выберем подзакладку “Build Tools”. Выделим GNU и нажмем на кнопку “Duplicate…”. Назовите новый Tool Collection как CUDA. В форме заполните значения как на скриншоте ниже:

PIC

Далее в подзакладке “Code Assistance”, выберите Tool Collection “CUDA” и добавьте в “C++ Compiler” следующие пути:

/usr/include  
 
/usr/local/cuda/include

PIC

Далее, в подзакладке “Other”, в “C++ File Extensions” нажмите “edit” и добавьте расширение “.cu”. Это должно выглядеть примерно так:

PIC

Для создания приложения проекта CUDA в Netbeans выберите в меню “File New Project C/C++ Application” и нажмите “Next”.

PIC

Затем напишите имя проекта и нажмите “Finish”.

PIC

Мы создали проект и теперь нам надо настроить его. Выберите меню “File Project Properties”, удостоверьтесь что в категории “Build” выбран Tool Collection “CUDA” и выключена опция “Enable Make Dependency Checking”.

PIC

В категории “C++ Compiler” убедитесь что в качестве Tool выбран “nvcc” и “Include Directories” содержат “/usr/include” и “/usr/local/cuda /include”.

PIC

В создании же приложений с существующего кода, при условии, что Makefile существует, выберите “File New project” и “C/C++ Project From Existing Code”. Остальные настройки аналогичны как в случае создания нового проекта CUDA. При отсутствии Makefile’a мы создаем новый проект с той лишь разницей, что вместо добавления новых файлов, добавляем уже существующие.