このトピックは、自動ルーフライン・グラフを使用して、優先度の高い最適化を決定する方法を紹介するチュートリアルの一部です。
ルーフライン解析は、ハードウェアで達成可能な最大パフォーマンスに対して、アプリケーションの実際のパフォーマンスと演算強度を視覚的に示すオプションの解析です。
[Roofline (ルーフライン)] グラフを使用すると、次のようなことが分かります。
現在のハードウェア・リソースで達成可能な最大パフォーマンスは?
アプリケーションは現在のハードウェア・リソースで最適に動作するか?
そうでない場合、最適化の最良の候補は?
メモリー帯域幅や計算能力が各最適化候補のパフォーマンスを制限しているか?
ルーフライン解析はキャッシュを考慮しており、DDR メモリーのトラフィックだけでなく、すべてのメモリー・サブシステムのトラフィックを計測します。シングルスレッド・コードとマルチスレッド・コードの両方に対応しています。
ベクトル化アドバイザーと C++ サンプル・アプリケーション (roofline_demo_samples) を使用して、以下の操作を行います。
ルーフライン解析を実行します。
最も興味のあるルーフライン・グラフのデータに注目します。
ルーフライン・グラフのデータの解釈
ルーフライン・グラフのデータを基に最適化の方針を決定
ステップ |
説明 |
|---|---|
ステップ 1: チュートリアルの準備 |
次のいずれかを行います。
|
ステップ 2: ルーフライン解析を実行します。 |
|
ステップ 3: メモリー帯域幅のボトルネックに注目。 |
|
ステップ 4: 計算能力のボトルネックに注目。 |
|
ステップ 5: 実際のボトルネックを特定。 |
|