1

私は現在、チップ E5-4603 (SandyBridge) の電力モデリング プロジェクトに取り組んでいます。パフォーマンス監視カウンターに基づく一連のアクティビティ比率 (モデルの入力など) を紹介するいくつかの論文を読みました。残念ながら、これらの論文は Core マイクロアーキテクチャ チップに関するものです。

したがって、私の最初の仕事は、Sandy Bridge チップでこれらの (コア マイクロアーティテクチャー) PMC ベースのアクティビティ比に対応するものを見つけることです。

たとえば、コア アーキテクチャでは、UOPS_RETIRED.ANY/CPU_CLK_UNHALTED.CORE_P を定式化できます。これは、順序どおりのエンジン全体 (つまり、Fetch ユニット、DECODE ユニットなどのコンポーネントを含むフロント エンド) のいわゆるアクティビティ率として、ただし、BPU は、スタンドアロン アクティビティの比率 BR_INST_DECODED/CPU_CLK_UNHALTED.CORE_P で特徴付けることができます。

対照的に、Sandy Bridge PMC のフロント エンド (これも BPU なし) の同様の対応物を見つけました。

UOPS_RETIRED.ALL /CPU_CLK_UNHALTED:THREAD_P (質問 1、正しいですか?)

しかし、BPU については、イベントとまったく同じ意味を持つ SandyBridge でそのようなイベントを見つけられなかったので、少し不確実です。

コア マイクロアーキテクチャの BR_INST_DECODED。

あまり似ていないイベント BR_INST_RETIRED.ALL_BRANCHES しか見つかりません。明らかに、それらの定義によれば、BR_INST_DECODED と BR_INST_RETIRED.ALL_BRANCHES は非常に簡単に区別でき、通常、それらの違いは無視できません。(質問 2) Core microarchitecture の BR_INST_DECODED の代わりに、Sandy Bridge でより優れた (より類似した) ものはありますか?

また、コア マイクロアーキテクチャでは、次の比率を使用して、整数計算操作のアクティビティ比率を定式化できます (ここでは、通常の整数計算操作のみが考慮され、SIMD 整数操作は除外されます)。

(RS_UOPS_DISPATCHED_CYCLES.PORT_0 + RS_UOPS_DISPATCHED_CYCLES.PORT_1 + RS_UOPS_DISPATCHED_CYCLES.PORT_5 - FP_COMP_OPS_EXE-SIMD_UOPS_EXEC - BR_INST_RETIRED.ANY)/ CPU_CLK_UNHALTED:THREAD_P

コア マイクロアーキテクチャのアウトオブオーダー エンジンでは、すべての計算操作がポート 0、ポート 1、およびポート 5 で実行されるため、上記の比率を取得するのは簡単です。合計からの SIMD および分岐操作。

(質問 3) コア マイクロアーキテクチャで SIMD_UOPS_EXEC のように機能する Sandy ブリッジで提供されるイベント (またはイベントのグループ) はありますか? それとも別の方法で (実際にはもっと簡単な方法で) 整数演算の数を直接伝えることができるイベントはありますか?</p>

(質問4)Sandy BridgeでFSB(フロントサイドバス)をモニタリングするためのオフコア(アンコア)イベントはありますか?

どうもありがとう!

4

0 に答える 0