9-01 extras-1, 2層目のVHDL化
●extras-1層目はカーネルが1x1になる
vgg-15層が終わると次からはextras層に入ります。extras-1〜8まで8層ありますが、図9-01はその1層目のタイミングのイメージを示します。
extras-1層目の入力は1024ch、出力は256chになります。この層はカーネルが1x1になります。この層では1つの乗算器で出力を128ch、2並列で計256ch計算します。 |
図9-01 extras-1層目のタイミングのイメージ
●128ch×2並列なので出力256ch
図9-01の上段はoutCh0,1,2,...127を計算するようすです。これら出力128chは1個の乗算器で「逐次的に」計算されます。したがって1画素の計算にかかる期間は10ns
x 1024 x 128 = 1310.72usになります。
1ライン19画素なので1310.72us x 19 = 24.90368mで1ライン計算しますが、同図右にあるように「休み期間」が2.74432msあるので計27.648msで1ライン、1画面19ラインなので27.648ms x 19 = 525.312msで1画面の計算が終わります。
「outCh128 to outCh255」も1つの乗算器で計算されます。乗算器(ビットシフト型)が2個並列で128chづつ計算するので出力は256chになります(入力は1024ch)。 |
●vgg-15層目の出力がextras-1層目の入力になる
vgg-15層目のシミュレーション結果relu.outの名前を変えてex1.inとし、それがextras-1層目の入力になります。図9-02のようにRAM_X1_0〜1(入力バッファ、2ラインぶん、カーネルが1x1なので)にex1.inの内容が書き込まれます。
conv_ex1は入力バッファからの画像を処理してRAM_X2_0〜3(出力バッファ、4ラインぶん、次層はカーネルが3x3なので)に書き込みます。1ライン19画素なのでアドレスは32、出力256chなのでデータ幅は8bit x 256 = 2048bitになります(extras層は1画素8ビット)。 |
図9-02 extras-1層目のブロック図
次のページへ
目次へ戻る |