toms.log
2019/07/15
スループットとレイテンシ
言葉は厳密に定義される必要がある.
ハードウェアの演算能力を測るときによく使われる言葉がレイテンシとスループットだ. じゃあ「実際にスループットとレイテンシはどれくらいですか?」となるとちょっと戸惑うだろう. 自分でもときおり意味が曖昧なのでメモしておく. 以下ではほとんど『Advanced FPGA Design』[[1](#fpga_kilts)]による. 例として『Advanced FPGA Design』のp.2にあるソースコードを挙げる. ここでは$x^3$をFPGAに実装する場合について議論されている. 以下がそのソースコードだ.
これの波形は以下のようになる(たぶん).
`X[7:0]`に`2`を代入してその3乗である`8`が得られるまで3クロック(CLK)だけかかっている. また`finished`が`0`の間, 入力`X[7:0]`は同じ値でなければならない. よってスループットとレイテンシは | スループット[data/CLK] | レイテンシ[CLK] | | ---------------------- | --------------- | | 1/3 | 3 | である. これに入力されたデータのレジスタを用意すると入力データはクロック毎に入力することができる.
この波形は以下のようになる.
この回路では入力`X[7:0]`に対して出力は3CLKだけかかっており先の回路とは変わらないが, クロック毎の入力データの変化に対して同一の速さで出力が変化している. よってスループットとレイテンシは | スループット[data/CLK] | レイテンシ[CLK] | | ---------------------- | --------------- | | 1 | 3 | である. このようにスループットとレイテンシは単に反比例する関係ではない. 処理の並列化によって大きく変化する. つまりスループットは入力データの変化に対する出力データの応答の速さ. レイテンシはある入力データが出力データに反映されるまでの時間である. スループットを一言で表してもあまりピンとこないが, 上記のように入力と出力の平均的な動きを意味している. ## 参考 [1]
[Advanced FPGA Design: Architecture, Implementation, and Optimization, Steve Kilts, 2007, John Wiley & Sons, Inc.](https://onlinelibrary.wiley.com/doi/book/10.1002/9780470127896)
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿