RTL設計:CNNアクセラレータ
畳み込みの添字と整数の数値契約を学び、ストリーミングウィンドウ、PEへの割り当て、タイリングへ進みます。値、スケジュール見積もり、通信量を区別し、実行可能な参照モデルと小さな推論経路を検証します。
このコースで学ぶこと
- ストライド、パディング、ダイレーション、チャネルを含む畳み込みの形状と添字を計算する
- 固定小数点単位、スケール、ゼロ点、アキュムレータ幅、丸め、飽和を定義する
- 直接畳み込みをim2colの正解モデルと比較する
- ラインバッファと、停止状態を保持する転送受け入れでウィンドウを生成する
- PE再利用、タイル記憶量、通信量、スケジュール仮定を計算する
- 小さな推論経路の数値結果と証拠の限界を報告する
はじめる前に
ブラウザー演習は教育用モデルで、HDLのコンパイルや実行は行いません。配布ソースを別途実行する場合は、OSに合ったDigital Design Studioの手順に従い、必要な操作ではログインしてください。
インストールと初回起動 ↗ · ダウンロード ↗カリキュラム
- 推論の契約
- 推論と学習概念
出力チャネルだけを3から6に増やすと、MAC数と保存するバイアス数はどう変わりますか。
- 畳み込みと相互相関概念
入力[1,2;4,5]、カーネル[1,0;0,-1]の相互相関と、反転カーネルでの結果は何ですか。
- 形状、ストライド、パディング、ダイレーション概念
H=7,R=3,ストライド2,上パディング0,下パディング1,ダイレーション2で、Hoとh=1,r=2の入力座標を計算してください。
- 確認:形状とMAC数理解度チェック
N=1,C=2,H=W=5,M=3、3×3カーネル、ストライド2、全方向パディング1、ダイレーション1で、出力形状とMAC数は何ですか。
- 数値の契約
- 固定小数点のビットと単位概念
F=4で0.5と−1.25を掛け、F=8のバイアス0.25を加えます。アキュムレータのコードと実数値は何ですか。
- スケールとゼロ点概念
sx=0.25,zx=128で、パディングコードとq=132の実数値は何ですか。sw=0.5のとき0.75を表すバイアスコードは何ですか。
- アキュムレータ幅、丸め、飽和概念
バイアスがゼロの符号付きint8積9個に、符号付き18ビットは十分ですか。
- 実習:量子化の契約を実行する実習
同じuint8設定で−40を量子化します。コードと逆量子化値は何ですか。どのアサーションを追加しますか。
- 参照演算子
- 直接畳み込みの参照モデル概念
入力[2,3]、重み[4,−1]、バイアス1で、入力チャネルごとにバイアスを加えるとどの誤結果になりますか。
- im2colと行列乗算概念
H=W=4,C=1、有効な3×3カーネルで、元入力要素数、P,K、展開パッチ要素数を計算してください。
- ReLUと最大プーリングを接続する概念
uint8出力のゼロ点100で、[98,103;101,97]にReLUと2×2最大プーリングを適用してください。
- 確認:出力処理の順序理解度チェック
アキュムレータ[−1,2;3,−4]に乗数0.5,zy=0,最近接偶数丸め,int8飽和,ReLU,2×2最大プーリングを適用します。最終コードは何ですか。
- ストリーミングのウィンドウ生成
- ラインバッファと3×3ウィンドウ概念
W=8,H=6で、記憶スロット数、最初の有効な受け入れ入力添字、総ウィンドウ数を計算してください。
- Ready/validとストール中の状態概念
out_ready=0で出力段がAを保持し、入力Bが有効です。次のエッジで段と生成側は何をしますか。
- 実習:停止しても保たれるウィンドウ実習
代わりにサイクル0,1,2で停止し、最終的に全入力を受け入れると、ウィンドウ値や数は変わりますか。総サイクル数は何ですか。
- 確認:最初のウィンドウのタイミング理解度チェック
4×4、幅4、有効3×3生成器は最初の4サイクルで入力を受けず、その後毎サイクル1画素を受けます。最初のウィンドウの受け入れ入力添字と経過サイクルをゼロ始まりで求めてください。
- PEとメモリへの割り当て
- PE、データフロー、MACの再利用概念
P=3,M=2,K=8を4個の出力固定PEへ割り当てます。書き込みを除くMACサイクル数と有用MACスロット利用率は何ですか。
- タイル、ハロー、部分和概念
Th=Tw=2,Tc=1,Tm=2、3×3カーネル、ストライド2、ダイレーション1で、単一バッファの入力・重み・32ビット和・バイアスのバイト数を計算してください。
- 帯域幅と計算の限界概念
1152 MAC、224バイトでPEを8個にし、帯域幅は0.5バイト/サイクルのままとします。完全重ね合わせの下限は何ですか。
- スケジュール、端数、二重バッファ概念
K=10、4出力、3 PE、出力ごとに追加1サイクルとして、モデルのサイクル数とMACだけの利用率を計算してください。
- 検証と測定可能な総合課題
- 正解モデルと失敗の分類概念
参照値[37,47;67,77]と[38,48;68,78]が異なります。まず何を調べ、何を記録しますか。
- 実習:境界ケースを試す実習
パディング例の全カーネル重みを1に変えます。最初の出力は何ですか。中央だけのテストでは不十分なのはなぜですか。
- 総合課題:小さな推論経路とレポート実習
K=9、4出力、出力ごとに追加1サイクルを維持し、3 PEにします。総モデルサイクル数とMACだけのスロット利用率は何ですか。
- 最終確認:主張と証拠理解度チェック
総合課題のNode実行は数値一致、36 MAC、24サイクルのスケジュールモデル、90%のMACスロット利用を検証します。正確な完了表現はどれですか。