[論文レビュー] Serpens: A High Bandwidth Memory Based Accelerator for General-Purpose Sparse Matrix-Vector Multiplication
Serpens は、メモリ中心の処理エンジンとインデックスの統合を活用してメモリアクセスと URAM 利用率を最適化する、一般用途のスパース行列-ベクトル乗算(SpMV)を目的とした HBM ベースの FPGA アクcelerator である。SuiteSparse 行列において、最大 60.55 GFLOP/s の性能を達成し、GraphLily より最大 3.79× のスループット向上を実現。K80 GPU よりも 6.25× より高いエネルギー効率を実現した。
Sparse matrix-vector multiplication (SpMV) multiplies a sparse matrix with a dense vector. SpMV plays a crucial role in many applications, from graph analytics to deep learning. The random memory accesses of the sparse matrix make accelerator design challenging. However, high bandwidth memory (HBM) based FPGAs are a good fit for designing accelerators for SpMV. In this paper, we present Serpens, an HBM based accelerator for general-purpose SpMV.Serpens features (1) a general-purpose design, (2) memory-centric processing engines, and (3) index coalescing to support the efficient processing of arbitrary SpMVs. From the evaluation of twelve large-size matrices, Serpens is 1.91x and 1.76x better in terms of geomean throughput than the latest accelerators GraphLiLy and Sextans, respectively. We also evaluate 2,519 SuiteSparse matrices, and Serpens achieves 2.10x higher throughput than a K80 GPU. For the energy/bandwidth efficiency, Serpens is 1.71x/1.99x, 1.90x/2.69x, and 6.25x/4.06x better compared with GraphLily, Sextans, and K80, respectively. After scaling up to 24 HBM channels, Serpens achieves up to 60.55~GFLOP/s (30,204~MTEPS) and up to 3.79x over GraphLily. The code is available at https://github.com/UCLA-VAST/Serpens.
研究の動機と目的
- SpMV における不規則なメモリアクセスパターンの課題に、メモリ最適化されたアクセラレータを設計することで対処する。
- GraphLily や Sextans といった既存の FPGA アクセラレータが、SpMV に完全にカスタマイズされておらず、メモリ帯域幅を十分に活用できていないという制限を克服する。
- 再プロトタイピングを必要とせず、データセンタでの一般用途の展開を可能にするために、任意のスパース行列に対して高い性能とスケーラビリティを実現する。
- HBM およびオンチップメモリ(BRAM/URAM)の利用を最大化し、オフチップメモリの遅延を低減するとともに、スループットとエネルギー効率を向上させる。
- スパースワークロードにおけるエネルギーと帯域幅のオーバーヘッドを低く抑えつつ、GPU と同等の性能を実現する。
提案手法
- オフチップメモリアクセスを最小限に抑えるために、ストリーミング的かつ出力固定の方法でスパース行列を処理するメモリ中心の処理エンジンを採用する。
- 非ゼロインデックスをオンチップ URAM に効率的にパックするためのインデックス統合を実装し、メモリ帯域幅の利用効率を向上させるとともに、アクセス遅延を低減する。
- 密行列の入力ベクトルをセグメントに分割し、オンチップ BRAM/URAM で結果を蓄積することで、高スループットかつ低遅延の計算を実現する。
- スパース行列形式をアクセラレータフレンドリーなストレージに変換するカスタムデータレイアウトとプリプロセッシングパイプラインを採用し、任意の SpMV ワンダムに互換性を持つ。
- 最大 24 の HBM チャネルを備えた HBM ベースの FPGA(U280)を活用し、TAPA および Autobridge ツールを用いて大規模スケーリングにおける配置・配線の混雑を解消する。
- 再構成可能なスケーラブルなアーキテクチャを設計し、再設定を必要とせず、多様なスパース行列においても高い性能を維持する。
実験結果
リサーチクエスチョン
- RQ1一般用途の SpMV において、HBM ベースの FPGA アクセラレータは、既存の GPU や FPGA アクセラレータを上回るスループットとエネルギー効率を達成できるか?
- RQ2インデックス統合は、SpMV ワンダムにおける URAM 利用率の向上とメモリアクセスオーバーヘッドの低減にどの程度効果的か?
- RQ3メモリ中心の処理エンジンは、不規則なスパースデータにおいて、オフチップメモリへの依存度をどの程度低減でき、性能向上に寄与するか?
- RQ4HBM チャネルを 16 から 24 にスケーリングした場合、SpMV アクセラレーションにおけるパフォーマンスとスケーラビリティにどのような影響を与えるか?
- RQ5カスタム FPGA アクセラレータは、K80 といったハイエンド GPU よりも、幅広い実世界のスパース行列において、スループットとエネルギー効率の両面で優れているか?
主な発見
- 12 個の大きなスパース行列において、Serpens は GraphLily より 1.91×、Sextans より 1.76× の高いジオメトリック平均スループットを達成した。
- 2,519 個の SuiteSparse 行列において、Serpens は K80 GPU より 2.10× の高いスループットと 6.25× より高いエネルギー効率を実現した。
- 24 HBM チャネルを搭載した場合、Serpens はピーク性能として 60.55 GFLOP/s および 30,204 MTEPS を達成し、GraphLily より最大 3.79× のスピードアップを実現した。
- SuiteSparse ベンチマークスイート全体において、Serpens は帯域幅効率を 4.06× 向上させ、エネルギー効率を K80 GPU より 6.25× 向上させた。
- BRAM 使用量が増加したものの、SpMV 特化のカスタマイズにより、GraphLily よりも LUT、FF、DSP、URAM の使用量が少ない。
- 24 チャネル版の Serpens は 270 MHz のクロック周波数を維持し、TAPA および Autobridge ツールを用いて配置・配線の混雑を正常に克服した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。