SNNシミュレータのBrian2をGeNNを使ってGPU上で実行させる場合、ニューロン数やシナプス数が小さい(ニューロン数が1万以下とか、シナプス数が100万以下とか)と、GPUメモリをほとんど使わない。条件を変えただけのシミュレーションを複数動かす場合は、空いているGPUメモリや演算ユニットを有効活用したくなる。そのためにはCUDA MPSを使うとよい。同じ目的のMIGが最新GPUでないと使えないのに比べ、CUDA MPSはかなり古いGPUでも使えるのがよい。
私の例ではCUDA MPSの使用で1枚のGPUあたり8並列が実現できて、速度は7.2倍になった。8倍ではないのは、多少の無駄があるからだ。
CUDA MPSの使用は簡単だが、並列プログラムの結果書き込みディレクトリその他をきちんと分けておかないと競合が起こって動作がおかしくなることがある。そのようなうっかりバグを出さないためには、Claude CodeなどのAIを使ったプログラミング補助ツールに環境とプログラムコードをチェックしてもらうとよい。
0 件のコメント:
コメントを投稿