Показать сообщение отдельно

Настройка Ubuntu 8.10 для кодинга под NVIDIA CUDA
  #15  
Старый 10.12.2009, 00:14
Аватар для Solide Snake
Solide Snake
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме:
5516499

Репутация: 3702


Отправить сообщение для Solide Snake с помощью ICQ
По умолчанию Настройка Ubuntu 8.10 для кодинга под NVIDIA CUDA

Нашёл статью, думаю будет некоторым интересна и полезна)

Настройка Ubuntu 8.10 для кодинга под NVIDIA CUDA


Начнем!

Для начала установим необходимые библиотеки.
Код:
$ sudo apt-get install linux-headers-`uname -r` binutils pkg-config build-essential xserver-xorg-dev libc-dev
Самое важное здесь — libc-dev, без ее наличия ничего работать не будет.

Отлично, продолжаем! Теперь настроим компилятор. Для начала скачаем gcc и g++ нужной нам версии (это важно — их версия должна быть одинаковой). Проще всего это сделать через synaptic, отыскав там gcc-4.1 и g++-4.1, а можно и прописать в консоли:
$ sudo apt-get install gcc-4.1 g++-4.1

Нужно настроить систему на использование нужного нам компилятора (см АПД в конце!). Делается это до смешного просто:

Код:
$ sudo rm -d /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc
$ sudo rm -d /usr/bin/g++
$ sudo ln -s /usr/bin/g++-4.1 /usr/bin/g++
Кстати, вернуть на место «старый» компилятор легко — достаточно заменить в приведенных командах 4.1 на 4.3.
Ну и, само собой, нам нужны сами компоненты cuda — видеодрайвер, тулкит и sdk. Берем их с родного сайта. Систему указываем 8.04, все будет прекрасно работать и так.


Поскольку мы собираемся использовать последнюю версию — выбираем пакеты для 2.1:
1. cuda driver — nvidia-linux-x86-180.06-pkg1.run
(Спасибо товарищу frosty — недавно вышел драйвер версии 180.22, скачать его можно, естественно, с официального сайта. Процедура установки не отличается)
2. cuda toolkit — cuda-linux-rel-nightly-2.1.1635-3065709.run
3. cuda sdk code samples — cuda-sdk-linux-2.10.1126.1520-3141441.run


Сохраняем их куда-нибудь на диск (желательно, чтобы путь к ним не содержал пробелов и символов кириллицы) и устанавливаем для всех трех пакетов chmod +x. Предварительный этап завершен!

Собственно установка.

Для начала надо поставить видеодрайвер. Ставится он стандартно:
Код:
$ sudo -s -h
# /etc/init.d/gdm stop
Жмем ctrl+alt+f1 и логинимся. Затем:
Код:
# sh nvidia-linux-x86-180.06-pkg1.run
Нам предлагают скачать precompiled headers с сервера nvidia. Отказываемся.
Тогда нам предлагают скомпилировать их под наше ядро. Соглашаемся.
Ждем несколько секунд — и вуаля! Драйвер установлен.
Теперь можно снова запустить x-server:

Код:
# /etc/init.d/gdm start
Теперь нужно немного подправить один файл:
Код:
$ sudo gedit /etc/default/linux-restricted-modules-common
там нужно исправить строчку на вот такую
Код:
disabled_modules=«nvidia nvidia_legacy nvidia_new»
Сохраняемся и ребутимся. Если же x-сервер не запустился, то можно просто восстановить конфигурационный файл:
Код:
$ sudo cp /etc/x11/xorg.conf.backup /etc/x11/xorg.conf
И пересмотреть свои действия на предмет ошибки.

Отлично! Теперь установим оставшиеся два компонента:

Код:
$ sudo ./cuda-linux-rel-nightly-2.1.1635-3065709.run
$ sudo ./cuda-sdk-linux-2.10.1126.1520-3141441.run
Пути (в первом случае /usr/local/cuda и $home/nvidia_cuda_sdk во втором) лучше оставить по умолчанию, во избежание.

Теперь немного поковыряем переменные окружения. Они в ubuntu хранятся в /etc/environment. Нужно добавить в path:"/usr/local/cuda:/usr/local/cuda/bin". А потом осталось отредактировать один файл:

Код:
$ sudo gedit /etc/ld.so.conf
Добавляем в конец
Код:
# nvidia cuda v2.1 support
/usr/local/cuda/lib
и набираем ldconfig:
Код:
$ sudo ldconfig
Все, можно начинать радоваться! Теперь идем в каталог sdk и пробуем собрать примеры.
Код:
$ cd ~/nvidia_cuda_sdk
$ make
Кстати, не стоит забывать про параметры команды make. При компилировании кода под cuda они могут быть такие:
— release configuration — make
— debug configuration — make dbg=1
— emurelease configuration — make emu=1
— emudebug configuration — make emu=1 dbg=1


Не забывайте, что если на вашем компьютере нету совместимой видеокарты — обязательно ставим параметр emu=1.

Вот, собственно, и все! Теперь, если все правильно собралось(если нет — перепроверьте, нужной ли версии gcc и g++), можно идти в каталог ~/nvidia_cuda_sdk/bin/linux/release/ и наслаждаться примерами. Лично мне больше всего понравился fluidsgl.

Если есть какие-то недочеты — постараюсь исправить. Удачи!


АПД: Меня попросили сразу два товарища (3dm и timyr_lan) поправить способ смены дефолтного компилятора. Спасибо за поправку.
Корректнее делать вот так:

Код:
export cc=«gcc-4.1»
export cpp=«cpp-4.1»
export cxx=«g++-4.1»
Прописать в ~/.bashrc или просто выставлять эти переменные перед компиляцией cuda кода.


АПД2: Вариант нумбер 2, даже проще:
Код:
$ gedit ~/nvidia_cuda_sdk/common/common.mk
# compilers
nvcc := $(cuda_install_path)/bin/nvcc.
cxx := g++-4.1
cc := gcc-4.1
link := g++-4.1 -fpic
 
Ответить с цитированием