[論文レビュー] Stardust: Compiling Sparse Tensor Algebra to a Reconfigurable Dataflow Architecture
Stardustは、再構成可能データフローアーキテクチャ(RDA)にスパーステンソル代数式を自動的に翻訳する最初のコンパイラであり、スパース計算を効率的にマッピングするための新しいスケジューリングおよびデータ表現言語を用いる。Capstan RDAにおける並列パターンのリライトとオンチップメモリ最適化を活用することで、CPUカーネルに対して138倍、GPUカーネルに対して41倍の高速化を達成した。
We introduce Stardust, a compiler that compiles sparse tensor algebra to reconfigurable dataflow architectures (RDAs). Stardust introduces new user-provided data representation and scheduling language constructs for mapping to resource-constrained accelerated architectures. Stardust uses the information provided by these constructs to determine on-chip memory placement and to lower to the Capstan RDA through a parallel-patterns rewrite system that targets the Spatial programming model. The Stardust compiler is implemented as a new compilation path inside the TACO open-source system. Using cycle-accurate simulation, we demonstrate that Stardust can generate more Capstan tensor operations than its authors had implemented and that it results in 138$ imes$ better performance than generated CPU kernels and 41$ imes$ better performance than generated GPU kernels.
研究の動機と目的
- CPUやGPUが達成できる範囲を超えて、スパーステンソル代数ワークロードの長尾部分におけるパフォーマンスとエネルギー効率のギャップを解消すること。
- スパーステンソル式からの高水準コンパイルを可能にすることで、データサイエンティストが再構成可能データフローアーキテクチャ(RDA)にアクセスできるようにすること。
- 効率的なスパースアクセラレータへのマッピングを実現するため、アルゴリズム、データ表現、スケジューリングの分離を図ること。
- コンパイラ最適化によるRDAへのマッピングが、手作業最適化されたCPUおよびGPU実装を上回ることを示すこと。
提案手法
- RDAの物理メモリ上でのアクセラレータ固有のテンソル配置を表現するための新しいデータ表現言語を導入する。
- 変換されたスパースイテレーション空間を、データコンビナーやコンピューティングユニットなどのスパースハードウェアコンponentにマッピングするためのスケジューリング言語を設計する。
- 抽象的なデータ構造の記述を特定のオンチップメモリにバインドするアルゴリズムを採用し、データ移動を最小限に抑える。
- 並列パターンのリライトシステムを用いて、スパーステンソル代数式をRDA向けの宣言的スパースSpatialプログラミングモデルに下げる。
- Capstan、再構成可能データフローアーキテクチャをターゲットとする新しいコンパイルパスを、オープンソースのTACOコンパイラに拡張する。
- サイクル単位のシミュレーションを活用して、CPUおよびGPUカーネルとのパフォーマンスを評価する。
実験結果
リサーチクエスチョン
- RQ1高水準コンパイラは、CPUやGPUを上回るパフォーマンスを達成する再構成可能データフローアーキテクチャに、任意のスパーステンソル代数式をマッピングできるか?
- RQ2スパースRDAにおける効率的なメモリ配置およびデータフローマッピングを実現するため、スケジューリングとデータ表現の抽象化をどのように設計できるか?
- RQ3アルゴリズム、データ表現、スケジューリングの分離は、従来手作業でコーディングされたものよりも新たな最適化マッピングを可能にするか?
- RQ4コンパイラ最適化は、RDA上のスパーステンソルカーネルにおいて、演算強度を向上させるとともに、冗長な計算をどれだけ削減できるか?
主な発見
- Stardustは、元々の開発者が手作業で実装した範囲を超えて、より広範なCapstanテンソル演算を正常にコンパイルした。
- サイクル単位のシミュレーションにおいて、生成されたCPUカーネルに対して138倍、GPUカーネルに対して41倍の高いパフォーマンスを達成した。
- 提案されたスケジューリングおよびデータ表現言語により、既存の手作業最適化実装を上回る最適化されたアルゴリズムの合成が可能になった。
- アルゴリズム、データ表現、スケジューリングの分離により、独立した最適化が可能となり、従来ターゲットとしていなかった新たなスパーステンソル演算がCapstan上で実現可能になった。
- 並列パターンのリライトによるコンパイラの下位変換パイプラインは、RDA向けに効率的なSpatialコードに高水準テンソル式を成功裏に変換した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。