[論文レビュー] Towards a Multi-array Architecture for Accelerating Large-scale Matrix Multiplication on FPGAs
本稿では、処理要素(PE)およびPEアレイの動的構成を可能にする線形シスチールアレイの拡張により、FPGA上で大規模な行列乗算を効率的かつスケーラブルに加速する、高設定可能なマルチアレイアーキテクチャを提案する。作業盗みによる負荷分散方式と、最適な設計パラメータを決定するための解析的モデルを導入し、リソース使用率を最小限に抑えつつ、AlexNetのレイヤーで最大100.9 GFLOPS(理論ピークの98.6%)の性能を達成した。
Large-scale floating-point matrix multiplication is a fundamental kernel in many scientific and engineering applications. Most existing work only focus on accelerating matrix multiplication on FPGA by adopting a linear systolic array. This paper towards the extension of this architecture by proposing a scalable and highly configurable multi-array architecture. In addition, we propose a work-stealing scheme to ensure the equality in the workload partition among multiple linear arrays. Furthermore, an analytical model is developed to determine the optimal design parameters. Experiments on a real-life convolutional neural network (CNN) show that we can obtain the optimal extension of the linear array architecture.
研究の動機と目的
- FPGA上での大規模な行列乗算に向けた、従来の線形シスチールアレイアーキテクチャのスケーラビリティの限界を解消すること。
- 問題サイズの変化に応じて、PEの数および並列PEアレイの数を動的に構成可能にする仕組みを提供すること。
- 作業盗み方式により、複数のPEアレイ間での負荷バランスを確保すること。
- 性能とメモリ効率を最適化するための設計パラメータ(ブロックサイズとアレイ数)を決定する解析的モデルの構築。
- 実世界のディープラーニングワークロード(例:AlexNet)におけるアーキテクチャの性能を検証すること。
提案手法
- 提案アーキテクチャは、構成可能なマルチプレクサを介して接続された複数の線形PEアレイから構成され、独立または協働動作モードをサポートする。
- 作業盗み方式により、負荷の不均衡が生じた際にタスクを再配分することで、PEアレイ間での動的負荷分散を実現する。
- マトリクス処理エンジン(MPE)は、各PEに完全にパイプライン化された単精度浮動小数点乗算累積ユニットを搭載し、2つの入力レジスタと3つのFIFOを介してデータフローを制御する。
- 解析的モデルにより、メモリ帯域幅とデータトラフィックを推定し、ブロックサイズ $S_i$ およびアレイ数 $N_p$ の最適な設定を導く。
- モデルは式9を用いて、合計PE数 ($P_m \times P$) を固定し、合計実行時間 $T_{‘total}$ の範囲を最小化することで、設計空間を縮小する。
- システムはXilinx VC709 FPGAに実装され、DDR3メモリを搭載。合成とタイミング解析にはVivado 2016.4が使用された。
実験結果
リサーチクエスチョン
- RQ1線形シスチールアレイアーキテクチャを、FPGA上の大規模な行列乗算にスケーラブルに拡張するにはどうすればよいか?
- RQ2性能とメモリ効率を最大化する設計パラメータ(ブロックサイズ $S_i$、PEアレイ数 $N_p$)は何か?
- RQ3計算中に複数のPEアレイ間で負荷の不均衡が生じた場合、どのようにしてこれを軽減できるか?
- RQ4解析的モデルは、実際の実行時間の予測がどの程度正確であり、最適な設定を導くのにどの程度有効か?
- RQ5実世界のワークロードにおいて、マルチアレイアーキテクチャは単一アレイまたは完全展開アレイ設計を上回る性能を発揮するか?
主な発見
- AlexNetの全結合層(fc-6)における最適設定では、100.9 GFLOPSの性能が達成され、理論ピークの98.6%に相当した。
- $(N_p=1, S_i=32)$ のケースは、PE数が少ないにもかかわらず、1.6 GB/s(対比:1.4 GB/s)の高い有効メモリ帯域幅のおかげで、$(N_p=2, S_i=16)$ よりも優れた性能を示した。
- AlexNetのすべてのレイヤーにおいて、最適な $<N_p, S_i>$ を用いた本アーキテクチャは、単一アレイ($N_p=1$)および完全展開アレイ($N_p=4$)の両方の設定を上回った。
- メモリ帯域幅が十分な場合、解析的モデルによる下限推定値は実際の実行時間と非常に近い値を示したが、メモリ制限の状態では乖離が生じた。
- リソース使用率は50%未満(例:LUTで44.44%)を維持しており、200 MHzという高いクロック周波数を達成し、効率的な性能スケーリングを実現した。
- 作業盗み方式により、PEアレイ間での負荷バランスが効果的に実現され、無駄な待機サイクルが防止され、全体の利用効率が向上した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。