コマンドラインから gpu-hotspots 値を使用して、GPU 計算/メディア・ホットスポット解析を起動します。
GPU 利用率の高い GPU カーネルを調査し、この利用率の有効性を予測してストールまたは低占有率の原因を特定します。
選択した GPU メトリックで時間経過ごとにアプリケーションのパフォーマンスを調査します。
最も効率の悪い SYCL* または OpenCL* カーネルを解析して、非効率なカーネルコードのアルゴリズムや不適切なワーク項目の構成を特定します。
特性化設定オプションを使用して、次のことを行います。
[特性化] ラジオボタンを選択すると、GPU メトリックのプラットフォーム固有のプリセットを選択できます。動的命令カウントのプリセットを除き、他のすべてのプリセットは、実行ユニット (EU) のアクティビティーに関する次のデータを収集します。
各プリセットでは追加のメトリックが導入されます。
概要メトリックのセットには、メモリー読み取り/書き込み帯域幅や XVE パイプラインの使用率など、一般的な GPU メモリーアクセスを追跡するメトリックが追加されています。これらのメトリックは、グラフィックスと計算集約型のアプリケーションに役立ちます。
グローバル・メモリー・アクセスのメトリックグループには、GPU とシステムメモリー間の帯域幅と、GPU スタック間の帯域幅を示す追加のメトリックが含まれます。メモリーレベルが XVE から遠いほど、メモリーレベルへの不要なアクセス操作によるパフォーマンスへの影響が大きくなります。
LSE/SLM アクセスのメトリックグループには、XVE から L1 キャッシュ・トラフィックをカバーするメトリックが含まれます。このメトリックグループでは、情報を収集するためアプリケーションを 2 回実行する必要があります。
HDC アクセスのメトリックグループには、L1 キャッシュを通過する XVE と L3 間のトラフィックを測定するメトリックが含まれます。
フル・コンピューティングのメトリックグループは、他のすべてのイベントセットの組み合わせです。したがって、複数回アプリケーションを実行する必要があります。
動的命令カウントのメトリックグループは、 特定の命令クラスの実行頻度をカウントします。このメトリックグループを使用すると、各カーネルの SIMD 利用率に関する情報も得られます。
GPU 計算/メディア・ホットスポット解析は、Windows* および Linux* ターゲットの特性化モードで実行できます。ただし、すべてのプリセット (動的命令カウントのプリセットを除く) で、特性化モードで GPU コ計算/メディア・ホットスポット解析を実行するにはルート/管理者権限が必要です。
あるいは、Linux* システムでは、一般ユーザーによる収集を許可するようシステムを構成できます。これを行うには、インストール・ディレクトリーの bin64 フォルダーから root 権限で prepare-debugfs-and-gpu-environment.sh スクリプトを実行します。
ソース解析では、インテル® VTune™ プロファイラーは、GPU カーネルのメモリーアクセスによって引き起こされる、パフォーマンスが重要な基本ブロックを特定するのを支援します。
[基本ブロック・レイテンシー] または [メモリー・レイテンシー] プロファイル・モードでは、GPU 計算/メディア・ホットスポット解析は次のメトリックを使用します。
予測 GPU サイクル: GPU がプロファイルされた命令を実行するのに要した平均サイクル数。
平均レイテンシー: サイクルごとのメモリーリードおよび同期命令の平均レイテンシー。
インスタンスごとに実行された GPU 命令: カーネル・インスタンスごとの平均 GPU 命令実行数。
スレッドごとに実行された GPU 命令: カーネル・インスタンスごとに 1 つのスレッドで実行された平均 GPU 命令数。
[命令数] プロファイル・モードを有効にすると、インテル® VTune™ プロファイラーはカーネルにより実行された命令の内訳を次のグループで表示します。
[制御フロー] グループ |
if、else、endif、while、break、cont、call、calla、ret、goto、jmpi、brd、brc、join、halt および mov、add ip レジスターを明示的に変更する命令。 |
[送信 & 待機] グループ |
send、sends、sendc、sendsc、wait |
[Int16 & HP Float] | [Int32 & SP Float] | [Int64 & DP Float] グループ |
ビット操作 (整数型のみ):and、or、xor など。 算術演算:mul、sub など。avg、frc、mac、mach、mad、madm。 ベクトル算術演算:line、dp2、dp4 など。 拡張算術演算: |
[その他] グループ |
nop を含むほかのすべての操作。 |
[命令数] モードでは、インテル® VTune™ プロファイラーは、実行された命令のウェイトを合計して計算された、[1 秒あたりの操作数] メトリックも提供します。
ビット操作 (整数型のみ):
算術演算:
add、addc、cmp、cmpn、mul、rndu、rndd、rnde、rndz、sub - ウェイト 1
avg、frc、mac、mach、mad、madm - ウェイト 2
ベクトル算術演算:
拡張数学演算:
math.inv、math.log、math.exp、math.sqrt、math.rsq、math.sin、math.cos (ウェイト 4)
math.fdiv、math.pow (ウェイト 8)
操作 (演算) のタイプはデスティネーション・オペランドのタイプにより決定されます。
vtune -collect gpu-hotspots [-knob <knobName=knobValue>] -- <target> [target_options]
Knob:gpu-sampling-interval、profiling-mode、characterization-mode、code-level-analysis、collect-programming-api、computing-task-of-interest、target-gpu などがあります。
GPU 計算/メディア・ホットスポット解析で利用可能な knob (設定オプション) に関する最新情報は、
vtune -help collect gpu-hotspots コマンドで取得できます。
この例では、デフォルトの事前定義された概要 GPU ハードウェア・メトリックを使用して、デフォルトの特性化モードで gpu-hotspots 解析を実行します。
vtune -collect gpu-hotspots -knob enable-gpu-runtimes=true -- /home/test/myApplication
データの収集が完了したら、次のいずれかの方法で結果を表示します。