ステンシル計算 問題意識 目的と提案手法

GPUクラスタ上での実アプリケーションに対する
テンポラルブロッキングの実装と性能評価
高嵜 祐樹 遠藤 敏夫 松岡 聡
(東京工業大学)
目的と提案手法
目的:ステンシル計算における高性能+大容量+低プログラミングコストの実現
提案手法:局所性向上アルゴリズム(テンポラルブロッキング)+メモリスワップ対応ランタイム(HHRT)
ステンシル計算
ステンシル計算(気流計算)
都市気流シミュレーション 小野寺直幸、青木尊之ら(東京工業大学)
Common
問題意識
ホスト⇒デバイス
シミュレーションの要求 •  高精度で、大規模な計算 •  大容量のメモリ
TB (+ Opt)
Naive
時間ループ (外) Nt/k回
時間ループ 部分領域ループ
部分領域ループ
ホスト⇒デバイス
ホスト⇒デバイス
時間ループ
GPUの問題点 •  デバイスメモリの容量による制限 •  PCIe通信が性能低下の原因(Naive) 各点計算 時間ループ (内) k回
デバイス⇒ホスト
各点計算 (冗長計算含む) 各点計算 境界をMPI通信
1GPU上での簡単なステンシル計算の性能
高プログラミングコスト
140 120 Speed (GFlops)
東京都心部(10km四方)
100 TB + 最適化
80 60 TB
40 20 0 0 10 低性能
境界をMPI通信
デバイス⇒ホスト
Common 20 30 Problem Size (GB)
Naïve TB 40 50 TB-­‐Opt 境界をMPI通信
デバイス⇒ホスト
※TB(Temporal Blocking)
HHRT(Hybrid Hierarchiccal Runtime)
•  変更は、main関数、MPI関数、CUDA関数を
HH()で囲うのみ •  MPIプロセスが1つのGPUを共有する •  メモリスワップ機構 •  デバイスメモリ容量を超えるデータの利用が
ほぼ透過的に可能
HHRTの実行モデル
通常のMPI+CUDA実行モデル
計算ノード
デバイスメモリ
デバイスメモリ
計算ノード
デバイスメモリ
TBS is not limited by the size of sub-
性能評価
cudaMemcpy
MPIプロセス
MPI通信
ホストメモリ
ホストメモリ
・HHRTにより、デバイスメモリを超えるデータを扱えるこ
評価環境
最適なTB Size
最大5.1〜8.7倍
A single GPU
評価対象
・program:元プログラム ・hhrt:HHRTライブラリのみ適用 ・hhrt_tb:HHRT+TBを適用 ・hhrt_tb_x:hhrt_tbの通信を1
つにまとめたプロトタイププログ
ラム
3
2
1
1GPUに同時に共有できる
プロセス数
ホストメモリ
考察
デバイスメモリの容量
・使用プログラム ・都市気流シミュレーション ・実行マシン ・TSUBAME2.5(Tesla K20X) ・プログラミング環境 ・gcc4.3.4 ・CUDA5.5 ・OpenMPI1.6.3
MPIプロセス
MPI通信
Weak Scalability
6 5 4
3
2
1
hhrt_x
hhrt_x
11.2GB(8Process)
11.2GB(16Process)
まとめと今後の課題
成果 •  実アプリケーションで、デバイスメモリを超えるデータを扱えることを確
認した •  TB+HHRTは、高性能+大容量+低プログラミングコストを実現する有効な
手法であることを確認した とを確認 ・TBでによるPCIe通信回数の削減で、性能向上を確認 ・斜めのMPI通信を逐次通信で実現するアプリケーショ
ンでは、MPI通信をまとめる必要がある ・ウィークスケーリングしていることを確認 ・ノード内プロセスをTB Sizeでについて8と16で比べると、 ・8プロセスの場合、Size11で最適となり、Size 12以
降で、GPU内に1プロセスしか共有できず、PCI通信が
隠蔽できないために性能低下していると考えられる ・16プロセスの場合は、Size15で最適となり、Size16
以降で、GPU内を2プロセスで共有しているが、性能低
下している(要件証) ・通信量の削減率よりも、冗長領域の増加による、
スワップ時のPCIe通信コストの増加が性能低下の要因
も考えられる ・本アプリのような3次元配列を多く必要とする場合、
冗長領域がメモリ容量を圧迫しするため、省メモリ化が
必要であると考えられる 今後の課題
•  斜めの通信を持つプログラムに対して、MPI通信を一つにまとめ
る最適化手法の提案
•  多くのメモリを使うアプリでは、1GPU内に複数のMPIプロセスが
共有し、かつ、TBサイズの増加を実現する省メモリ手法の提案
謝辞:本研究の一部はJST-­‐CREST「ポストペタスケール時代のメモリ階層の深化に対応するソフトウェア技術」の支援による