4.6 CUDA+MPIによる高速化

4.6.1 CUDA+MPIプログラム

1台のコンピュータに複数のグラフィックスボードを実装したとき(マルチGPU)と、 複数台のコンピュータに1個または複数のグラフィックスボードを実装したとき、 すべてのグラフィックスボードを使用して並列計算することができます。
CUDAとMPIの両方を実装します。
一般的な注意点については[3]を参考にして下さい。
CUDA版を領域分割に対応して記述していれば、 MPI版の通信関数を利用することにより簡単な作業で実装することができます。

4.6.2 CUDA+MPIの計算時間

表4-6-1に1〜2GPUの計算時間を示します。通常1GPUに1プロセスを起動します。
表より大きな問題では2GPUで2倍近く速くなることがわかります。 また2GPUでは使用可能なメモリーが2倍になりより大きな問題が計算できるようになります。

表4-6-1 CUDA+MPIの計算時間(Windows, GTX1070(1920コア、GDDR5 8GB))
GPU数(プロセス数)ベンチマークNo.2ベンチマークNo.3
1 (1)10.8秒(1.0)84.4秒(1.0)
2 (2)6.9秒(1.57)45.7秒(1.85)