[論文レビュー] Accelerating the computation of FLAPW methods on heterogeneous architectures
本論文は、BLAS-3カーネルとハイブリッドCPU-GPU/Phiオフロードを用いて、FLEURソフトウェアのFLAPW電子構造計算の高速化を図るために、ハミルトニアンおよび重なり行列計算の再設計を実施した。動的および静的ハイブリッドBLASルーチンの実装により、異種アーキテクチャ上でピーク性能の70%以上を達成し、JURECAスーパーコンピュータノードではCPUとアクセラレータを完全に活用することで5倍の高速化を実現した。
Legacy codes in computational science and engineering have been very successful in providing essential functionality to researchers. However, they are not capable of exploiting the massive parallelism provided by emerging heterogeneous architectures. The lack of portable performance and scalability puts them at high risk: either they evolve or they are doomed to disappear. One example of legacy code which would heavily benefit from a modern design is FLEUR, a software for electronic structure calculations. In previous work, the computational bottleneck of FLEUR was partially re-engineered to have a modular design that relies on standard building blocks, namely BLAS and LAPACK. In this paper, we demonstrate how the initial redesign enables the portability to heterogeneous architectures. More specifically, we study different approaches to port the code to architectures consisting of multi-core CPUs equipped with one or more coprocessors such as Nvidia GPUs and Intel Xeon Phis. Our final code attains over 70\% of the architectures' peak performance, and outperforms Nvidia's and Intel's libraries. Finally, on JURECA, the supercomputer where FLEUR is often executed, the code takes advantage of the full power of the computing nodes, attaining $5 imes$ speedup over the sole use of the CPUs.
研究の動機と目的
- 巨大並列性を活用する異種アーキテクチャを対象としたレガシーフォルダFLEURコードの近代化。
- FLEURのようなレガシーシステムサイエンティフィックコードにおけるパフォーマンスポータビリティおよびスケーラビリティの制限を克服。
- ベンダー最適化BLASライブラリが1つのデバイスタイプにのみ対応する場合のGPUおよびIntel Xeon Phiの未利用状態を是正。
- CPUとアクセラレータを効率的に活用するハイブリッドBLAS実装の開発を進め、高性能電子構造計算を実現。
- JURECAのような現代のスーパーコンピュータノードをCPUとアクセラレータ計算リソースを統合することで完全に活用可能にする。
提案手法
- モジュラリティとポータビリティの向上を目的として、標準化されたBLAS-3演算(例:zherk, zgemm)を用いてHSDLAアルゴリズムを再実装。
- 2種類のハイブリッドBLAS戦略を設計:タスクキューとバッファを用いた動的アプローチ、固定行列分割比を用いた静的アプローチ。
- HSDLAアルゴリズムにおけるメモリアクセスとデータ移動の最適化を実施し、メモリフットプリントの削減と計算フローの再構成を実現。
- マルチコアCPUとアクセラレータ(NVIDIA GPUおよびIntel Xeon Phi)を備えた異種システムへのコードのポーティング。
- 高度に最適化されたライブラリ(cuBLASXT, MKL)とカスタムハイブリッドカーネルを活用し、JURECAスーパーコンピュータ上で高いパフォーマンスを達成。
- ベースラインおよびベンダーライブラリとの比較において、GFLOPSおよびスループット指標を用いて、複数のテストケース(TiO2, AuAg)およびKmax値でのパフォーマンスを評価。
実験結果
リサーチクエスチョン
- RQ1FLEURのようなレガシーシステムサイエンティフィックコードに対して、BLASベースの再設計が異種アーキテクチャ間でのパフォーマンスポータビリティをどの程度向上できるか。
- RQ2ベンダー最適化ライブラリがCPU-アクセラレータハイブリッド実行をサポートしない場合、アクセラレータにBLAS演算をオフロードする際のパフォーマンスボトルネックは何か。
- RQ3GPUおよびXeon Phiアーキテクチャ上での動的および静的ハイブリッドBLAS実装のパフォーマンス、ポータビリティ、チューニング性を比較するとどうなるか。
- RQ4CPUとアクセラレータを同時に使用する状況で、カスタムハイブリッドカーネルがNVIDIAのcuBLASXTやIntelのMKLライブラリを上回るパフォーマンスを発揮できるか。
- RQ5CPUと複数のGPUを完全に活用する状況で、JURECAのような現代のスーパーコンピュータノードにおける実現可能なパフォーマンスとスケーラビリティはどの程度か。
主な発見
- アルゴリズム最適化により、HSDLA実装のメモリフットプリントと計算コストが削減され、異種アーキテクチャ上でより高いパフォーマンスが実現可能となった。
- 動的ハイブリッドBLASアプローチは、zherkカーネルにおいて4GPU環境でcuBLASXT比最大1.19倍のスループット向上を達成し、TiO2テストケースではzgemmtカーネルで1.13倍の向上を示した。
- 静的ハイブリッドBLASアプローチはzherkで1.19倍、zgemmtで1.13倍のスループット向上を達成し、行列分割比によるチューニング性が優れていた。
- JURECAでは、最終的な実装がシステムのピーク性能の70%以上を達成し、CPU単独使用時と比較して5倍の高速化を実現した。
- ハイブリッド実装は、CPUとアクセラレータを連携して効率的に活用することで、NVIDIAのcuBLASXTおよびIntelのMKLライブラリを上回るパフォーマンスを発揮した。
- 複数GPU間での強いスケーラビリティを示し、AuAgテストケースでは1GPUで1.5 TFLOPSから4GPUで6 TFLOPSまでGFLOPSが上昇した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。