2

FMA パフォーマンスを計算する方法を理解したいと思います。ここの説明を見ると:

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm256_fmadd_ps&expand=2520,2520&techs=FMA

Skylake アーキテクチャの場合、命令にはLatency=4Throughput(CPI)=0.5があるため、命令の全体的なパフォーマンスは命令4*0.5 = 2ごとのクロックです。

したがって、最大 (ターボ) クロック周波数が 3 GHz であるかどうかを理解する限り、1 秒間に 1 つのコアで 1 500 000 000 命令を実行できます。

そうですか?もしそうなら、私がわずかに高いパフォーマンスを観察している理由は何ですか?

4

2 に答える 2

5

0.5 のスループットは、プロセッサがサイクルごとに 2 つの独立した FMA を実行できることを意味します。したがって、3 GHz では、全体の最大 FMA は 1 秒あたり 60 億です。1.5B よりわずかに大きいスループットしか達成できないとおっしゃいました。これは、次の理由の 1 つ以上が原因で発生する可能性があります。

  • フロントエンドは、フロントエンドのボトルネック (DSB パスまたは MITE パス) により、1 サイクルごとに 2 未満の FMA uop を提供しています。
  • FMA 間または他の命令とのデータの依存関係があります (これはおそらくループ機構の一部です)。これは、次のように言い換えることもできます。1 サイクルごとに RS で準備が整っている FMA は 2 つ未満です。依存関係がある場合、遅延が発生します。
  • 一部の FMA はメモリ オペランドを使用しており、必要なときに L1D キャッシュで見つからない場合、1 サイクルあたり 2 つの FMA のスループットを維持できません。
  • コア周波数は、実験中に 3 GHz 未満になります。この要因は、1 サイクルあたりではなく、1 秒あたりのスループットにのみ影響します。
  • ループの正確な動作とスループットの測定方法に応じたその他の理由。
于 2019-03-03T16:49:50.957 に答える
2

レイテンシ = 4 およびスループット (CPI) = 0.5 であるため、命令の全体的なパフォーマンスは 4*0.5 = 命令ごとに 2 クロックです。

単位を計算するだけで が得られますがcycles²/instr、これは奇妙であり、私には解釈がありません。

ここにリストされているスループットは、実際には CPI 単位の相互スループットであるため、1 命令あたり 0.5 サイクルまたは 1 サイクルあたり 2 命令です。これらの数値は互いに逆数であり、レイテンシーは関係ありません。

レイテンシと (逆数の) スループットの両方を含む関連計算があります。つまり、レイテンシとスループットの積: 4 * 2 = 8 (「命令数」の単位)。これは、ネットワーク理論における帯域幅遅延積に匹敵する、操作の独立したインスタンスが同時に「実行中」(開始されているが完了していない) の数です。この数は、計算リソースを完全に使用するためにコードが CPU に公開する必要がある命令レベルの並列処理の量の下限であるため、コード設計の決定の一部を通知します。

于 2019-03-03T17:28:15.500 に答える