インテルCPUカウンター(L1/L2キャッシュミス、分岐予測失敗など)によって収集されたデータにアクセスできる小さなツールはありますか?現代のCore2 CPUで)。インテルCPUカウンターにアクセスするにはどうすればいいですか?
これはWindows上で動作する必要があります(もちろん、Solaris、FreeBSD、Linux、MacOSXで使用することもできます)。
インテルCPUカウンター(L1/L2キャッシュミス、分岐予測失敗など)によって収集されたデータにアクセスできる小さなツールはありますか?現代のCore2 CPUで)。インテルCPUカウンターにアクセスするにはどうすればいいですか?
これはWindows上で動作する必要があります(もちろん、Solaris、FreeBSD、Linux、MacOSXで使用することもできます)。
あなたは、あなたがアプリケーションやライブラリを探していると書いていませんでした。
Windowsの場合、インテルVTuneがあります。しかし、これはまさに小さなツールではありません。 Linuxの場合は、カーネルパッチなしで動作するoprofileを使用しています。
ミリ秒の代わりにINSTRUCTION_RETIREDイベントを記録する計測プロファイラを作成したいので、ライブラリを探しています。 はい、多分他のものなので、私は自分自身を書こうと思うツールのような小さなVTuneとして見ることができます。 – Lothar
私はライブラリがあるとは思わない。パフォーマンスモニタレジスタは、rdmsrおよびwrmsr命令を介してアクセスされます。 まず、「Intel 64およびIA-32アーキテクチャーソフトウェア開発者マニュアル」(最新版はgoogle)の第3B巻、第18.11節を参照してください。パフォーマンスカウンタにアクセスするために必要なことが正確に記述されています。 – hirschhornsalz
OS Xでは、Sharkを使用してPMCからデータを取得できます。インテルのツール(VThn、drhirschで言及されているように)以外に、Windows上で何が利用できるのかよく分かりません。
これは、WindowsとLinux [およびその他のOS]の両方に働き、あなたが任意のCPUカウンターデータを読み取ることができ、完全なライブラリです。この http://icl.cs.utk.edu/papi/ を試してみてください
PAPIはWindowsでは動作しません。 –
PAPIは非常に有望なリードである、しかし、私は信じています彼らはかなりの数年前にWindows(そしてそれゆえ.NET C#)のサポートを中止しました。
Windowsフロントでは、Visual Studio 2010 Premiumにパフォーマンスエクスプローラが付属しています。インストルメンテーションモードでプロジェクトまたはバイナリを実行すると、リタイアされた命令などのハードウェアイベントにアクセスできます。
結果は外的要因によって多少混在する可能性がありますが、Visual Studioとうまく統合され、メソッド/モジュールレベルごとに詳細な数(平均、最大、合計)が得られます。
インテルVチューニング・パフォーマンス・アナライザもこれらをネイティブに公開しています。私はまだこのツールを使っていませんが、Visual Studio 2010が公開しているものよりも柔軟なAPIかもしれません。
ありがとう、しかし、私は開発し、IDEの自分自身を販売するビジネスにいる。だから、これは明らかに私を助けません。 – Lothar
このスレッドは少し古いようですが、まだ興味があれば、Linuxでrdmsrとwrmsrを使用してこのトピックについて最近howtoを書きました。インテルのWestmereのコアのパフォーマンスカウンターだけを扱っていますが、私が説明したプロセスは、あなたがまだ必要でないものを見つけ出すのに役立ちます。私は、WindowsにRDMSRとWRMSRに相当するプログラムや関数呼び出しがあることを確信しています。問題は、MSRを読み取るためにリング0(カーネルモード)にする必要があることです。私はどのようにWindowsでそれを行うか分からない。私はWindowsの質問を手助けすることはできませんが、MSR関連の質問があれば回答することができます。私は決して専門家ではない。
このスレッドはかなり古いようです。しかし、上記のカウンターはすべてIntel PCMで入手できます。これらのカウンターは、Microsoft Perfmonプラグインまたはコマンドプロンプトインターフェイスとして使用できます。インテル®PCMは、L2およびL3キャッシュヒット率、キャッシュミスなどの情報を提供します。
あなたがしたいことをまったく実行するインテルPCM(パフォーマンスカウンターモニター)ツールをチェックしてください。
インテルPCMは、あなたのコード楽器を可能にする豊富なAPIを提供します。さらに、今日まで、PCMはアンコアイベントを読み取る唯一のツールです。
それまでの間、私はPAPIライブラリを見つけました。しかし、これは多かれ少なかれLinux(Sparc上でのみSolarisをサポートする)であり、いくつかのLinuxカーネルパッチが必要です。Linusは性能監視が2つの本当の弱点の1つだと知っています。 そして、perfmon2とウサギ(死んだプロジェクト)も見つかりました。これもLinuxだけです。 これまでのウィンドウでは1つのヒットはありません。 – Lothar