キャッシュのヒット数とミス数を測定できる AMD プロセッサがあることを読みました。そのような機能が Intel Core Duo マシンでも利用できるのか、それともまだサポートされていないのか疑問に思っています。
4 に答える
はい、古代の Pentium Pro 以来、多くのハードウェア パフォーマンス カウンターがあります。
Linux ではOprofile とperf
、Linux/Windows では Vtune、MacOSX では Shark が使用できます。
すべてのカウンターは、Intel アーキテクチャーのドキュメント (ボリューム 3B、第 30 章、付録 A のリスト) にリストされています: http://www.intel.com/products/processor/manuals/
Atom にもいくつかのパフォーマンス レジスタがあります。
さまざまな CPU の適切なリストの 1 つがここにありますhttp://oprofile.sourceforge.net/docs/
Linux を使用している場合、コロンビア大学で開発されているLiMiTという興味深いライブラリがあります。これは、パフォーマンス カウンターをすばやく読み取り、それらを仮想化して、プロセスの開始と停止、プロセッサ間での移動などの問題を回避します。私自身はプロジェクトとは何の関係もありませんが、現時点では開発者とのクラスです。
このドキュメントは、Intel Core Duo プロセッサが求める情報を提供できることを確かに示唆しています。Intel の Web サイトをグーグルで検索することも役立つと思います。
私は個人的に、rdtsc 命令を実行するアセンブリ ラッパーを介してタイム スタンプ カウンターを使用しています。次に、プロセッサの電源を入れてから経過した内部クロック サイクル数を含む符号なし 64 ビット整数を取得します。2 つの読み出しの違いは、その間にコードを実行するのに必要なコード サイクル数です。キャッシュ・ヒット読出しのための命令へのアクセスは、同じ方法で実施することができる。
関連する時間枠がないと、キャッシュカウンターを読み取ってどのような結論を導き出すかを理解するのは難しいと思います. この時間枠は長すぎないようにしてください。長すぎると、タスクの切り替えや割り込みが値に影響を与える可能性があります。
Microsoft によると、プロセッサーでダウンスロットリング機能が有効になっている場合 (エネルギー消費を抑えるため)、rdtsc の指示が正確ではない可能性があるため、注意が必要です (またはオフにします!)。