Skip to content

Repository files navigation

Banked Systolic Multicast

English · 简体中文

banked-stencil-multicast のbank配置と同報経路を、weight-stationaryな小型シストリックアレイへ転用する派生参照実装です。

共通コア: banked-stencil-multicast

位置づけ

このリポジトリは、共通コアがPE配列の入力供給へ適用できることを先行公開するための応用記録です。独立したPE回路、実装性能、または本体のRTL・性能証拠を主張するものではありません。

三層構造

flowchart LR
    C["共通原理<br/>静的bank配置 → multicast → lane"] --> A["固有の派生<br/>common input + weight-stationary PE"] --> E["実証範囲<br/>4 PE / 16 step / 64 MAC<br/>参照モデル + 2 tests"]
Loading
このrepoで固定する内容
共通原理 本体の静的bank配置とmulticastを、共通入力のPE配布として読む
固有の派生 4 laneの重み行、入力ベクトル、整数内積、入力readの比較
実証範囲 整数参照モデル、固定ケース、2 tests。PE RTL・物理性能は含まない

定義

入力ベクトルを全laneへ同報し、laneごとの重み行との内積を計算します。

y[l] = Σ(s=0..S-1) x[s] * w[l][s]

コアとの対応

コア 派生側
lane PE列またはPE行の入力ポート
multicast 共通入力のPE配布
bank scheduler PE投入順の静的化
FIFO/PE RTL 本リポジトリの対象外

lane数4は本体の基準境界に合わせた値です。本体のbank scheduleやRTL/formal結果を、このrepoだけで再証明するものではありません。

固定ケース

reference/systolic_model.py の既定値は、16要素の入力と4本の16要素重み行です。

項目
lane/PE数 4
入力step数 16
MAC数 64
unique input read数 16
複製read比較値 64
read削減数 48
input read削減率 4.0倍
multicast delivery数 64
issue cycle数 16
output digest 65c7cf00a7c8cd19b7b31b7d4bee3daffe253259f5d4feb320056b61b1358aa7

read数、delivery数、issue cycle数は参照モデルのカウントです。実装帯域・周波数・電力・性能保証ではありません。

有用性の最小証拠

4 laneへ同じ入力を配布する固定ケースで、64 MACの出力digestが再現されます。入力readは複製読出しの64回からunique 16回として数えられ、48回、4.0倍の差になります。

これは、共通入力をmulticastで供給する構成を正しさとデータ移動の両面から比較できることの証拠です。ハードウェア速度の証明ではありません。

再現

リポジトリルートでPython 3.10以降を実行します。

python -B -m unittest discover -s tests -v

2 tests、OK

証拠の境界

区分 内容
参照 整数内積、laneごとの重み、入力再利用、multicast delivery、issue順のモデルとテスト
実測 なし
試算 なし。read数とcycle数はモデル内のカウント
未検証 PE RTL、SRAM port、bank競合、FIFO、任意形状、配線、Fmax、面積、電力、物理実装

公開単位

このrepoはシストリックアレイ応用の独立した公開単位です。公開版のDOIは CITATION.cff に記録します。コードはApache-2.0、文書はCC BY 4.0です。

About

Derived application reference model and reproducible tests for applying banked multicast dataflow to a small systolic array.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages