3

同じメモリ位置にアクセスする複数のコア間の競合によるパフォーマンスのボトルネックを検出できるようにするために、CPUキャッシュ/マルチコアCPUのキャッシュでの読み取り/書き込み操作を監視できるC++コード/関数を探しています。

近づいてくるものはすべてありがたいです。誰か助けてもらえますか?前もって感謝します。


これまでのすべての回答に感謝します。それらを通過した後、私は実際の問題の解決策についてもう少し具体的にする必要があると思います。

  1. 望ましい結果は、VisualC++で記述されたWindowsシステム用のソフトウェアです。
  2. ソフトウェアは、特定のメーカーのCPUだけでなく、すべてのCPUで動作できる必要があります。
  3. 結果を再確認する場合、ツールは便利ですが、完全に文書化されたソースコードが利用できない限り、私はそれから多くを得ることができません。

この時点で、次のようないくつかのVC ++コードスニペットを取得することは非常に役立ちます。CPUの種類、キャッシュの種類、およびそのキャッシュ内のアドレスから/へのデータの読み取り/書き込みのタイミングを検出する方法もあります。非常に複雑である必要はありません。単純な方法で作業する必要があります。

4

1 に答える 1

3

私が見つけた最良/最も簡単なツールはperf、たとえば次のコマンドです。

perf stat -e LLC-load-misses,LLC-store-misses /bin/ls

実行中の最終レベル キャッシュ ミスの数を出力しますls

見るperf --help

他の優れたツールはvTune、またはcachegrind前述のツールです。

プログラムによるアプローチについては、 PAPI APIも確認できます。

于 2013-03-21T14:38:57.153 に答える