« やっと複数GPUプログラムがまともに動くようになった気がする | トップへ戻る | フィッシングサイト対策目的にURLを可視化するというアイディア »

2007年02月01日

複数CPU+複数GPUとかのメモみたいの

割と雑多にメモってるのでみやすくないけど勘弁してね。


とりあえず、2CPU+2GPUまでやったよ!
2CPUって言ってもAthlon64X2だけど。
細かい性能評価はもうちょっとやります。

さて。
とりあえず、2CPU+2GPUで全性能使いきろうってのは割となんとかなる感じ。一度別の実装で実験してあったのでわかってはいたんだけど。

実験環境はGeForce7950GTを2枚刺したSLIマザー。OSはLinux。

2CPUってのはマルチプロセスなりマルチスレッドなりで普通に使えるのが知られている。

2GPUってのは(既に公開している研究メモに書いてあるけど)OpenGLでそのまま叩けないのでマルチプロセス実装。

2GPUでは、1GPUの半分近くまで実行時間減らせた。
2CPU+2GPUも現状かなり高速になってるので大丈夫だろう。


続いてSLIを試してみた。
実験を只管rootでやってた(危険)ので、
# nvidia-xconfig --sli=hoge
する。
hogeにOffとかAutoとかSFRとかAFRとか指定する。
ログアウトすると、Xが再起動しているので反映されてるよね?

この状態で実行したが、1GPUと全く変化なし。
何か足りていないのかしら?

SLIを引き合いに出したので、SLIやCrossFireを使う場合と使わない場合での差について言及しておくことにする。
情報ソースを失念しているが、確かSLIではVRAMが2倍にならないはずである。CrossFireも同様。一方、私のやっているプログラムレベルで複数GPUを複数GPUとして扱う実装では、VRAMがちゃんと2倍になる。これだけで十分意味があると思うんだがどうか。
コレとは直接関係ないけど、コレまでの経験上問題サイズが4000とかのでかい行列積和計算は正しい計算結果が得られないという症状があった。SLI化しても同様である。最も、実行時間を見る限りはSLI化ができていない気もするが。一方で、今回の実装では問題を分割実行しているためか、4000サイズでも正しい計算結果が得られている。
以上から、今回の複数GPU実装はなかなかいけるんじゃなかろうか。


メモ終了。
明日(既に今日)は実行時間のチェックをもうちょっとやって、チューニングの検討とかベンチマークへの組み込みとかやろう。とりあえずHPLで。演算精度足りないけど。

……ちっとも眠くないので酒飲んでまったりするか……。風呂で一時間寝ているのが悪いのかしら。

投稿者 togabito : 2007年02月01日 03:08

Trackback Pings

このエントリーのトラックバックURL:
http://aaa.jspeed.jp/~togabito/cgi-bin/mt/mt-tbx.cgi/730

コメント

コメントしてください




保存しますか?