コマンドラインの hotspots レポートを使用して、プロセッサー時間を最も要する (ホットスポット解析)、利用可能な CPU を活用していない、または待機時間が長い (スレッド化解析) などのプログラム単位 (関数、モジュール、オブジェクトなど) を特定します。
ホットスポット・レポートを使用して、gpu-hotspots または gpu-offload 解析で特定された最もホットな GPU 計算タスク (またはインスタンス) を表示します。
このレポートではデフォルトで、最もパフォーマンス上重要なユニットから、最もホットなプログラム単位が降順で表示されます。コマンドライン・レポートは、デフォルトの GUI 解析ビューポイントで表示される内容と同じデータが示されます。
ホットスポット・レポートに使用できるグループを表示するには、vtune -report hotspots -r <result_dir> group-by=? のように入力します。結果ディレクトリーを指定しない場合、最後に使用した結果がデフォルトで使用されます。
例 1: モジュールによるグループ化のホットスポット
この例では、ホットスポットの解析結果 r001hs を開き、モジュールによるデータのグループ化を行います。
vtune -report hotspots -r r001hs -group-by module
Module CPU Time
----------------- --------
analyze_locks 10.080s
KERNELBASE 0.679s
ntdl 0.164s
...
例 2: 項目を限定したホットスポット・レポート
この例は、CPU 時間値が最も高い上位 2 つの関数のみを含む r001hs 解析結果のホットスポット・レポートを表示します。パフォーマンスにそれほど影響しない関数は出力から除外されます。
vtune -report hotspots -r r001hs -limit 2
Function CPU Time
---------------- --------
grid_intersect 5.489s
sphere_intersect 3.590s
例 3: OpenCL* カーネルごとのレポート
この例は、GPU で送信および実行された OpenCL* カーネルごとに収集されたデータを表示する方法を示します。
vtune -report hotspots -group-by=computing-task -r r000gh
Computing Task Work Size:Global Computing Task:Total Time Data Transferred:Size EU Array:Active(%) L3 <->
GTI Total Bandwidth, GB/sec
------------------- ---------------- ------------------------- --------------------- ------------------ ----------------------------------
AdvancePaths 65536 13.170s 25.0% 22.928
Init 65536 0.006s 34.4% 45.802
Intersect 65536 49.139s 61.5% 23.149
Sampler 65536 6.525s 76.4% 11.745
InitFrameBuffer 362432 0.000s 4.7% 17.456
clEnqueueReadBuffer 1.045s 3 GB 1.5% 8.840
->
例 4: SYCL* タスク・インスタンスごとにグループ化されたレポート
この例は、収集したデータを SYCL* タスク・インスタンスでフィルター処理およびグループ化します。
vtune -report hotspots -group-by=computing-instance -r r000gh
Computing Task Instance Work Size:Global Computing Task:Total Time Data Transferred:Size GPU Time
------------------- ------------------ ---------------- ------------------------- --------------------- --------
CopyVector2 2 6553600 0.190s 0.190s
clEnqueueReadBuffer 1 0.034s 400 MB 0.034s