例えば、(a→b→c)→(a→b→c)→...実行スループットを最大限にする依存関係チェーンの最小数はいくらですか?
のような真の依存関係によってリンクされ、周期的に繰り返されるアウトオブオーダー実行の恩恵を受けるために、いくつかの短いと独立したサブ依存チェーンに分割することができますと仮定すると:
- (A0-> b0-> C0) - >(A0-> b0-> C0) - > ...
- (A1-> B1-> C1) - >(A1-> B1-> C1) - > ...
アウトオブオーダエンジンスケジュール各インストラクション待ち時間と相互スループットを持つ対応するCPUユニットに接続してください。
実行スループットを最大限にするサブ依存性チェーンの最適数はいくらですか?
AgnerのマニュアルOptimizing subroutines in assembly languageによると、12.15節「依存性チェインで最も重要な命令のレイテンシをその命令の逆数スループットで割ったものがCPUに何もない場合の最適なアキュムレータの数」です。 「最も重大な指導」とは何を意味しますか?この種の問題に取り組む他の技術文書はありますか?
この非常に実用的で詳細な答えをお寄せいただきありがとうございます。しかし、誰かがこの問題を解決するための理論的資料を持っていれば、非常に感謝しています。 – DMH
@DMH:一連の命令のスループットとレイテンシの比を計算すると、レイテンシの代わりにスループットのボトルネックになるために飛行しなければならないコピーの数が決まります。これは、長さと、ループで運ばれているかどうか(短いループに依存する依存関係を減らすために複数のアキュムレータを使用する場合など)に応じて、手動でインターリーブすることを意味する場合もあれば、 –