性能評価・プロファイリング

CPUに内蔵された性能カウンタ(PMU)で数えられるものの例として正しいものはどれか。

  1. A実行した命令の数、キャッシュのミスの回数、分岐の予測を誤った回数など
  2. Bプログラムを書いた人の数
  3. Cキーボードのキーの数
答えと解説を見る

正解:A. 実行した命令の数、キャッシュのミスの回数、分岐の予測を誤った回数など

性能カウンタは、CPUの中で起きたさまざまな出来事を数えるハードウェアのカウンタです。サイクル数と命令数からIPCが求められ、各段のキャッシュのミス、TLBのミス、分岐の予測ミスなどの回数も分かります。Linuxのperfなどの道具でプログラムを動かしながら数えられ、時間がかかっている原因がメモリなのか、分岐なのか、計算そのものなのかを切り分ける手がかりになります。

  • A. 正しい。CPUの中で起きた出来事を数えます。
  • B. 人の数は数えられません。
  • C. キーボードとは関係ありません。
この分野を解く 分野ページへ

性能評価・プロファイリングのほかの問題

  1. 性能カウンタで測ったところ、あるプログラムのIPC(1サイクルあたりの命令数)が0.3と非常に低く、最後の段のキャッシュのミスが多かった。最も考えられる状況と対策の組み合わせはどれか。
  2. 性能カウンタで、分岐の予測ミスが非常に多いことが分かった。改善の方法として当てはまるものはどれか。
  3. 性能カウンタを使ったトップダウン分析(Top-down Microarchitecture Analysis)で、CPUの命令を処理する枠の使われ方を分ける大きな分類として正しいものはどれか。
  4. プログラムが遅いのに、CPUの使用率が20%程度と低かった。最も考えられる原因はどれか。
  5. あるプログラムが計算律速かメモリ律速かを確かめる方法として、CPUの周波数を変えて実行時間を測った。メモリ律速なら一般にどのような結果になるか。