Ubuntu 10.04にCUDAをインストールした時のメモ
CUDAの使えるGPU (GeForce GTX 470) を搭載したPCを購入して、Ubuntu 10.04環境にインストールしてみたので、手順をまとめてみました。
下の動画は、CUDAをテストするために作った数値計算のプログラムの結果から gnuplot と ImageMagick を利用して作成したものです。
インストールは以下の順序で行います。
- Ubuntu 10.04
- NVIDIA製ディスプレイドライバ
- CUDAプログラムのコンパイルに必要なライブラリ等
- CUDA Toolkit 3.1
- GPU Computing SDK 3.1
Ubuntu 10.04
インストール方法はいろいろなところに書かれているので、ここでは省略します。今回使用したPCは Core i7 CPU + メインメモリー 4GiB ということで、64bit版を入れました。
余談ですが、メモリーはその後12GiBに増設しました。上の動画を作成しようとしたら、4GiBでは足りなくなってしまったためです。動画への変換のためにImageMgickのconvertを起動すると、1プロセスで約8GiB消費しました。32bit OSで頑張るのもそろそろ限界ですね。ちなみに、ソースコードはhttps://code.launchpad.net/~irie/+junk/cuKdVsolvに晒してあるので、ご自由にどうぞ。
NVIDIA製ビデオドライバ
「システム > システム管理 > ハードウェア・ドライバ」からインストールできますが、バージョンが古いので、Ubuntu-X team の X Updates PPA を利用して新しいバージョンを入れます。
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install nvidia-current nvidia-current-modaliases nvidia-settings
インストールが終わったら、「システム > システム管理 > ハードウェア・ドライバ」でNVIDIAのドライバが有効になっていることを確認し、再起動します。
CUDAプログラムのコンパイルに必要なライブラリ等
Ubuntuの公式のパッケージを利用します。
sudo apt-get install g++ freeglut3-dev libxi-dev libxmu-dev
CUDA Toolkit
CUDAのダウンロードのページ (http://developer.nvidia.com/object/cuda_3_1_downloads.html#Linux) から、Ubuntu 9.10 用の CUDA Toolkit のファイル (cudatoolkit_3.1_linux_64_ubuntu9.10.run) をダウンロードして、以下のようにインストールします。
chmod a+x cudatoolkit_3.1_linux_64_ubuntu9.10.run sudo ./cudatoolkit_3.1_linux_64_ubuntu9.10.run
途中でインストール先を聞かれますが、デフォルトの /usr/local/cuda に入れます。
インストールが終わったら、各種のファイル検索パスを設定します。
以下の内容の /etc/ld.so.conf.d/cuda.conf というファイルを作成します。
/usr/local/cuda/lib64 /usr/local/cuda/lib
この設定を有効にするために、以下のコマンドを実行します。(11/5 追記)
sudo ldconfig
以下の内容の /etc/profile.d/cuda.sh というファイルを作成します。
export PATH="/usr/local/cuda/bin:$PATH" export LIBRARY_PATH="/usr/lib/nvidia-current"
ここで、この設定を有効にするために再ログインします。
GPU Computing SDK
GPU Computing SDK は、追加のライブラリやサンプルプログラム、ドキュメント類のセットです。これをインストールしなくてもCUDAのプログラムは作成できますが、参考になるので入れておく方がいいでしょう。
CUDA Toolkitと同じ場所から gpucomputingsdk_3.1_linux.run をダウンロードし、インストールします。
chmod a+x gpucomputingsdk_3.1_linux.run ./gpucomputingsdk_3.1_linux.run
途中でインストール先を聞かれますが、デフォルトの $HOME/NVIDIA_GPU_Computing_SDK に入れます。
次にサンプルプログラムをビルドします。
cd ~/NVIDIA_GPU_Computing_SDK/C make
ビルドが終わると、$HOME/NVIDIA_GPU_Computing_SDK/C/bin/linux/release にいろいろなバイナリが生成されているので、動かしてみます。例えばnbodyというのは、N体問題を解くプログラムです。下のスクリーンショットのように、たくさんの光の点が飛び回ります。
単精度ですが、450GFLOPS出ています (倍精度だと90GFLOPSぐらい)。
たぶん64bit環境固有の問題
以上の設定を済ませた後、書籍「はじめてのCUDAプログラミング」のサンプルプログラム (http://www.kohgakusha.co.jp/support/cuda/index.html) をビルドしようしたら、「/usr/bin/ld: cannot find -lcutil」というエラーが出て止まってしまいました。どうやら $HOME/NVIDIA_GPU_Computing_SDK/C/lib 内のファイル名に問題があるようだったので、以下のようにしてシンボリックリンクを作成すると、ビルドが通り正常に実行することが出来ました。
cd ~/NVIDIA_GPU_Computing_SDK/C/lib for i in `ls *_x86_64.a`; do ln -sv $i ${i%_x86_64.a}.a; done
はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)
- 作者: 青木尊之,額田彰,第二I O編集部
- 出版社/メーカー: 工学社
- 発売日: 2009/11
- メディア: 単行本
- 購入: 11人 クリック: 310回
- この商品を含むブログ (29件) を見る