1

プログラムのプロファイリングに Intel VTune を使用しています。

使用しているCPUはIVY Bridgeです。

すべてのハードウェア命令イベントは次の場所にあります。

https://software.intel.com/en-us/node/589933

FP_COMP_OPS_EXE.X87 このサイクルで実行された FP 計算 Uop の数。FADD、FSUB、FCOM、FMUL、整数 MUL、IMUL、FDIV、FPREM、FSQRTS、整数 DIV、および IDIV の数。このイベントは、超越フローの途中で使用される FADD と s を区別しません。

FP_COMP_OPS_EXE.X87 には整数乗算と整数除算が含まれているようです。ただし、そこには整数加算と整数減算はありません。上記のWebサイトからも、これら2種類の指示を見つけることができません。

整数加算命令と整数減算命令をカウントするイベントとは何か教えてもらえますか?

4

1 に答える 1

1

私はあなたの質問をよく読んでいますが、ここに行きます:

コードが計算に縛られている場合、直接測定せずに整数の加算と減算の重要性を推測する方法を見つけることができる可能性があります。たとえばUOPS_RETIRED.ALL - FP_COMP_OPS_EXE.ALL、コードが計算バウンドであることを確立するために何かをすでに行っていると仮定すると、adds と subs の非常に大まかな見積もりが得られます。

ありますか?そうでない場合は、VTune の基本的な分析から始めて、メモリ、キャッシュ、およびフロント エンドのボトルネックを解消することをお勧めします。すでにこれを行っている場合は、さらにいくつかのオプションがあります。

  • Ivy Bridge のブロック図との相互参照UOPS_DISPATCHED_PORT、またはさらに良いことに、どの特定のタイプの演算をどのポートで実行できるかのリスト (これは見つかりません)。
  • プログラム ソース、コンパイラ フラグ、またはアセンブリを変更し、基本的な分析のようなより粗いプロファイルを再実行し、などのメジャーのレベルで影響が見られるかどうかを確認しますINST_RETIRED.ANY / CPU_CLK_UNHALTED

申し訳ありませんが、より直接的な答えはないようです。

于 2016-08-01T18:28:05.120 に答える