[論文レビュー] Optimized implementation of the conjugate gradient algorithm for FPGA-based platforms using the Dirac-Wilson operator as an example
本稿では、格子QCDシミュレーションにおける複素線形系の代表的例としてのディラック=ワイル作用素を用いた、最適化されたFPGA実装による共役勾配(CG)アルゴリズムを提示する。Xilinx U280上でOpenCLおよびC++で実装され、隠れたデータ転送とパイプライン化されたメモリアクセスを備えることで、300 MHzで607 GFLOPSの性能を達成した。これは、HPCアクセラレータにおけるFPGAを用いた、非常に効率的で再利用可能なフレームワークを示している。
It is now a noticeable trend in High Performance Computing that the systems are becoming more and more heterogeneous. Compute nodes with a host CPU are being equipped with accelerators, the latter being a GPU or FPGA cards or both. In many cases at the heart of scientific applications running on such systems are iterative linear solvers. In this work we present a software package which includes an FPGA implementation of the Conjugate Gradient algorithm using a particular problem of the Dirac-Wilson operator as encountered in numerical simulations of Quantum Chromodynamics. The software is written in OpenCL and C++ and is optimized for maximal performance. Our framework allows for a simple implementation of other linear operators, while keeping the data transport mechanisms unaltered. Hence, our software can serve as a backbone for many applications which are expected to gain a significant boost factor on FPGA accelerators. As such systems are expected to become more and more widespread, the need for highly performant FPGA implementations of the Conjugate Gradient algorithm and its variants will certainly increase and the porting investment can be greatly facilitated by the attached code.
研究の動機と目的
- 異種HPCシステム向けに、高性能で再利用可能なFPGA実装による共役勾配アルゴリズムを開発すること。
- 新しい作用素に適応させるためにコード変更を最小限に抑えることにより、反復的線形ソルバーをFPGAアクセラレータに移植する課題に対処すること。
- 高度なメモリおよびカーネル最適化技術を用いて、FPGAベースのCGソルバーにおける計算リソースの活用を最大化し、データ移動を最小限に抑えること。
- FPGAアクセラレータ搭載システムにおけるHPCアプリケーションおよびHPCGベンチマークの基盤として機能する、プロダクション準備の整ったソフトウェアスタックを提供すること。
- FPGAが、スパースで構造的線形系を含む特定のHPCワークロードにおいて、CPUやGPUを上回る性能を発揮できることを実証すること。
提案手法
- CGアルゴリズムは、Xilinx Alveo U280 FPGAをターゲットとし、性能を最適化するための2精度浮動小数点バージョンを用いてOpenCLおよびC++で実装された。
- カーネルは2クロックサイクルのイニシエーションインターバルに設定され、300 MHzで動作することで、スループットを最大化した。
- サイクリックバッファを用いて、データ転送とカーネル計算を重ね合わせ、メモリ遅延を隠蔽した。
- 3つのハイブリッドメモリ(HBM)チャネルが入力データをFPGAにストリーム送信し、1つのHBM3チャネルが結果を返却することで、連続的な動作を可能にした。
- 4次元グリッドに基づくディラック=ワイル作用素の複素行列要素を含むステンシル処理を扱うために、カスタムデータ型と最適化されたメモリアクセスパターンが採用された。
- 非ブロッキングホスト同期が使用され、すべてのデータ転送が計算と重ね合わされ、リソースの活用度を最大化した。
実験結果
リサーチクエスチョン
- RQ1FPGAベースのCG実装は、大規模なスパース線形系に対して、現代のCPUやGPUと同等の性能を達成できるか?
- RQ2反復的ソルバーにおけるFPGAのリソース活用度を最大化するために、データ移動とカーネル実行をどのように効果的に重ね合わせられるか?
- RQ3コア論理の再設計を伴わずに、CGカーネルを異なる線形作用素に適応できる範囲はどの程度か?
- RQ4FPGAハードウェア上で最適化されたメモリアクセスとパイプライン化されたデータフローによって、どの程度の性能向上が達成できるか?
- RQ5提案されたフレームワークは、FPGAアクセラレータ搭載システムにおけるHPCアプリケーションおよびHPCGベンチマークのポータブルな基盤として機能できるか?
主な発見
- Xilinx U280上でFPGA実装は607 GFLOPSの継続的性能を達成し、64コアのIntel Xeon Phiを上回り、同じアルゴリズムでNvidia V100 GPUと同等の性能を示した。
- カーネルは2サイクルのイニシエーションインターバルで動作し、300 MHzのクロック周波数を達成することで、高いスループットと効率的なリソース活用が実現された。
- 入力ストリーミングと出力返却の重ね合わせにより、データ転送が完全に計算の背後に隠蔽され、カーネル実行が途切れなく継続された。
- 同じデータ転送およびカーネルインターフェースを維持することで、他の線形作用素への再利用が可能となり、新しいHPCアプリケーションへの迅速な移植が可能になった。
- FPGAが低遅延で決定論的な通信と高い算術強度を提供できることを実証した。これは、複雑なメモリアクセスパターンを伴うHPCワークロードに最適であることを示している。
- ソフトウェアパッケージはプロダクション準備が整っており、GNU GPLの下でオープンソースであり、統合を支援するドキュメントとサポートを備えている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。