GPU acceleration of communication avoiding Chebyshev basis conjugate gradient solver for multiphase CFD simulations
多相CFDシミュレーション用省通信チェビシェフ基底共役勾配法のGPU加速
Ali, Y.*; 小野寺 直幸 ; 井戸村 泰宏 ; 伊奈 拓也*; 今村 俊幸*
Ali, Y.*; Onodera, Naoyuki; Idomura, Yasuhiro; Ina, Takuya*; Imamura, Toshiyuki*
大規模線形問題の反復法ソルバはCFDコードで共通に用いられる。前処理付共役勾配(P-CG)法は最も広く用いられている反復法の一つである。しかしながら、P-CG法では、特に演算加速環境において、大域的集団通信が重要なボトルネックとなる。この問題を解決するために、省通信版のP-CG法がますます重要になっている。本論文では多相CFDコードJUPITERにおけるP-CG法と前処理付チェビシェフ基底省通信CG(P-CBCG)法を最新のV100GPUに移植する。全てのGPUカーネルは高度に最適化され約90%のルーフライン性能を達成し、ブロックヤコビ前処理はGPUの高い演算性能を引き出すように再設計し、さらに残された袖通信のボトルネックは通信と計算のオーバーラップによって回避した。P-CG法とP-CBCG法の全体性能は大域的集団通信と袖通信の省通信特性によって左右され、GPUあたりのノード間通信帯域が重要となることが示された。開発したGPUソルバはKNLにおける以前のCPUソルバの2倍に加速され、Summitにおいて7,680GPUまで良好な強スケーリングを達成した。
Iterative methods for solving large linear systems are common parts of computational fluid dynamics (CFD) codes. The Preconditioned Conjugate Gradient (P-CG) method is one of the most widely used iterative methods. However, in the P-CG method, global collective communication is a crucial bottleneck especially on accelerated computing platforms. To resolve this issue, communication avoiding (CA) variants of the P-CG method are becoming increasingly important. In this paper, the P-CG and Preconditioned Chebyshev Basis CA CG (P-CBCG) solvers in the multiphase CFD code JUPITER are ported to the latest V100 GPUs. All GPU kernels are highly optimized to achieve about 90% of the roofline performance, the block Jacobi preconditioner is re-designed to extract high computing power of GPUs, and the remaining bottleneck of halo data communication is avoided by overlapping communication and computation. The overall performance of the P-CG and P-CBCG solvers is determined by the competition between the CA properties of the global collective communication and the halo data communication, indicating an importance of the inter-node interconnect bandwidth per GPU. The developed GPU solvers are accelerated up to 2x compared with the former CPU solvers on KNLs, and excellent strong scaling is achieved up to 7,680 GPUs on the Summit.