CUDAで高速化

nukIM@S-2の速度改善のために CUDA 2.1 beta を試してみた。参考にしたのはこのあたり
 GeForceアーキテクチャとCUDAプログラミング | マイコミジャーナル
 CUDAを使う:tech.ckme.co.jp
 CUDA に触れてみる


nukIM@S-2の処理の多くは並列化しにくいんだけど、幸いなことにいちばん重い処理だけは並列化しやすいので、今でもCPUのコア数分のスレッドを作って並列に処理してる。そこをCUDA化してみたら全体で30%くらい速くなった。この前うpした美希のコミュ抜き、46分かかってたところを33分でできた。まだサンプルを見よう見まねでやってみただけなのですぐにはリリースできないけど。


GPUはGeForce8600GTを使用。9000系とかだとMP数が多いので50%くらいまでいくかも? それ以上は他の処理が占める割合が大きくなってくるので難しいと思う。比較のためとCUDAを使えない環境用を兼ねてC言語での実装もしてみたら15%ほど速くなった。Javaのままチューニングしたら5%くらい速くなった。