やっと研究用のコードが動いた件
長かった。まさか2ヶ月もかかるとは思わなかった。というのも、爆速で動く分子動力学計算用のコードが欲しくて、CUDAでちまちま書いていたのだが、研究の進捗報告の4日前にようやく完成した。
今、実際にシミュレーションを回しているのだが、本当に速い。GPUの圧倒的なパワーを感じざるを得ない。
比較のための図を用意しておこう。横軸がシミュレーションの規模、縦軸が並列化した部分の1回の計算時間である。

青色がCPUでオレンジがGPU。粒子数が増えるにつれてCPUでの計算時間は規模に比例していくが、GPUは10万粒子くらいまでほぼ0.5に張り付いている。まだ最適化をしていないにもかかわらずこの結果になったのは正直驚いた。
10万粒子を超えだすとメモリにアクセスする時間が響いて計算時間が規模に比例してしまうが、それでもCPUの場合と比べると比にならないほど速いのがわかる。
これから共有メモリを用いて数倍は速くなる見込みだ。メモリにアクセスする時間についてはどうしたものか。。。