Ubuntu 10.10にCUDAをインストールした時のメモ

先日、「Ubuntu 10.04にCUDAをインストールした時のメモ - irieめも」という日記を書きましたが、Ubuntuを10.10にアップグレードしてCUDAも新しいバージョン (3.2 RC2) を入れ直したので、もう一度まとめてみました。前回とほぼ同じ手順ですが、少し違う点もあります。

インストールは以下の順序で行います。

  1. Ubuntu 10.10
  2. NVIDIA製ディスプレイドライバ
  3. CUDAプログラムのコンパイルに必要なライブラリ等
  4. CUDA Toolkit 3.2 RC2
  5. GPU Computing SDK 3.2 RC2

CUDA 3.2 の正式版がリリースされたので更新しました。(10/12/05)

Ubuntu 10.10

インストール方法はいろいろなところに書かれているので、ここでは省略します。使用するPCが Core i7 CPU + メインメモリー 12GiB ということで、64bit版を入れました。

NVIDIA製ビデオドライバ

前回はUbuntu-X team の X Updates PPA を利用して新しいバージョンを入れましたが、今回はUbuntu標準のドライバが比較的新しいため、普通に「システム > システム管理 > ハードウェア・ドライバ」からインストールしました。今のところ問題は無いようです。PPA を利用したい場合は前回の手順でインストールすればよいでしょう。
インストールが終わったら、再起動します。

CUDAプログラムのコンパイルに必要なライブラリ等

Ubuntuの公式のパッケージを利用します。

sudo apt-get install g++ freeglut3-dev libxi-dev libxmu-dev

ただしこれだけでは、GPU Computing SDK に含まれている、MPIを利用するサンプル (simpleMPI) がビルドできません。simpleMPIもビルドしたい場合は Open MPI 関連のパッケージもインストールします。

sudo apt-get install openmpi-bin openmpi-dev

CUDA Toolkit

CUDAのダウンロードのページ (http://developer.nvidia.com/object/cuda_3_2_downloads.html#Linux) から、Ubuntu 10.04 用の CUDA Toolkit のファイル (cudatoolkit_3.2.16_linux_64_ubuntu10.04.run) をダウンロードして、以下のようにインストールします。

chmod a+x cudatoolkit_3.2.16_linux_64_ubuntu10.04.run
sudo ./cudatoolkit_3.2.16_linux_64_ubuntu10.04.run

途中でインストール先を聞かれますが、デフォルトの /usr/local/cuda に入れます。
インストールが終わったら、各種のファイル検索パスを設定します。
以下の内容の /etc/ld.so.conf.d/cuda.conf というファイルを作成します。

/usr/local/cuda/lib64
/usr/local/cuda/lib

この設定を有効にするために、以下のコマンドを実行します。

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.2.16_linux.run をダウンロードし、インストールします。

chmod a+x gpucomputingsdk_3.2.16_linux.run
./gpucomputingsdk_3.2.16_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体問題を解くプログラムです。

cd ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
./nbody

たぶん64bit環境固有の問題

前回も書いたように、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)

はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)