パフォーマンス・レポートは、パフォーマンス解析の基本です。パフォーマンス・レポートを使用して、プロセッサー時間がかかっているプログラムユニット (関数、モジュール、オブジェクト) の特定 (hotspot 解析)、利用可能な CPU の使用率の把握 (コンカレンシー解析)、待機時間が長いプログラムユニットの特定 (ロックと待機解析) を行います。
レポートのタイプにより表示されるデータは異なります。
hotspot は CPU 時間 (データが利用可能な場合、使用率別の CPU 時間) を表示します。
wait-time
レポートは、プログラムユニットを降順で (最も時間を費やしているプログラムユニットを最初に) 表示します。次のようなデータが提供されます。
$ amplxe-cl -report hotspots -r r001hs -format text -group-by module
Module Process CPU Time ---------- ---------- -------- matrix matrix 8.107
この例は、r001hs の hotspot 解析結果の hotspot レポートを表示しています。レポートは、matrix が最適化の唯一の候補であることを示しています。
$ amplxe-cl -report hotspots -r r001hs -format text -group-by function
Function Module Process CPU Time ------------ ---------- ---------- -------- algorithm_2 matrix matrix 5.881 algorithm_1 matrix matrix 2.192 main matrix matrix 0.025 checkResults matrix matrix 0.009
この例は、001hs の hotspot 解析結果の hotspot レポートを表示しています。matrix の algorithm_2 関数が多くのプロセッサー時間 (5.881 秒) を占めていることが分かります。最適化の有力な候補です。
$ amplxe-cl -report hotspots -r r001hs -limit 2
Function Module Process CPU Time ----------- ---------- ---------- -------- algorithm_2 matrix matrix 5.881 algorithm_1 matrix matrix 2.192
この例は、ターゲット CPU 時間の上位 2 つの関数のみを含む、r001hs 解析結果の hotspot レポートを表示しています。パフォーマンスにあまり影響を与えない関数は除外されます。
$ amplxe-cl -report wait-time -r r003lw -format text -group-by function-sync-obj
Function Sync Object Process PID Wait Time Idle:Wait Time Poor:Wait Time Ok:Wait Time Ideal:Wait Time Over:Wait Time -------- ------------------ ---------- ---- --------- -------------- -------------- ------------ --------------- -------------- main Thread 0x025a5e05 matrix 8920 3.106 0.000 0.084 0 3.021 0 main Stream 0x9a712442 matrix 8920 0.001 0.001 0 0 0 0 main Unknown 0xb3576d86 matrix 8920 0.000 0.000 0 0 0 0
この例は、r003lw ロックと待機解析結果の待機時間レポートを表示しています。matrix が Thread 0x025a5e05 を 3 秒以上待っていることが分かります。次のステップは、関数のソースを開いて待機を回避できる場所を判断することです。
© 2010 Intel Corporation. 無断での引用、転載を禁じます。