Simple Science

最先端の科学をわかりやすく解説

# 物理学# 分散・並列・クラスターコンピューティング# 計算工学、金融、科学# パフォーマンス# 計算物理学

GROMACSがGPUパフォーマンス向上のためにSYCLを導入したよ

GROMACSがAMDのGPUでの分子動力学シミュレーションのパフォーマンス向上のためにSYCLを統合したよ。

― 1 分で読む


GROMACSのSYCL統GROMACSのSYCL統合成功を向上させる。GPUのSYCLを使って分子動力学の性能AMD
目次

GROMACSは分子動力学シミュレーションに使われる人気のソフトウェアパッケージで、科学者たちが時間をかけて分子の挙動を研究するのを助けるんだ。パフォーマンス、ポータビリティ、そして異なるハードウェアプラットフォームでの使いやすさに重点を置いてる。GROMACSは10年以上にわたってGPUアクセラレーターを活用して、パフォーマンスを向上させてきたんだ。

ハイパフォーマンスコンピューティング(HPC)のためのハードウェアが進化する中で、アクセラレータープラットフォームの種類も増えてきた。それに伴い、さまざまなベンダーにわたってうまく機能するプログラミングモデルが必要になってきた。GROMACSは良いパフォーマンスとポータビリティを両立させる適切なプログラミングモデルの選択に悩んでた。そこで、AMDやIntelの主要なメーカーのGPUを対象にするために、現代的なプログラミングモデルであるSYCLを採用したんだ。

SYCLはC++を使ってハードウェアアクセラレーターをプログラミングするためのクロスプラットフォーム標準だ。これによって開発者は、最小限の調整で異なるタイプのGPU上で動作するコードを書くことができる。この能力は、特にエクサスケールコンピューティングの出現でパワフルな計算リソースの需要が高まる中、重要だよ。

2022年にGROMACSがリリースされて以来、SYCLバックエンドはAMDのGPUをターゲットにする主要な方法となった。この準備は、今後のスパコンプラットフォームにとって重要だ。SYCLを使うことには多くの利点があるけど、分子動力学における高パフォーマンスを確保するのは特に難しいんだ。

分子動力学シミュレーション、とりわけバイオ分子を含むものは、短時間で多くの計算を要することが多い。これらのシミュレーションはレイテンシの影響を受けやすく、複数の計算リソースを使って効率的にスケーリングするのが難しくなる。この研究では、SYCLを使ったAMD GPUプラットフォームでのGROMACSのパフォーマンスが調査されて、MI250Xアクセラレーターを搭載したCray EX235aマシンで結果が示されるんだ。

GROMACSの背景

分子動力学(MD)は、化学や生物物理学などさまざまな分野で広く使われているシミュレーション手法だ。GROMACSはMDシミュレーションをサポートする主要なソフトウェアエンジンで、パーソナルラップトップからパワフルなスパコンまで、さまざまな計算環境で高速かつ柔軟でポータブルになるように設計されてる。

最新のリリースであるGROMACS 2024.0は約470,000行のコードを含んでいて、GitLab上でオープンに開発されてる。開発プロセスは、コードレビューや自動テストを通じてソフトウェアの品質とポータビリティを確保するんだ。

バイオ分子シミュレーションは、特定のシステムサイズに対してシミュレーションステップの数を最大化することを目指すことが多い。多くの粒子を含むことがあるので、利用できる並列処理の量が制限されるんだ。各シミュレーションステップも非常に短いため、計算リソースの要求が高まる。

これらのシミュレーションの複雑さから、良いパフォーマンスを達成することが重要だ。GROMACSはマルチレベルの並列処理など、パフォーマンスを最適化するためにいくつかの手法を使ってる。これは、タスクを小さな管理可能な単位に分けて、異なる処理技術を使って効率よくさまざまなハードウェア構造上で実行することを含む。

ハードウェアが進化する中で、GROMACSは利用可能なリソースを最大化するためにアルゴリズムを継続的に最適化してきた。この柔軟性により、GROMACSはマルチノードやマルチGPUの設定を効果的に活用できるんだ。

プログラミングモデルの必要性

科学シミュレーションの複雑さが増す中で、GROMACSのようなソフトウェアへの要求も増えている。市場に新しいアクセラレーターが登場するに連れて、パフォーマンスを犠牲にすることなく、幅広いデバイスをサポートすることが課題になってきた。GROMACSは、異なるタイプのGPUに簡単にアクセスでき、かつ強いパフォーマンスを保つプログラミングモデルが必要だった。

GROMACSの過去の取り組みは、OpenCLバックエンドのようなポータブルなソリューションの開発に注力してた。これも役立ったけど、サポートされるGPUの数が増えるにつれて、OpenCLモデルはあまり好まれなくなった。AMDとIntelがHPCセクターに再参入する中で、より強力なソリューションが必要になったんだ。

GROMACSはSYCLを潜在的な解決策として選んだ。SYCLは確立された標準に基づいており、異なるプラットフォーム間での長期的な互換性とサポートの展望がより良い。ハードウェアアクセラレーターをプログラミングするためのシンプルな方法を提供していて、GROMACSが今後の課題に備えるのに適してるんだ。

SYCLプログラミングモデルは、ポータビリティと既存のハードウェアとの統合のしやすさといった主要な利点を提供する。異なるSYCLの実装が利用可能で、GROMACSはパフォーマンスレベルをネイティブAPIに近づけながら、さまざまなGPUにターゲットを絞れるんだ。

GROMACSへのSYCLの実装

SYCLをGROMACSに統合する初期の作業は2020年に始まった。主な焦点はGROMACSをIntelのGPU上で動作させることにあり、AMDのGPUとの互換性も早い段階から考慮されてた。OpenCLバックエンドからSYCLへの移行は、コードの重複やメンテナンスの手間を減らすことを目指し、サポートされる全てのハードウェアにおいて一貫した機能を持たせることを狙ってた。

GROMACS用のSYCLバックエンドは、主要な力計算や統合、制約、通信などの重要なタスクと効果的に機能するように設計された。これにより、GROMACSは現代のGPUの処理能力をフルに活用しながら、設計を柔軟に保つことができる。

2023年のリリースでは、GROMACSはGPU対応MPIを通じて直接GPU通信を導入することでSYCLの実装を大幅に向上させた。この開発は、特にGROMACSが大きなシステムを扱う能力を拡張する中で、効率的にスケーリングするために重要だよ。

テストとパフォーマンス分析

性能評価は、AMD MI250X GPUを搭載した最新のCray EX235aスパコンでさまざまなベンチマークシステムを使って実施された。目的は、SYCLバックエンドを使ったときのGROMACSのパフォーマンスが、以前の実装やHIPのような代替プログラミングモデルと比較してどうだったかを確認することだった。

テストにはLUMIとDardelという2つの主要な環境が使われた。どちらのシステムも先進的なハードウェアセットアップを備えていて、GROMACSが個々のGPU使用からマルチノード構成までスケールする際のパフォーマンスを評価することを目的としてた。

評価はまず単一GPUのパフォーマンスから始まり、基準を確立した。これには、GROMACSがどれだけハードウェアを活用できるかを見るために異なるシステムサイズでのベンチマークが含まれてた。結果は、GROMACSのパフォーマンスが通常は最適化されたバージョンに近いものの、さまざまなカーネルのパフォーマンス特性の違いからいくつかの差が残っていることを示していた。

テストがマルチGPU構成に拡大すると、パフォーマンススケーリングが評価された。このシナリオでは、タスクと通信管理の効率が重要になる。結果は、カーネル発動の遅延やタスクグラフのフラッシングのような要因が、大規模なセットアップでのパフォーマンスに大きく影響することを示した。

SYCLの成果

GROMACS内でのSYCLの使用は、AMD GPUに対して信頼できるプログラミングモデルとして機能する可能性を示す有望な結果を出してる。GROMACSはネイティブなアプローチに匹敵する高いパフォーマンスを達成し、特定のシナリオではそれを超えることさえあったんだ。

GROMACSは複数のノードでの堅牢なスケーリングパフォーマンスを達成したが、長距離の力を計算するような特定のタスクには課題が残ってる。FFTの最適化が今後の改善に向けて重要な領域であることが確認された。

GROMACSはSYCLの実装を洗練させ続ける中で、学び取った教訓を活用してさまざまなハードウェア設定でのパフォーマンスを向上させることを目指してる。今後の取り組みは大きな改善につながることが期待されていて、GROMACSが複雑な分子動力学シミュレーションを行うためのより効率的なツールとなることが見込まれてるんだ。

未来の方向性

多くの進展があったにもかかわらず、GROMACSはスケーリングとパフォーマンスに関する課題、特にカーネルの最適化やシミュレーション中の長距離相互作用の効率的な処理に直面している。これらの課題に対処するには、慎重な計画とハードウェアベンダーとの継続的な協力が必要だ。

今後の開発は、重要なカーネル関数のパフォーマンス向上や分散FFTライブラリのスケーラビリティを強化することに焦点を当てる。これにより、GROMACSが競争力を維持し、ますます複雑になるシミュレーションに対応できるようになることが重要なんだ。

SYCLの使用をさらに強化することで、GROMACSは分子動力学用のより安定し、性能志向のプラットフォームを提供することを目指している。さまざまな研究チームや業界の専門家とのコラボレーションが、必要な進歩を進める手助けとなるだろう。

結論

最後に、GROMACSがAMD GPUベースのプラットフォームでSYCLを使用するようになったことが、パフォーマンスとポータビリティを実現するための成功したアプローチであることが証明された。これまでの進展は、計算ハードウェアの進化する風景や科学的探求の高まる要求に適応しようとする強いコミットメントを反映しているんだ。

SYCLの実装から得られた教訓やパフォーマンスの結果は、GROMACSだけでなく、同様の移行を目指す他の研究アプリケーションにも利益をもたらすかもしれない。ハイパフォーマンスコンピューティングの風景が進化し続ける中で、GROMACSは分子動力学シミュレーションの可能性を広げることに専念し、研究者が科学的ニーズに対して強力なツールを利用できるようにしていくよ。

オリジナルソース

タイトル: GROMACS on AMD GPU-Based HPC Platforms: Using SYCL for Performance and Portability

概要: GROMACS is a widely-used molecular dynamics software package with a focus on performance, portability, and maintainability across a broad range of platforms. Thanks to its early algorithmic redesign and flexible heterogeneous parallelization, GROMACS has successfully harnessed GPU accelerators for more than a decade. With the diversification of accelerator platforms in HPC and no obvious choice for a multi-vendor programming model, the GROMACS project found itself at a crossroads. The performance and portability requirements, and a strong preference for a standards-based solution, motivated our choice to use SYCL on both new HPC GPU platforms: AMD and Intel. Since the GROMACS 2022 release, the SYCL backend has been the primary means to target AMD GPUs in preparation for exascale HPC architectures like LUMI and Frontier. SYCL is a cross-platform, royalty-free, C++17-based standard for programming hardware accelerators. It allows using the same code to target GPUs from all three major vendors with minimal specialization. While SYCL implementations build on native toolchains, performance of such an approach is not immediately evident. Biomolecular simulations have challenging performance characteristics: latency sensitivity, the need for strong scaling, and typical iteration times as short as hundreds of microseconds. Hence, obtaining good performance across the range of problem sizes and scaling regimes is particularly challenging. Here, we share the results of our work on readying GROMACS for AMD GPU platforms using SYCL, and demonstrate performance on Cray EX235a machines with MI250X accelerators. Our findings illustrate that portability is possible without major performance compromises. We provide a detailed analysis of node-level kernel and runtime performance with the aim of sharing best practices with the HPC community on using SYCL as a performance-portable GPU framework.

著者: Andrey Alekseenko, Szilárd Páll, Erik Lindahl

最終更新: 2024-05-02 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2405.01420

ソースPDF: https://arxiv.org/pdf/2405.01420

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

類似の記事