このドキュメントでは、Compute Engine のパフォーマンス モニタリング ユニット(PMU)の動作、課金、制限について説明します。PMU は C4 仮想マシン(VM)インスタンスでのみ使用できます。
PMU は、プロセッサがコードをどのように実行しているかをモニタリングする CPU コア内のハードウェア コンポーネントです。C4 VM で PMU を有効にすると、VM 上のパフォーマンス モニタリング ソフトウェアを使用して PMU のパフォーマンス カウンタにアクセスできます。これらのカウンタを基に、VM で実行されているソフトウェア内のパフォーマンスの問題を特定し、それらの問題に対処できます。この情報は、ハイ パフォーマンス コンピューティング(HPC)ワークロードや ML ワークロードなど、パフォーマンスに敏感なワークロードを最適化するのに役立ちます。
PMU の仕組み
PMU は、パフォーマンス モニタリング カウンタ(PMC)と呼ばれる一連のハードウェア カウンタで構成されています。これらのカウンタは、CPU 内で低レベルのプロセッサ イベント(分岐予測ミスやキャッシュミスなど)が発生するたびにカウントが増えるモデル固有レジスタです。PMU 内の PMC の読み取りや構成には、Intel VTune Profiler などのパフォーマンス モニタリング ソフトウェアを使用します。
デフォルトでは、PMU は VM で無効になっています。これを有効にするには、次のいずれかの PMU タイプを有効にして、追跡する低レベル CPU イベントのタイプを指定します。
アーキテクチャ(
ARCHITECTURAL
): アーキテクチャに関連する次のパフォーマンス イベントを測定できます。リタイアした分岐命令: リタイアした分岐命令の数。このイベントを使用してコードの実行を測定し、潜在的なパフォーマンスのボトルネックを特定します。
リタイアした分岐ミス: 予測ミスによってプロセッサがストールし、フェッチされた命令が破棄された分岐命令の数。このイベントの数が多い場合は、CPU パフォーマンスを最適化できます。
リタイアした命令: CPU によって正常に処理された命令の数。このイベントは、CPU の命令スループットを測定するために使用します。
トップダウン スロット: 命令の同時実行に使用される、プロセッサのパイプライン内の使用可能なスロットの数。このイベントを使用して、コードがプロセッサのリソースをどれだけ効率的に使用しているかを把握します。
非停止コアサイクル: 電力管理や割り込みなどが原因でスレッドが停止していないコアサイクルの数。このイベントを使用して、プロセッサの全体的な使用状況を評価します。
非停止参照サイクル: コアが停止していないとき(データや命令のフェッチ時など)の参照サイクルの数。コアは、
HLT
命令またはMWAIT
命令を実行するときに停止します。参照サイクルは固定周波数で動作し、電力節約のためにプロセッサの速度が変化したときにも安定した時間基準を提供します。このイベントを使用して、タスクに費やされた時間を測定し、コードのパフォーマンスのボトルネックを特定します。
標準(
STANDARD
): アーキテクチャ PMU タイプのすべてのイベントに加えて、レベル 2(L2)キャッシュ イベントなどの CPU コア内のローカル イベントを測定できます。拡張(
ENHANCED
): 標準 PMU タイプのすべてのイベントに加えて、レベル 3(L3)キャッシュ イベントなどの CPU コア外のローカル イベントを測定できます。
VM で PMU を有効にすると、PMU がバックグラウンドで実行され、PMC を使用してパフォーマンス イベントが継続的にモニタリングされます。必要に応じて、任意のパフォーマンス モニタリング ソフトウェアを使用して特定の PMC のしきい値を構成できます。PMC が指定されたしきい値を超えると、パフォーマンス モニタリング ソフトウェアに通知されます。
制限事項
PMU には次の制限が適用されます。
PMU を有効にできるのは、第 5 世代の Intel Xeon スケーラブル プロセッサ(Emerald Rapids)が指定された C4 VM のみです。このプロセッサは C4 VM でデフォルトで指定されます。この CPU プラットフォームでサポートされているパフォーマンス イベントの一覧については、emeraldrapids_core.json をご覧ください。
拡張 PMU タイプを有効にできるのは、96 個または 192 個の vCPU を持つ C4 マシンタイプのみです。
料金
VM で PMU を有効または無効にしても、費用は発生しません。
次のステップ
- VM で PMU を有効にする方法を学習する。