Intel PMUを使用して、コアごとの読み取り/書き込みメモリ帯域幅の使用量を測定できますか?ここで、「メモリ」は、DRAMを意味する(すなわち、いかなるキャッシュレベルにも当てられない)ことを意味する。Intelのパフォーマンスモニタカウンタを使用してメモリ帯域幅を測定できますか?
答えて
これは可能ですが、通常のPMUカウンタのプログラミングほど簡単ではありません。
1つのアプローチは、PCI空間を介してアクセスされるプログラマブルメモリコントローラカウンタを使用することです。まずはpcm-memory
のインテル独自の実装を調べてみましょう。pcm-memory.cppです。このアプリはソケットごとまたはメモリコントローラごとのスループットを示していますが、これはいくつかの用途に適しています。特に帯域幅はすべてのコアで共有されるため、静かなマシンでは、帯域幅のほとんどがテスト中のプロセスに関連付けられていると見なすことができます。あるいは、ソケットレベルで監視したい場合は、
もう1つの方法は、 "offcore repsonse"カウンターの注意深いプログラミングを使用することです。これらは、私が知る限り、L2(最後のコア - プライベートキャッシュ)とシステムの残りの間のトラフィックに関連しています。オフコア応答の結果でフィルタリングすることができるので、さまざまな "L3ミス"イベントの組み合わせを使用して、キャッシュラインサイズを掛けて読み取りおよび書き込み帯域幅を得ることができます。イベントは非常に細かいので、最初にアクセスを引き起こしたもの、つまり命令フェッチ、データ要求要求、プリフェッチなどによってさらに細分化することができます。
オフコア応答カウンタは一般に遅れていますperf
とlikwid
のようなツールでサポートされていますが、少なくとも最近のバージョンでは、SKLのようなクライアントの部分であっても、合理的なサポートがあるようです。
Intel PMUについてはわかりませんが、Intel VTune Amplifier(https://software.intel.com/en-us/intel-vtune-amplifier-xe)を使用することは可能でしょうか。これにはパフォーマンス監視用のツール(メモリ、CPUキャッシュ、CPU)がたくさんあります。多分、これはあなたのために働くでしょう。
はい(ish)、間接的です。カウンタ間の関係(タイムスタンプを含む)を使用して、他の数値を推測することができます。たとえば、1秒の間隔をサンプリングし、最後のレベル(N)のキャッシュミスがある場合、1秒あたりN * CacheLineSizeバイトを占有していると確信できます。
これらのミスは、CPUのプリフェッチを反映する可能性があるため、プログラムの活動に正確にそれを関連付けるために少し粘着性なり、活動を中断、など
このCPU」の泥沼もありは、(MMXはカウントされません。 SSE、AVX、..)この設定ビットがこの状態にない場合 ';したがって、自分自身を回転させることは面倒です....
- 1. メモリ帯域幅使用量
- 2. プログラムでブラックベリーの帯域幅の使用量を測定する
- 3. SAASアプリケーションの帯域幅使用量を測定
- 4. ajaxを使用してクライアントのアップストリーム帯域幅を測定する
- 5. なぜネットワーク帯域幅がMHzで測定されますか?
- 6. Windows Azureの帯域幅使用量をプログラムで測定する方法は?
- 7. Rの信号の帯域幅を測定する
- 8. ソフトレイヤーの帯域幅の予測データ
- 9. スウィフトの帯域幅を測定する方法
- 10. Cソケットの帯域幅を測定する
- 11. 64ビットおよびメモリ帯域幅
- 12. 私の(SAMP)サーバの帯域幅使用量を測定するにはどうすればよいですか?
- 13. 帯域幅モニタ
- 14. 帯域幅
- 15. WMIを使用したリモートマシンでの帯域幅のモニタ
- 16. ビデオストリーミングの帯域幅のための帯域幅
- 17. クライアントとサーバーの間で使用されるネットワーク帯域幅を測定する方法は?
- 18. クライアントからサーバーへのJavaの待ち時間と帯域幅の測定
- 19. C、C++すべてのプラットフォームでのCPU使用率とメモリ使用率+現在のネットワークダウンリンク帯域幅
- 20. 低帯域幅シミュレーションのオンラインツールですか?
- 21. 2つのホスト間の帯域幅使用の測定を自動化する方法
- 22. スタック領域としてメモリ領域を使用しますか?
- 23. 特定のOracle DBのネットワーク帯域幅
- 24. 書き戻し対帯域幅
- 25. Mininetエラー帯域幅
- 26. Pingと帯域幅
- 27. メモリ帯域幅情報を使用してHPCアプリケーションのmflop/sを計算する
- 28. 単一精度でのCUDA帯域幅と倍精度での帯域幅
- 29. netemを使用した帯域幅のスロットル?
- 30. Nettyを使用したスロット単位のサーバー帯域幅
VTuneは、ハードウェアパフォーマンスカウンタ(PMU =パフォーマンス監視ユニット)を使用するためのツールです。 VTuneにメモリ帯域幅を測定させる方法を説明することができない限り、これは有用な答えではありません。 (VTuneは便利なツールで、キャッシュミスのホットスポットやそのようなものを見つけるのに役立ちます。そして、単にperfカウンタを記録するだけではありませんが、この質問には何の質問もありません)。 –