Altifigence Academy

9 / 20 · 概念

出力固定とその他のデータフロー

PEに何が留まるかを特定して、記憶と転送を比較します。

どの値が局所に留まるかを問う

シストリックアレイは、オペランドを隣接処理要素間で動かしながら並列処理します。「固定」は計算中の再利用のため近くに保持する値を表します。数学的演算が同じでも、選択が異なるとPEレジスタ、部分和経路、境界スケジュールが変わります。

この出力固定設計では、PE(i,j)がC(i,j)の部分和を保持します。kが進むとAとBが移動します。全K項が到着後、結果を回収し、クリアで新しい出力タイルを始めます。A値は行内で、B値は列内で再利用されます。2×2の例ではA(0,0)=1がC(0,0)とC(0,1)の両方へ寄与します。

重み固定設計はBなどの重みをPEへ事前ロードし、到着する活性値に対して再利用します。部分和は移動するか、別の場所で集める必要があります。ポートの名前を変えるだけではOSコントローラはWSになりません。保存値、事前ロード順序、結果経路がすべて変わります。入力固定設計は活性値を保持し、重みや出力計算にわたって再利用します。ここではその考えを比較しますが、ISアレイは実装しません。

データフロー保持する値調べるコスト
OS出力の部分和広いアキュムレータと結果回収
WS重み事前ロードと部分和の転送・記憶
IS活性値重み供給と出力和の結合

3つの通信量を別々に測る

同じBを使う2つの2×2積を考えます。このOS境界モデルは1ジョブにつきAを4値、Bを4値供給し、2ジョブで16オペランド値です。局所Bバッファがあれば2番目のジョブで外部メモリからBを再読せずに済みますが、4個の境界トークンはなお供給します。重み事前ロードの再利用は異なるトレードオフで、部分和経路も変える必要があります。

外部読み出し、境界への投入、PE間転送は別々の測定です。UC Berkeley Gemmini READMEは、OSとWSを設定可能なデータフローの一次資料例です。この学習用アレイには独自の契約があり、Gemminiの実装や命令インターフェースを再現しません。

設計レビューでは、局所に留まるもの、和を累積する場所、各境界を横断する値を特定します。再利用だけで十分なメモリポートや継続スループットは保証されません。

自分で考えてみましょう

2つの2×2ジョブが局所バッファに保持したBを共有し、Aは再利用しません。外部オペランド読み出し数とOS境界投入数はいくつですか。

解説を見る

外部読み出しは計12値で、4値のA行列2個と4値のB行列1個です。境界投入は計16値で、各ジョブにAを4値、Bを4値供給します。結果書き込みと内部転送は含みません。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。