ハードウェア・イベントベース・サンプリング解析で収集したデータを検証する場合、インテル(R) VTune(TM) Amplifier XE はイベント比率に基づくパフォーマンス評価基準を使用します。次のパフォーマンス評価基準が利用できます。
イベントベースの評価基準 | 説明 |
---|---|
分岐予測ミス |
分岐予測ミスが発生しても、予測ミスしたパスのいくつかの命令がパイプラインを移動します。これらの命令は分岐が正しく予測された場合に実行されるもので、分岐予測ミスが発生した場合はすべて実用価値のないものになります。分岐予測ミス評価基準は、すべてのサイクルに対する分岐予測ミスによる実用価値のない処理のサイクルの比率です。 |
アクセス競合 |
アクセス競合は、あるスレッドによって書き込まれたデータが別のコアのスレッドによって読み取られる場合に発生します。アクセス競合には、ロックなどの同期、ロック変数の変更などの真のデータ共有、フォルス・シェアリング (false sharing) があります。この評価基準は、すべてのサイクルに対してキャッシュシステムでアクセス競合の処理に費やされたサイクルの比率です。 |
CPI |
リタイアした命令ごとのサイクル数 (CPI) は、実行された命令に費やされたサイクル数を示す基本的なパフォーマンス評価基準です。最新のスーパースカラー・プロセッサーは、1 サイクルあたり最大 4 命令を発行できるため、理論上最高の CPI は 0.25 です。ただし、実際の CPI はさまざまな影響 (長いレイテンシーのメモリー操作、浮動小数点演算、SIMD 命令、分岐予測ミスによるリタイアされていない命令、フロントエンド問題による命令スタベーション) により、これよりも大きくなります。一般に、CPI = 1 というのは HPC アプリケーションでは許容範囲内ですが、許容範囲はアプリケーション・ドメインにより大きく異なります。CPI はアプリケーション・パフォーマンスのチューニングの可能性を全体的に判断する上で重要な評価基準です。 この評価基準の詳細は、「リタイアした命令ごとのクロック数」を参照してください。 |
データ共有 |
データ共有は、メモリーのバンド幅に影響を与える読み取り共有と、メモリーのレイテンシーとバンド幅に影響を与えるアクセス競合からなります。複数のコアで共有されるデータの一貫性を保つためには、多くのオーバーヘッドが必要です。データ共有があまり多い場合は、マルチスレッドのパフォーマンスが大幅に低下します。この評価基準は、すべてのサイクルに対してキャッシュシステムで共有データの処理に費やされたサイクルの比率です。 |
実行ストール |
実行ストールは、マシンのすべてのプロセッサー・コアがフル稼働していることを示します。ただし、場合によっては、プロセッサー・コアを待機する間に、長いレイテンシー操作をシリアル化できることがあります。この評価基準は、すべてのサイクルに対してマイクロオペレーションが実行されなかったサイクルの比率です。 |
命令スタベーション |
命令セットのサイズが大きい場合や、分岐予測ミスが多い場合は、L1I ミスなどのフロントエンドの命令供給ストールが発生します。このようなストールを命令スタベーションと呼びます。この評価基準は、すべてのサイクルに対するフロントエンドで命令が発行されなかったサイクルの比率です。 |
L1I ストールサイクル |
共有メモリーマシンでは、命令とデータが同じメモリーアドレス空間に格納されます。だたし、パフォーマンス上の理由から別々にキャッシュされます。大きな命令セットや分岐予測ミス (仮想関数の多用によるものも含む) は L1I ミスを誘発し、アプリケーションのパフォーマンスを大幅に低下させます。 |
リモート DRAM によって処理された LLC ロードミス |
NUMA (non-uniform memory architecture) マシンでは、LLC のメモリー要求ミスはローカルまたはリモート DRAM によって処理されます。リモート DRAM へのメモリー要求では、ローカル DRAM への要求よりも長いレイテンシーが発生します。頻繁にアクセスするデータはできるだけローカルに保持しておくことを推奨します。この評価基準は、すべてのサイクルに対してリモート DRAM により LLC ロードミスの処理にかかったサイクルの比率です。 |
LLC ミス |
LLC (ラストレベル・キャッシュ) とは、メモリー階層の最終レベルのことです。ここでのメモリー要求ミスは、ローカルまたはリモート DRAM によって処理されなければならず、レイテンシーがかかります。LLC ミス評価基準は、すべてのサイクルに対して LLC ミスが未処理のサイクルの比率です。 |
メモリー・バス・トランザクション |
この評価基準は、メモリー・バス・トランザクションの数を表します。 |
リタイアストール |
この評価基準は、すべてのサイクルに対してマイクロオペレーションがリタイアされなかったサイクルの比率です。パフォーマンス問題、長いレイテンシー操作、依存関係チェーンなどがない場合、リタイアストールはあまり問題になりません。そうでない場合は、パフォーマンスが低下します。インテル(R) マイクロアーキテクチャー Nehalem (開発コード名) では、この評価基準は深刻なスキッドの影響を受けないプリサイスイベントに基づきます。 |
© 2010 Intel Corporation. 無断での引用、転載を禁じます。