Cudaやってみる。

せっかくnViDIAのドライバー新しくしたのでCUDAをやってみる。
製品を使おうとするとバージョン対応されていないことが多くて、CudaもUbuntu 9.04版が最新。
どうかなぁ。と思って、ツールキットとサンプルをダウンロードしてコンパイルするとエラー。
ググるとどうやら、gccのバージョンが新しすぎるらしい。
sudo apt-get install g++-4.3
として、対応バージョン。ちなみにこれだけだと、デフォルトは、新しい方のままです。ご安心を。
なので、CUDA用には
~/NVIDIA_GPU_Computing_SDK/C/common/common.mkを編集。NVCCFLAGSでコンパイラーを直接指定して
NVCCFLAGS := --compiler-bindir=/usr/bin/gcc-4.3

コンパイル成功!

実行するのにライブラリパスが抜けてた。64ビットOSなのでlib64を指定。~/.bashrcのどこかに。たしか、ファイルがあったら指定できる拡張ファイルがあったと思ったけど、エリアスしかないなぁ。まぁ、直でいいっしょ。
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

あ、そうそう、サンプル以外をコンパイルするなら、パスがいります。
export PATH=/usr/local/cuda/bin:$PATH


nbody(多体問題)すごいわぁ。銀河生成のシミュレーションで一万六千ちょっとが60FPSとかで計算してる。
見る見る、星が集まって・・・ほとんどが砕け散ってるw
試しに10万にして、表示を点だけにしてもそれなりに動いてるよ。290GFlopsとかって数字は本当かなぁ。
でも見てて飽きないよ。