20 / 24 · 概念
スケジュール、端数、二重バッファ
K=10、4出力、3 PE、出力ごとに追加1サイクルとして、モデルのサイクル数とMACだけの利用率を計算してください。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
下限をスケジュールにする
計算下限はすべての有用PEスロットを埋められると仮定します。スケジュールにはロード、初期化、MAC、変換、書き込み、完了を配置する必要があります。縮約軸をPEに分割すると結合が必要な部分和が生じます。出力軸の分割は結合を避けられますが、端数出力でPEが空きます。並列化する軸を示します。
縮約端数の計算例
1出力はK=9 MACで、2 PEが毎サイクル2項を実行します。ceil(9/2)=5 MACサイクルが必要で、最後に1無効スロットです。4出力を逐次処理すると20 MACサイクル、40利用可能スロットです。有用36 MACなのでMACスロット利用率90%です。出力ごとに追加の結合・書き込み1サイクル、重ね合わせなしを仮定すると計24です。
このオーバーヘッドはモデル仮定で、検証済みRTLレイテンシではありません。実際の縮約木、依存、出力ポートは異なり得ます。24サイクルの全PEスロットに対しては36/(2×24)=75%です。この分母はMACだけの90%とは異なります。総合課題では仮定を明示します。
二重バッファ重ね合わせの計算例
各タイルにロード6、計算10、書き込み2サイクルが必要とします。3タイルを完全逐次で処理すると54です。ロードと計算のリソースを分け、入力と重みを二重バッファし、書き込みが競合しないなら、最初のタイルを6サイクルでロード後、後続を事前取得しながら3つの10サイクル計算を行います。最後の書き込み2を加えて38です。前の書き込みは次の計算と重なると仮定します。
計算4サイクルでもロードが6なら、ロード側が遅れます。2バッファは帯域幅を作りません。新ロードが計算中バッファを上書きしないよう、所有遷移を描きます。ロードと書き込みがバスを共有するなら理想スケジュールを再計算します。
最終入力の受信では演算は終わりません。MAC、変換、活性化、プーリング、最終結果の受け入れを排出します。カウンタの開始・終了条件を指定します。ソフトウェア見積もり、RTLシミュレーション、合成周波数、デバイス測定は別の証拠です。このコースは数値実行と明示的なスケジュール見積もりを提供します。
- 初期化: アキュムレータの単位でバイアスを1回ロード
- 5 MACサイクル: 2 PEで有用な9項を処理
- 結合と格納: 出力ごとにモデル上1サイクル追加
- 排出: 最終結果の受け入れ後にのみ完了
自分で考えてみましょう
K=10、4出力、3 PE、出力ごとに追加1サイクルとして、モデルのサイクル数とMACだけの利用率を計算してください。
解説を見る
各出力は4 MACサイクル必要です。総数は4×(4+1)=20です。48 MACスロット中40が有用なので83.33%です。