A Stencil framework to realize large-scale computations beyond device memory capacity on GPU supercomputers
GPUメモリを超える大規模計算の実現に向けたステンシル計算のためのフレームワークの開発
下川辺 隆史*; 遠藤 敏夫*; 小野寺 直幸 ; 青木 尊之*
Shimokawabe, Takashi*; Endo, Toshio*; Onodera, Naoyuki; Aoki, Takayuki*
ステンシルに基づくCFDコードは、規則的なメモリアクセスを持つため、GPUで高い性能を得ることができる。しかしながら、GPUはCPUと比較して、メモリ容量が小さいため、CPUと同様の大きさの問題を解くことができない。そこで、本研究では、CPUのホストメモリとCPUのデバイスメモリの局所性を向上させることが可能な、テンポラルブロッキング法を用いることで、GPUのメモリ容量を超える大きさの計算を可能とした。本研究で開発したフレームワークでは、複雑なコーディングは必要とせずに、テンポラルブロッキング法を含む並列計算用のコードを生成できる。フレームワークを用いて開発した気流解析コードでは、TSUBAME2.5において、GPUのメモリ容量の2倍の計算規模においても、通常のメモリ容量の計算の80%程度の実効性能を達成した。
Stencil-based applications such as CFD have succeeded in obtaining high performance on GPU supercomputers. The problem sizes of these applications are limited by the GPU device memory capacity, which is typically smaller than the host memory. On GPU supercomputers, a locality improvement technique using temporal blocking method with memory swapping between host and device enables large computation beyond the device memory capacity. Our high-productivity stencil framework automatically applies temporal blocking to boundary exchange required for stencil computation and supports automatic memory swapping provided by a MPI/CUDA wrapper library. The framework-based application for the airflow in an urban city maintains 80% performance even with the twice larger than the GPU memory capacity and have demonstrated good weak scalability on the TSUBAME 2.5 supercomputer.