Kanade Electronicskanaelecom

広帯域アクセラレータ

メモリ性能を引き出すためのアーキテクチャ

High Bandwidth Core は以下の2つから構成されます。

  • MPU (Matrix Processing Unit) : Adder Tree を中心とした行列ベクトル積エンジン
  • SPU (Stream Processing Unit) : Stream パイプラインで演算行うエンジン

SPU
SPU
Vector
Vector
SRAM
SRAM
SRAM
SRAM
Ctrl
Ctrl
Host
Host
Matrix
Matrix
MPU
MPU
Weight
Weight
DRAM
DRAM
DDR
DDR
Weight
Weight
DRAM
DRAM
Weight
Weight
DRAM
DRAM
Weight
Weight
DRAM
DRAM
Matrix
Matrix
MPU
MPU
Matrix
Matrix
MPU
MPU
Matrix
Matrix
MPU
MPU
DDR
DDR
DDR
DDR
DDR
DDR
Vector
Vector
DRAM
DRAM
Vector
Vector
DDR
DDR
PCIe
PCIe
Text is not SVG - cannot display

概要

ストリーム型アクセラレータは「エッジ推論」に特化したアーキテクチャです。コンセプトは以下の2つです。

メモリ帯域を可能な限り引き出すこと

近年のAIワークロードは計算律速ではなくメモリ律速です。特にバッチ数が1のエッジ推論においては、モデルウェイトのロードが律速になりがちです。ストリーム型アクセラレータは、ウェイトが置かれている DRAM の帯域を限界まで使用することを主眼に置いたアーキテクチャです。

プログラミングモデルが簡単であること

AI モデルは基本的に NVIDIA のハードウェア上で学習されます。一方推論環境はさまざまなハードウェアがあります。非 NVIDIA の推論ハードウェアで最も重要なことは、モデルのポータビリティです。学習されたモデルをいかに早くデプロイできるかが、重要な指標になります。プログラミングモデルが簡単であれば、デプロイや最適化が非常にやりやすくなります。

近年のアクセラレータは、データ移動を明示的に制御するプログラミングモデルになっています。適切にデータをプリフェッチしメモリボトルネックを隠蔽することができます。しかしながら、プログラミングモデルが難しすぎて常人には扱えない代物になっていることが多いです。そのようなアーキテクチャは、性能を引き出すことがプログラマの責任になっていますが、それを完遂できる人はなかなかいません。最高のスペックを引き出すのが困難であれば、そのスペックは実用的ではありません。