ホットスポットを特定したら、GPU ルーフラインの調査パースペクティブを使用して、パフォーマンスをさらに深く解析します。グラフ上のドットを選択して、右のペインの [GPU 詳細] と [推奨事項] タブで注目するカーネルのコード解析を詳しく調べ、コードの最適化に適用できる推奨事項を表示します。
[GPU] ペインの [Performance Issues (パフォーマンスの問題)] カラムをチェックして、インテル® Advisor がカーネルに対する推奨事項を特定しているか確認します。
ルーフライン・グラフでカーネルを選択し、[Recommendations (推奨事項)] タブに切り替えると、GPU で実行される計算およびメモリー依存のアプリケーションのコードを最適化するのに有用な推奨事項が表示されます。推奨事項を展開すると、詳細な説明および考えられる解決策を含むサンプルコードにアクセスできます。

[OP/S and Bandwidth (OP/S と帯域幅)] ペインで、カーネルがハードウェアの計算とメモリー帯域幅をどの程度活用しているか確認します。次のメトリックが示されます。
例えば、次のスクリーンショットの主なデータタイプは FLOP です。カーネルは L3 帯域幅の 19% を利用しています。これらのデータを考慮して、他のメモリーレベルや計算能力の利用率メトリックと比較することで、ルーフライン・グラフにはカーネルのパフォーマンスを制限する要因として L3 帯域幅が示されています。

[Memory Metrics (メモリーメトリック)] ペインで、アプリケーションがメモリーレベルをどのように使用しているか確認します。
大きな値は、選択したカーネルを制限するメモリーレベルを示します。2 つの大きなバーの違いを調べて、主なボトルネックへの影響を軽減することで得られるスループットを確認します。また、最も幅広いバーから生じる問題を解決すると、次の問題は 2 番目のバーから生じるため、メモリー依存の制限を軽減する長期的な計画も得られます。
理想的には、L3 または SLM が最も影響するメモリーであると考えなければなりません。

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

インテル® Advisor は、操作で使用されるデータタイプを自動的に判別し、特性化の解析中に収集された命令を次のカテゴリーにグループ化します。
カテゴリー |
命令タイプ |
|---|---|
計算 (FLOP と INTOP) |
|
Memory |
LOAD、STORE、SLM_LOAD、SLM_STORE タイプは引数に応じて次のようになります。send、sends、sendc、sendsc |
その他 |
|
アトミック |
SEND |
[Instruction Mix Details (命令ミックスの詳細)] ペインで、カーネルで使用される命令の詳細を調査できます。
[Performance Characteristics (パフォーマンス特性)] では、カーネルが GPU リソースをどの程度活用しているか確認できます。これには、すべての実行ユニットのアクティビティー、両方の FPU が使用されている時間のパーセンテージ、スレッドがスケジュールされているサイクルのパーセンテージなどを参照します。より多くのリソースを使用していると、アクティブな実行ユニットのパーセンテージと、その他の有効なメトリックが多く表示されます。
