7

perfイベントinstructionsLLC-load-misses、を選択したとしますLLC-store-misses。さらに、入力をprog 変化させてプログラムをテストするとします。valgrind同じ入力と同じカウンターに対して「同じ」機能結果が得られるはずですか? つまり、 の 1 つの値perfが上昇した場合、 の 1 つvalgrindは常に同じようにする必要がありますか? valgrindコードのプロファイリング中に注意すべきシミュレーションであることの影響はありますか?

編集:ところで、人々が私自身を実験していないことで私をグリルする前に、私は(ちょっと)持っていると言わなければなりperfません. パッチがありますが、カーネルを再コンパイルする気がしません...

4

1 に答える 1

6

さて、Cachegrind はキャッシュ シミュレーターです。ハードウェアの特性 (キャッシュ サイズ、連想性など) の一部を模倣しようとしますが、システムのすべての機能と動作をモデル化するわけではありません。したがって、場合によっては、いくつかの違いが見られる場合があります。

たとえば、Valgrind のドキュメントでは、「Cachegrind は、2004 年頃の主流のデスクトップ/サーバー プロセッサの典型となるように意図された分岐予測子をシミュレートします」と述べています。Sandy Bridge プロセッサは 2011 年に初めて登場し、2004 年以降、分岐予測子が大幅に改善されたことを推測できます。

そうは言っても、Valgrind はツールボックスに入れておくべき素晴らしいツールです。

Sandy Bridge プロセッサでの perf の LLC イベントの問題は何ですか? Sandy Bridge ラップトップでこれらのイベントを毎日使用していますが、期待どおりに動作します (archlinux 64 ビット、linux 3.6)。

于 2013-01-10T18:46:52.970 に答える