3-02 2層目の行列演算を並列化する

 前節では1層目の行列演算を並列化し、全体で6.6倍高速化しました。本節では2層目を並列化して更に高速化します。


●7つのグループに分けて並列動作

 2層目の重み行列は50×100なのでROMが100個存在します。図3-21では100個のROMを16個づつ
7つのグループに分けます。

 同図の最初のグループではROM_W2_00〜15が、16対1マルチプレクサで選択され、乗算器に入力されます。その後は累積器、シグモイドなどの回路を通ってZ_WR_DATA_00となり出力されます。

 次のグループはROM_W2_16〜31、その次はROM_W2_32〜47、・・・最後はROM_W2_96〜99、これだけはROMの数が4個のグループです。


  図3-21 2層目の高速化手法


 グループは7つなので乗算器、累積器、シグモイドなどはそれぞれ7個、並列で動作します。これにより演算速度は7倍近く速くなります。


●なぜ7並列にしたのか?

 ここでこんな疑問が湧くかもしれません。

 「重みROMが100個あるのなら乗算器などを100個使って
100並列で演算すれば良いじゃないか」
 確かにその方が速くなりますが、後々の「
パイプライン化」を考えると効率的ではありません。次のページでそれを説明します。


次のページへ


目次へ戻る