カーネルの詳細を調査

ホットスポットを特定したら、GPU ルーフラインの調査パースペクティブを使用して、パフォーマンスをさらに深く解析します。グラフ上のドットを選択して、右のペインの [GPU 詳細][推奨事項] タブで注目するカーネルのコード解析を詳しく調べ、コードの最適化に適用できる推奨事項を表示します。

インテル® Arc™ Alchemist (DG2) 以降のインテル® Xe グラフィックス製品ファミリーと以降の世代では、従来の用語から GPU アーキテクチャーの用語が変更されています。用語変更の詳細と、従来のコンテンツとの対応については、インテル® Xe グラフィックスの GPU アーキテクチャー用語を参照してください。

推奨事項を取得

[GPU] ペインの [Performance Issues (パフォーマンスの問題)] カラムをチェックして、インテル® Advisor がカーネルに対する推奨事項を特定しているか確認します。

ルーフライン・グラフでカーネルを選択し、[Recommendations (推奨事項)] タブに切り替えると、GPU で実行される計算およびメモリー依存のアプリケーションのコードを最適化するのに有用な推奨事項が表示されます。推奨事項を展開すると、詳細な説明および考えられる解決策を含むサンプルコードにアクセスできます。

計算とメモリー帯域幅の利用率を確認

[OP/S and Bandwidth (OP/S と帯域幅)] ペインで、カーネルがハードウェアの計算とメモリー帯域幅をどの程度活用しているか確認します。次のメトリックが示されます。

例えば、次のスクリーンショットの主なデータタイプは FLOP です。カーネルは L3 帯域幅の 19% を利用しています。これらのデータを考慮して、他のメモリーレベルや計算能力の利用率メトリックと比較することで、ルーフライン・グラフにはカーネルのパフォーマンスを制限する要因として L3 帯域幅が示されています。

[Memory Metrics (メモリーメトリック)] ペインで、アプリケーションがメモリーレベルをどのように使用しているか確認します。

[メモリーメトリック] ペインのデータは、コード内の主要タイプ (FLOAT や INT) の操作に基づいています。

アプリケーションの実行中に利用される操作のタイプを調査

[Instruction Mix (命令ミックス)] ペインでカーネルが実行する命令タイプを調べます。例えば、次のスクリーンショットでは、カーネルのほとんどで整数操作の計算命令を実行しています。これは、カーネルが計算依存であることが分かります。

インテル® Advisor は、操作で使用されるデータタイプを自動的に判別し、特性化の解析中に収集された命令を次のカテゴリーにグループ化します。

カテゴリー

命令タイプ

計算 (FLOP と INTOP)

  • BASIC COMPUTE:add、addc、mul、rndu、rndd、rnde、rndz、subb、avg、frc、lzd、fbh、fbl、cbit
  • BIT:and、not、or、xor、asr、shr、shl、bfrev、bfe、bfi1、bfi2、ror、rol
  • FMA:mac、mach、mad、madm(ウェイト 2)
  • DIV: INT_DIV_BOTH、INT_DIV_QUOTIENT、INT_DIV_REMAINDER、および FDIV タイプの拡張数学関数
  • POW 拡張数学関数
  • MATH: 数学命令によって実行されるその他の関数タイプ
  • VECTOR:add3(ウェイト 2)、line(ウェイト 2)、sad2(ウェイト 3)、dp2(ウェイト 3)、sada2(ウェイト 4)、lrp(ウェイト 4)、pln(ウェイト 4)、dp3(ウェイト 5)、dph(ウェイト 6)、dp4(ウェイト 7)、dp4a(ウェイト 8)

Memory

LOAD、STORE、SLM_LOAD、SLM_STORE タイプは引数に応じて次のようになります。send、sends、sendc、sendsc

その他

  • MOVE:mov、sel、movi、smov、csel
  • CONTROL FLOW:if、else、endif、while、break、cont、call、calla、ret、goto、jmpi、brd、brc、join、halt
  • SYNC:wait、sync
  • OTHER:cmp、cmpn、nop、f32to16、f16to32、dim

アトミック

SEND

[Instruction Mix Details (命令ミックスの詳細)] ペインで、カーネルで使用される命令の詳細を調査できます。

[Performance Characteristics (パフォーマンス特性)] では、カーネルが GPU リソースをどの程度活用しているか確認できます。これには、すべての実行ユニットのアクティビティー、両方の FPU が使用されている時間のパーセンテージ、スレッドがスケジュールされているサイクルのパーセンテージなどを参照します。より多くのリソースを使用していると、アクティブな実行ユニットのパーセンテージと、その他の有効なメトリックが多く表示されます。

関連情報