●100並列にしない理由

 本企画のディープラーニングは全部で3層あります。図3-22のように1層目を「半田付け」、2層目を「箱詰め」、3層目を「ネジ締め」という作業に置き換えるとします。

 2層目を100並列で動かして「
高速化」した場合、「箱詰め」の作業だけ飛びぬけて速くなります。同図ではA君一人で全部やっていますからそれでも特に問題はありません。


  図3-22


●パイプラインは流れ作業のイメージ

 しかし、たいていの工場では
複数の人が流れ作業でそれぞれの仕事をこなしていくでしょう。
 図3-23ではベルトコンベアにのって製品が流れてきますが、「箱詰め」のB君だけすぐに仕事が終わってしまい、暇そうにしています。


  図3-23


 ひるがえって、ディープラーニングの2層目を100並列することを考えます。そのためには乗算器が100個必要になり、FPGAのリソースを浪費します。

 本企画では後々、「
パイプライン化」によって更なる高速化を図ります。その場合図3-23を見れば分かるように、2層目だけが速くてもあまり意味がなく、リソースの無駄遣いになるだけです。

 したがって1〜3層それぞれ
ほぼ同じサイクル数で演算を終えるようにするのが一番効率の良いやり方と言えます。


次のページへ


目次へ戻る