< 目次

メモリーアクセス解析

チュートリアルのこのステージでは、メモリーアクセス解析を実行して、アプリケーションのパフォーマンスが低下する主なボトルネックを理解します。

multiply1 ループのメモリーアクセス問題の背景にある正確なメカニズムを理解するには、メモリーアクセス解析を実行します。

メモリーアクセス解析を実行する

メモリーアクセス解析を実行するには、次の操作を行います。

  1. 以前に収集したパフォーマンス・スナップショットの結果で [Memory Access] のアイコンをクリックするか、メイン ツールバーの [Configure Analysis] ボタンをクリックします。

  2. [Memory Access] 解析アイコンをクリックしている場合、メモリーアクセス解析が事前に選択されているはずです。そうでない場合、[HOW] ペインでこの解析タイプを選択します。

  3. このアプリケーションでは必要ないため、[HOW] ペインで [Analyze OpenMP regions] オプションを無効にします。

  4. [Start] ボタンをクリックして解析を実行します。

メモリー・アクセス・データを解釈

サンプル・アプリケーションが終了すると、インテル® VTune™ プロファイラーは結果を確定し、[Summary] ビューポイントを開きます。

ここでも、アプリケーションはメモリーアクセスに依存していることに注意してください。システムが DRAM Bandwidth だけに制限されないということは、アプリケーションが飽和した物理 DRAM 帯域幅ではなく、頻繁に小さなメモリー要求によって制限されていることを示しています。

multiply1 関数の正確なメトリックを表示するには、[Bottom-up] タブに切り替えます。

multiply1 関数では、CPU TimeMemory Bound メトリック値が最も高く、グリッドの最上部にあります。

LLC Miss Count のメトリックが非常に高いことに注意してください。これは、アプリケーションがキャッシュを有効に活用しないメモリー・アクセス・パターンを持っていることを示しています。これにより、プロセッサーが LLC を頻繁にミスし、DRAM からデータを要求しするためレイテンシーの点でコストがかかります。

この問題を解決する良い方法は、ループ交換テクニックを適用することです。この場合、メインループで行列の行と列がアドレス指定される方法が変更されます。これにより、非効率的なメモリー・アクセス・パターンが排除され、プロセッサーは LLC をより有効に活用できるようになります。

次のステップ: メモリーアクセスの問題を解決します。