●乗算器やROMの節約
2層目は乗算器が128個で並列演算しますが、このボード搭載のFPGAに乗算器は87個しかありません。したがって2層目は「ビットシフトによる乗算」を行います。また重み係数を8種類(+64, +32, +16, +4, -4, -16, -32, -64)に集約します。これによりROMのビット数を削減することができます。
●1ライン、1画面の演算にかかる時間
入力画像は28×28なのでカーネル(3x3)の動く範囲は26×26になります。したがって横一行にかかるサイクル数は
9 x 26 x 4ch = 936です(*1)。
(*1)一つの乗算器で入力4chをまかなう。それらは逐次的に処理されるのでx4chのサイクルがかかる
出力1枚26行にかかるサイクル数は 936 x 26 = 24336、出力は並列で演算されるので、32枚にかかるサイクル数は同じ24336になります。クロック100MHzなら、1行に9.36us、1枚に243.36usかかります(最短で)。 |