3-03 パイプライン化する

 本節ではディープラーニングの回路をパイプライン化して更に高速化します。
 パイプラインのイメージを図3-40に示します。同図では1層目を「半田付け」、2層目を「箱詰め」、3層目を「ネジ締め」という作業に置き換えています。


●パイプライン化すれば11us毎に推論結果が出てくる

 前節では1層目に8.4us、2層目に8.5us、3層目に11usかかるという結果に至りました。これをパイプライン化すると図3-40のようになり、一番遅い人(3層目、ネジ締めのC君)で
スループットが決まり、それは11usになります。(*1)

(*1)図3-40において「スループット」とは製品が一つ出てくる周期のこと。それに対し「レイテンシ」は製品が一つ出来上がるまでの遅延時間のことを言う。


 同図では11usごとに製品が1個出てきます。前節では全体で27.9usかかっていましたから、パイプライン化すれば、11 / 27.9 = 2.5倍ほど高速化できそうです。


  図3-40


■回路図とタイムチャート

●流れ作業の場合、一番遅い人がペースメーカーになる

 図3-41は「3層目の演算終了」を示す信号、W3DONEを生成する部分です。この信号の周期がスループットになり、これで全体をコントロールします。


  図3-41(a) 「3層目の演算終了」を示す信号W3DONE

 図3-41(b)にそのタイムチャートを示します。100MHz(周期10ns)のCLKを100進カウンタ、11進カウンタで分周したものを使ってW3DONEを生成します。その周期は1100倍(11us)になります。


  図3-41(b) 「3層目の演算終了」を示す信号W3DONE


次のページへ


目次へ戻る