FORTRANの人がGPGPUを使って性能を出すために必要なこと

FORTRANからCUDAを呼ぶ2にあるやり方で、あと残り二つになりました。

  • CUDAで(FORTRANに比べて)性能が出せそうな(且つ、FORTRANボトルネックとなっているならなお良い)部分をCUDA化し、GPGPUで計算させる
  • CPUとGPGPUの間での通信量を出来る限り少なくする

CPUとGPGPUの間での通信時間を少なくする:ソフト面から

CPUとGPGPUの間での通信時間を少なくする:ハード面から

host(CPU)-device(GPGPU)データコピーはPCI Expess経由となるので遅く、ボトルネックとなる。次世代のPCI-Express3.0は、SandyBridgeは対応になるみたいですが、早くても来年以降のようです。
自分のポリシーとして、ハードにしろ、ソフトにしろ、整備されるのを待っているのは得策ではないと思っています。ソフト面でどれだけカバーできるか、隠蔽できるかに性能を出せるかがかかっていると思います。