[論文レビュー] Hierarchical Roofline Analysis: How to Collect Data using Performance Tools on Intel CPUs and NVIDIA GPUs
本論文は、Intel CPUおよびNVIDIA GPUにおける階層的Rooflineパフォーマンスデータ収集の包括的でツールに依存しない手法を提示する。Intel Advisor、LIKWID、nvprof、Nsight Computeといった低レベルパフォーマンスツールを用い、メモリ階層の利用状況と複数のキャッシュレベルにおける演算強度の詳細な分析を可能にする。ベンダーフレンドリーな統合ツールとは異なり、異なるツールやGPU/CPUアーキテクチャ間で一貫性があり再現性の高い結果を提供する柔軟な代替手段を提供する。
This paper surveys a range of methods to collect necessary performance data on Intel CPUs and NVIDIA GPUs for hierarchical Roofline analysis. As of mid-2020, two vendor performance tools, Intel Advisor and NVIDIA Nsight Compute, have integrated Roofline analysis into their supported feature set. This paper fills the gap for when these tools are not available, or when users would like a more customized workflow for certain analysis. Specifically, we will discuss how to use Intel Advisor, RRZE LIKWID, Intel SDE and Intel Amplifier on Intel architectures, and nvprof, Nsight Compute metrics, and Nsight Compute section files on NVIDIA architectures. These tools will be used to collect information for as many memory/cache levels in the memory hierarchy as possible in order to provide insights into application's data reuse and cache locality characteristics.
研究の動機と目的
- ベンダーフレンドリーな統合Rooflineツール(Intel Advisor や NVIDIA Nsight Compute など)の代替として、柔軟でカスタマイズ可能な階層的パフォーマンス分析手法を提供すること。
- Intel CPUおよびNVIDIA GPUの両方で、L1、L2、HBMなど複数のメモリ階層レベルにおける詳細なデータ収集を可能にすること。
- 商用ツールにアクセスできない、もしくはパフォーマンスデータ収集ワークフローの細かな制御を必要とする研究者や開発者を支援すること。
- 代表的なハードウェア(Knights LandingおよびV100 GPU)を用いて、異なるパフォーマンスツールとメトリクスセット間でRoofline結果の整合性と正確性を検証すること。
提案手法
- Intel Knights Landing CPUにおけるパフォーマンスデータ収集に、Intel Advisor、RRZE LIKWID、Intel SDE、Intel VTuneを活用した。
- NVIDIA V100 GPUにおける低レベルパフォーマンスカウンタ収集に、nvprof、Nsight Compute 2019、Nsight Compute 2020を用い、カスタムメトリクスセットを適用した。
- ハードウェアパフォーマンスカウンタを用いて、L1、L2、HBMレベルにおける演算強度(FLOPs/Byte)、GFLOP/sスルーレート、メモリトラフィックのメトリクスを収集した。
- パフォーマンスカウンタをRooflineモデルの構成要素にマッピングした:命令実行メトリクスからのFLOP数と、メモリアクセスカウンタからのデータ移動量。
- 実HPCワークロードにおけるデータ収集ワークフローの検証に、BerkeleyGWコードベースのミニアプリケーション(General Plasmon Pole)を用いた。
- ツール間の一貫性を確保するため、メトリクスセットを標準化した(例:sm__cycles_elapsed、l1tex__t_sectors_pipe_lsu_mem_global_op_ld)。
実験結果
リサーチクエスチョン
- RQ1ベンダーツールが利用できない場合、オープンソースおよび低レベルパフォーマンスツールを用いて階層的Roofline分析を効果的に行うことができるか?
- RQ2同じGPUワークロードに対して、異なるパフォーマンスツール(例:nvprof 対 Nsight Compute 2019 対 Nsight Compute 2020)を用いた場合、Roofline結果はどの程度一貫しているか?
- RQ3LIKWID や Intel SDE といったツールは、包括的なツールに比べて、マルチレベルキャッシュ分析に必要な正確で詳細なデータをどの程度提供できるか?
- RQ4Nsight Compute 2020における簡略化されたメトリクスセットは、以前のバージョンのより詳細なメトリクスセットと同等の結果をもたらすか?
- RQ5実HPCカーネルにおいて、メモリ階層レベル(L1、L2、HBM)ごとに、演算強度やGFLOP/sのパフォーマンス特性はどのように変化するか?
主な発見
- Intel Advisor や NVIDIA Nsight Compute 以外のパフォーマンスツールを用いても、階層的Rooflineモデルを効果的に実装可能であり、多様な展開環境での柔軟性を提供する。
- nvprof、Nsight Compute 2019、Nsight Compute 2020間で一貫性のあるRoofline結果が得られ、演算強度およびGFLOP/sスルーレートにわずかな差異が生じるにとどまった。
- LIKWIDは低オーバーヘッドでメモリ階層特性のプロファイリングを可能にしたが、ベクタ長や命令タイプの区別が欠如しているため、誤差の可能性がある。
- Intel SDE および VTune は詳細なシミュレーションとサンプリングデータを提供したが、LIKWIDに比べて高いプロファイリングオーバーヘッドを示した。
- NVIDIAのNsight Compute 2020は、簡素化されたメトリクスセットを導入し、より複雑なメトリクスセットと同等の結果をもたらした。これにより、既存のワークフローへの統合が容易になった。
- ミニアプリケーション(GPP)は、V100 GPU上でのL1、L2、HBMレベルにおいて、類似した演算強度とパフォーマンス特性を示し、強力なデータ再利用と効率的なメモリアクセスパターンを示した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。