GPGPUをやってみようかと思い、CUDAをインストールしました。
一応知らない人のために解説:
■GPGPUとは
General Purpose computation using GPUの略で、つまりGPU(グラフィックボード)を従来のグラフィックス以外の目的でも計算に使おうという考えのこと。
参考:
http://www.gpgpu.org/■CUDAとは
NVIDIAが作った、GPGPUのための開発基盤のこと。
参考:
http://www.nvidia.com/object/cuda_home.htmlインストール先のマシンは、CUDAが正式にはサポートしていないdebian(etch, amd64)でしたが、Ubuntu版の64ビット版をインストールして問題なかったです。
以下手順です。
--
CUDA開発環境構築手順
※注意
gcc-4.2とは、ヘッダファイルがぶつかるようです。
gcc-4.1を使ってください。
●ダウンロード
http://www.nvidia.com/object/cuda_get.html#linux
からダウンロード(x86-64版)
NVIDIA Driver for Linux with CUDA Support (169.09)
CUDA Toolkit version 1.1 for Ubuntu 7.04
CUDA SDK version 1.1 for Linux
●NVIDIA ドライバのインストール
(gdmを停止してから作業したほうが良さそう)
・rootになって以下を実行
sh NVIDIA-Linux-x86_64-169.09-pkg2.run
(いくつか質問されるが、最初の「Accept」以外はただEnterを押しつづければ大体大丈夫)
・必要に応じてgdmまたはOSの再起動
●CUDA Toolkitのインストール
rootになって以下を実行
sh NVIDIA_CUDA_Toolkit_1.1_Ubuntu7_x86_64.run
インストール先を聞かれるが、Enterを押すとデフォルトで/usr/local/cudaにインストールされる
●CUDA SDKのインストール
アプリケーションを開発するユーザで(つまりrootではなくて一般ユーザで)以下を実行
sh NVIDIA_CUDA_SDK_1.1_Linux.run
インストール先を聞かれるが、Enterを押すとデフォルトで~/NVIDIA_CUDA_SDKにインストールされる
●環境設定
(SDKのインストール時に最後に出てくるメッセージがウソなので注意)
PATHに/usr/local/cuda/binを追加
LD_LIBRARY_PATHに/usr/local/cuda/libを追加
◯追加設定(オプション)
もし通常はgcc-4.2を使いたいのだが、CUDAのときだけしょうがなくgcc-4.1にするというときは
(/somewhereはどこでもいいが、あらかじめ作ったディレクトリ)
ln -s /usr/local/gcc-4.1 /somewhere/gcc
ln -s /usr/local/g++-4.1 /somewhere/g++
~/NVIDIA_CUDA_SDK/common/common.mkを編集
90行目
NVCCFLAGS := --compiler-bindir=/somewhere
●動作確認
サンプルプログラムがついているので、以下のコマンドでコンパイルする
cd ~/NVIDIA_CUDA_SDK
make
これで~/NVIDIA_CUDA_SDK/bin/linux/releaseの下にバイナリができるので、例えばmatrixMulを実行
Test PASSEDと出ればOK
●追記(2008/7/14)
後ほどUbuntuでもインストールしましたが、
sudo aptitude install libc6-dev
が必要であることが発覚しました。
また、SDKのデモのコンパイルには
sudo aptitude install libglu1-mesa-dev libglut3-dev lib32c-dev
が必要です。
他に誤りがあったので、直しました。
修正箇所:
・gcc-4.1の設定のところで、cpをln -sに
・common.mkの設定で、--compiler-dirを--compiler-bindirに