「Spatz: A Compact Vector Processing Unit for High-Performance and Energy-Efficient Shared-L1 Clusters」という論文を読んでいる。 これは論文を読んでいるときのメモ:
https://dl.acm.org/doi/abs/10.1145/3508352.3549367
3. Spatzの処理能力
- 1MACUにつき、128-bitの演算が可能ということか。Spatz2とSpatz4の違いはベクトル長。 消費電力・性能・面積を分析する参照単位として、1つのSpatz4 CC, 2つのSpatz2 CC、または4つのスカラSnitch CCを比較した。
- matmulとconv2dを使用して、Spatz4とSpatz2の性能ルーフラインモデルと実際のRTLシミュレーションによる性能測定を行った。 Spatz2/4において、RTLシミュレーションは上手くスケールしていることが分かる。どちらともピーク性能に到達することが可能となっている。
- Spatzが小さなカーネルでも高い性能と機能ユニットの利用率を達成し、スーパスカラやアウト奥部オーダコアを必要とせずに達成できることを示している。
合成結果
GlobalFoundries 22FDX FD-SOIを使用して論理合成を行った結果を示している。動作周波数は500MHzを目標として合成をした。 - Spatz2ベースのCC : 193kGCE, 89kGE/MACU - Spatz4ベースのCC : 355kGCE, 89kGE/MACU Spatz4の大部分はVRFを占めている。図4において、
(A) : VRF (B) : VAU (C) : VLSU (D) : Snitch (O) その他のブロック
各命令単体を動かしたときの消費エネルギーを見積もった。 Snitchは非常に消費電力が少ないが、VRF, VAU, VLSUによる消費がSpatzの消費エネルギーの大部分を占めている。
Spatz2およびSpatz4ベースのクラスタはSnitchのクラスタよりも効率的に動作することができる。 小規模共有L1クラスタの効率の良さを示している。
SpatzベースのMemPoolクラスタ
- Spatzを搭載した4つのSnitchコア、2KBの命令キャッシュ、16KBのSPM、コアとメモリのクロスバを含んだタイルを基本とする。
- これを複製して、最小16コアから最大256コアを含むMemPool構成を構築できる。
- スカラコアのみのMemPoolコンフィグレーションはMemPoolcと呼ばれ、cはシステム内のSnitchの数を示している。Snitchには1つのMACUが含まれる。
- MemPool16構成 : Snitch 16コア
- MemPool8Spatz2構成 : Snitch 8コア + Spatz 2コア
- MemPool4Spatz4構成 : Snitch 4コア + Spatz4コア
- 各Spatzインスタンスには、ベクトル長128ビットのMACUを搭載している。
ベンチマーク
- matmulおよびconv2dの計算でMemPoolインスタンスをベンチマークした。
- SpatzベースのMemPoolシステムでは、SnitchベースのMemPoolシステムと同等またはそれ以上の性能を達成することができている。
過去記事