cuda_on_debian
すごい面倒だった。半日かかったよ。
Debian GNU/Linux 5.0 "Lenny" に CUDA を載っけてみた †
カーネルを再コンパイルして、コンパイラからモジュールからぜんぶ同じ条件にしないと CUDA のデバイスドライバーはインストールできない。ここでは普通のコンパイルはできるという条件で、つまりgcc も ld もmake もflexもbisonなどなども入っているという条件で話を進める。
CPUはIntel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz、マザーボードはDG45IDです。
カーネルを再コンパイル †
やったのはこんなかんじ。うー面倒。
# apt-get install linux-source-2.6.26 # apt-get install kernel-package # cd /usr/src # tar jxvf linux-source-2.6.26 # cd linux-source-2.6.26 # cp /boot/config-2.6.26-1-amd64 .config # make menuconfig # make-kpkg clean # export CONCURRENCY_LEVEL=2 # make-kpkg --initrd --rootcmd fakeroot --revision=`date '+%Y%m%d'` --append_to_version=h2np kernel_image modules_image kernel_headers # cd .. # dpkg -i linux-image-2.6.26h2np_20090308_amd64.deb # dpkg -i linux-image-2.6.26h2np_20090308_amd64.deb
CONCURRENCY_LEVELを2にしているのはCPUがDual Coreなマシンでやっているため。並列にコンパイルさせなきゃ時間がかかってしょうがない。dpkg -i でやらないとinitrdのイメージが作れない。むかしのLinuxのカーネルの入れ替えなんて簡単だったのに。
ここで一回リブートしてきちんとこのカーネルで立ち上げる。
NVIDIAのデバイスドライバ †
次は、NVIDIA のサイトから取ってきたNVIDIAのデバイスドライバを載せる。そのまえに今あるnvidiaのデバイスドライバはぜんぶ削除しておく。そうじゃないとコンフリクトを起こすので要注意。
# dpkg -l | grep nvidia # apt-get remove .......
それでやっとNVIDIAのサイトにあったデバイスドライバを載せる。一旦Xサーバを止めて、コンソールからインストールしないとダメ。
# /etc/init.d/gdm stop gdmを落としてからコンソールに入ために3つのキーを同時押し。 [コントロール][Alt][F2] コンソールからrootでログインする。 # sh NVIDIA-Linux-x86_64-180.22-pkg2.run
ここで一応、リブートさせた。
次にツール群を載せる。
# sh cudatoolkit_2.1_linux64_ubuntu8.04.run
自分のSDKを作る †
環境変数を以下のようにセット
$ export PATH=/usr/local/cuda/bin:$PATH $ export LD_LIBRARY_PATH=/usr/local/cuda/lib/$LD_LIBRARY_PATH
次にやっとSDKを展開
$ sh cuda-sdk-linux-2.10.1215.2015-3233425.run $ cd ~/NVIDIA_CUDA_SDK
それからsdkツールキットのソースコードをコンパイルするのだが、色々とライブラリが必要だった。
$ sudo apt-get install freeglut3-dev libc6-dev-i386 libxi-dev libxmu-dev
やっとコンパイルができる環境に。
$ make
出来上がったファイルは~/NVIDIA_CUDA_SDK/bin/linux/releaseに入っている。だいたいこんな感じでやって成功した。ふぅ、長かったぜ。
注意というか †
GeForce?(GPU)側をコントロールするのはあくまでもCPUである。ほぼ1つのCPUが占有されてしまう状態になるので、マルチコアじゃないCPUで実行するのは、できないわけじゃないが、かなり大変。
4 / 0 /1531