インストール手順は、以前
ここにも書いたのですが、あれからCUDAのバージョンも上がってかなり状況が変わったので、再度書いています。
といっても、以前と比べるとかなり楽になったので、ほとんど書く必要がないくらいかもしれないです。ただ、最後の「トラブルシューティング」はそれなりに価値があるかも。
●ダウンロード
http://www.nvidia.co.jp/object/cuda_get_jp.html で入手できます。
●必要パッケージのインストール
sudo aptitude install libc6-dev libglu1-mesa-dev libglut3-dev lib32c-dev
●NVIDIAドライバのインストール
まずgdmを止める。
gdmの画面からCtrl+Alt+F1でターミナル画面からログイン
sudo /etc/init.d/gdm stop
そしてインストール
sudo sh NVIDIA-Linux-x86_64-180.22-pkg2.run
ほうっておくとドライバが勝手に書き換わってしまうので、
/etc/default/linux-restricted-modules-common
に
DISABLED_MODULES="nv"
と書いておく。
ここで基本的にはEnterですべてデフォルトを受け入れればいいのだが、最後のxorg.confを書き換えるか?という問いに関しては「Yes」としておいたほうがいい。もしgdmを使わないとしてもyesの方がいい。これをyesにしておくと次回起動時にgdmを立ち上げるとnvidia.koがちゃんとロードされ/dev/nvidiactlが使えるようになる。(詳しくは後述の「トラブルシューティング」参照)
つまりただXの設定をする以上の意味がある。CUDAユーザにとっては。
実はここら辺のしくみはまだよく分かってない。(だれか教えてほしい)
●CUDA ToolKitのインストール
sudo sh cudatoolkit_2.1_linux64_ubuntu8.04.run
ただEnterを押しつづければ/usr/local/cudaに入る。
●CUDA SDKのインストール
sh cuda-sdk-linux-2.10.1215.2015-3233425.run
(sudoはいらないので注意)
ただEnterを押しつづければ$HOME/NVIDIA_CUDA_SDKに入る。
SDKに入っているサンプルコードを全部コンパイルするには、さらに
sudo aptitude install libxi-dev libxmu-dev
が必要。
●環境設定
.bashrcに以下の行を追加
PATH=/usr/local/cuda/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
これを有効にするには再度ログインするか、以下を実行
. .bashrc
●動作確認
サンプルプログラムがついているので、以下のコマンドでコンパイルする
cd ~/NVIDIA_CUDA_SDK
make
これで~/NVIDIA_CUDA_SDK/bin/linux/releaseの下にバイナリができるので、例えばmatrixMulを実行
Test PASSEDと出ればOK
●トラブルシューティング
上記動作確認時に、コンパイルは通るが、サンプルプログラムを実行しようとすると
NVIDIA: could not open the device file /dev/nvidiactl (No such device or address).
と言われて失敗することがある。その場合、前述し多様にxorg.confを書き換えてgdmを立ち上げるとうまくいくようだ。
ただし、私の現在の環境だとATIのビデオカード+Teslaというヘンな構成のため、この手がうまくいかない。なので、
sudo modprobe nvidia
とすると
FATAL: Could not open '/lib/modules/2.6.24-23-generic/volatile/nvidia.ko': No such file or directory
と言われるので、
sudo ln -s /lib/modules/2.6.24-23-generic/kernel/drivers/video/nvidia.ko /lib/modules/2.6.24-23-generic/volatile/
sudo modprobe nvidia
として乗り切った。これだと起動するごとにリセットされるので、スクリプトを書いて保存しておく。っていうか、起動するたびにこのブログをコピればいいか。
あきらかにこれは付け焼き刃で、正しい手順であるはずがない。カーネルモジュールロードのお約束をちゃんと理解しなきゃいけないので、正しい手順はこれから勉強します。
追記(2009/3/31):
/etc/default/linux-restricted-modules-commonの書き変えの説明を加えておきました。
タイトルのバージョン番号が間違っているので直しました。(6.04→8.04)
追記(2009/10/21):
SDKのコンパイルに必要な設定(sudo aptitude install libxi-dev libxmu-dev)を追加
タグ:CUDA , インストール , 設定
<< SASTIK:ハックしてみた | Main | Ubuntu8.04でクラスタ環境を構築 >>