インテル® VTune™ プロファイラーのユーザー・インターフェイスの [タイムライン] ウィンドウと同様に、タイムライン・レポートは時間の経過に伴って変化したメトリックに関する情報を提供します。これは表形式のレポートであり、各行には各時間間隔の平均メトリック値が表示されます。
たとえば、このコマンドは、以下の [タイムライン] ペインでハイライト表示されている CPU 利用率セクションをキャプチャーするタイムライン・レポートを生成します。
vtune -result-dir <result_path> -report timeline -report-knob column-by=CPUTime -report-knob bin-count=5
コマンドを実行すると、次の情報が表示されます。
vtune: 結果パス `C:\VTune\Projects\sample (matrix)\r005hs' を使用します vtune: Executing actions 75 % Generating a report timeBin Bin Start Time Bin End Time CPU Time:Self ------- -------------- ------------ ------------- 0 0.000 7.440 621.445s 1 7.440 14.879 620.543s 2 14.879 22.319 675.243s 3 22.319 29.758 573.878s 4 29.758 37.198 404.154s vtune: Executing actions 100 % done
次のコマンドを実行します。
vtune -result-dir <result_path> -report timeline -report-knob column-by=<metric name> [ -report-knob sort-column-by=<metric name> ] [ -report-knob group-by=<grouper name> ] [ -report-knob bin-count=<30 by default> ] [ -report-knob start=<0 by default> ] [ -report-knob end=<end of collection by default> ] [ -report-knob time-format=<seconds|milliseconds|events> ] [ -report-knob object-names=True|False by default ] [ -report-knob query-type=interval|... ]
説明:
<metric name> は必要なメトリック情報です。例えば、CPUTime、OvertimeBandwidth、ContextSwitches、Task、PMUEventCount/PMUEventType など。
<grouper name> は、grouper に付けられるオプションの名前です。データ収集中、タイムライン上のすべてのメトリックがコンテキスト内で検出されます。メトリックはコンテキストに関連付けられます。このコンテキストを <grouper name> として使用して、メトリックのアクションをグループ化します。<grouper name> の例としては、Thread、UncorePackage、Task などがあります。<grouper name> の各インスタンスは、そのメトリックアクションのコレクションの出力テーブルを生成します。たとえば、並列アプリケーションが 8 つのスレッドで実行される場合、group-by=Thread を設定すると、8 つのタイムライン・レポートが生成されます。時間の経過に伴うメトリックの全体の動作を確認するには、 <grouper name> を設定しないでください。
この例では、ホットスポット解析の r000hs 結果のタイムライン・レポートを生成します。タイムライン・レポートには、30 間隔の CPU 時間の使用率が表示されます。
vtune.exe -r r000hs -report timeline -report-knob column-by=CPUTime
timeBin Bin Start Time Bin End Time CPU Time:Self ------- -------------- ------------ ------------- 0 0.000 1.240 5.456s 1 1.240 2.480 6.318s 2 2.480 3.720 6.462s 3 3.720 4.960 6.502s 4 4.960 6.200 6.638s 5 6.200 7.440 5.908s 6 7.440 8.679 6.659s 7 8.679 9.919 6.018s 8 9.919 11.159 5.555s 9 11.159 12.399 5.599s 10 12.399 13.639 6.404s 11 13.639 14.879 6.994s 12 14.879 16.119 6.997s 13 16.119 17.359 6.290s 14 17.359 18.599 6.986s 15 18.599 19.839 6.859s 16 19.839 21.079 6.496s 17 21.079 22.319 6.883s 18 22.319 23.558 7.044s 19 23.558 24.798 4.416s 20 24.798 26.038 5.306s 21 26.038 27.278 6.219s 22 27.278 28.518 6.140s 23 28.518 29.758 5.305s 24 29.758 30.998 5.874s 25 30.998 32.238 5.617s 26 32.238 33.478 3.909s 27 33.478 34.718 3.688s 28 34.718 35.958 3.232s 29 35.958 37.198 1.927s
この例では、マイクロアーキテクチャー解析の r006ue 結果からタイムライン・レポートが生成されます。データは 2 秒から 5 秒の間に収集されます。3 秒間に収集されたデータは、50 の時間間隔にわたって表示されます。
vtune -r r006ue -report timeline -report-knob column-by=CPUTime -report-knob start=20000000000 -report-knob end=50000000000 -report-knob bin-count=50
timeBin Bin Start Time Bin End Time CPU Time:Self ------- -------------- ------------ ------------- 0 2.000 2.060 583.614s 1 2.060 2.120 596.239s 2 2.120 2.180 568.513s 3 2.180 2.240 656.714s 4 2.240 2.300 593.027s 5 2.300 2.360 582.537s 6 2.360 2.420 686.536s 7 2.420 2.480 630.049s 8 2.480 2.540 683.360s 9 2.540 2.600 449.970s 10 2.600 2.660 534.815s 11 2.660 2.720 523.006s 12 2.720 2.780 563.003s 13 2.780 2.840 650.275s 14 2.840 2.900 590.479s 15 2.900 2.960 644.241s 16 2.960 3.020 646.289s 17 3.020 3.080 644.978s 18 3.080 3.140 634.378s 19 3.140 3.200 627.582s 20 3.200 3.260 588.956s 21 3.260 3.320 621.873s 22 3.320 3.380 158.051s 23 3.380 3.440 170.440s 24 3.440 3.500 216.458s 25 3.500 3.560 121.819s 26 3.560 3.620 351.148s 27 3.620 3.680 256.142s 28 3.680 3.740 385.892s 29 3.740 3.800 507.566s 30 3.800 3.860 459.971s 31 3.860 3.920 495.019s 32 3.920 3.980 503.530s 33 3.980 4.040 565.219s 34 4.040 4.100 526.778s 35 4.100 4.160 541.870s 36 4.160 4.220 569.609s 37 4.220 4.280 474.287s 38 4.280 4.340 585.829s 39 4.340 4.400 625.578s 40 4.400 4.460 656.474s 41 4.460 4.520 438.410s 42 4.520 4.580 519.766s 43 4.580 4.640 414.919s 44 4.640 4.700 577.235s 45 4.700 4.760 596.569s 46 4.760 4.820 570.871s 47 4.820 4.880 586.414s 48 4.880 4.940 532.267s 49 4.940 5.000 564.387s
大量のデータを収集する場合は、データ管理を容易にするために、タイムライン・レポートを CSV ファイルにエクスポートすることを検討してください。
この例では、r008hs 結果 (ホットスポット分析) から生成されたタイムライン・レポートが CSV ファイル (r008hs_timeline.csv) として保存されます。収集されたデータは 1000 の時間間隔に分割されます。
vtune -r r008hs -report timeline -report-knob column-by=CPUTime -report-knob bin-count=1000 -format=csv -csv-delimiter=semicolon -report-output r008hs_timeline.csv
r008hs_timeline.csv の内容は次のとおりです。
timeBin;Bin Start Time;Bin End Time;CPU Time:Self 0;2.000;2.060;583.614 1;2.060;2.120;596.239 ...
このコマンドを実行すると、PMU コアイベントをスレッドごとにグループ化し、グループをイベント数で並べ替えるタイムライン・レポートが生成されます。
vtune -r <result dir> -report timeline -report-knob group-by=Thread -report-knob sort-column-by=PMUEventCount -report-knob column-by=PMUEventCount/PMUEventType
このコマンドを実行すると、PMU アンコアイベントをパッケージごとにグループ化し、グループをイベント数で並べ替えるタイムライン・レポートが生成されます。
vtune -r <result dir> -report timeline -report-knob group-by=UncorePackage -report-knob sort-column-by=UncoreEventCount -report-knob column-by=UncoreEventCount/UncoreEventType
このコマンドを実行すると、スレッドごとのコンテキスト・スイッチのタイムライン・レポートがミリ秒の時間形式で生成されます。
vtune -r <result dir> -report timeline -report-knob query-type=interval -report-knob group-by=Thread -report-knob sort-column-by=ContextSwitchCount -report-knob column-by=ContextSwitches -report-knob bin-count=1000000000 -report-knob time-format=millisecond
このコマンドを実行すると、スレッドごとのタスクのタイムライン・レポートが生成され、タスクの名前も表示されます。
vtune -r <result dir> -report timeline -report-knob query-type=interval -report-knob group-by=Thread -report-knob sort-column-by=TaskTime -report-knob column-by=Task -report-knob object-names=True -report-knob bin-count=1000000000