トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

cuda_on_debian

Last-modified: 2010-02-12 (金) 11:58:22 (209d)
Top / cuda_on_debian

tips

すごい面倒だった。半日かかったよ。

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


添付ファイル: filenbody-pic.zip 291件 [詳細]