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

性能カウンタで、分岐の予測ミスが非常に多いことが分かった。改善の方法として当てはまるものはどれか。

  1. Aループの中に分岐をさらに追加する
  2. Bデータを並べ替えて分岐の結果を予測しやすくしたり、条件付きの選択や計算で分岐そのものをなくしたりする
  3. Cキャッシュの容量を減らす
答えと解説を見る

正解:B. データを並べ替えて分岐の結果を予測しやすくしたり、条件付きの選択や計算で分岐そのものをなくしたりする

分岐の予測を誤ると、CPUは投機的に進めた命令を捨ててやり直すので、1回あたり十数サイクル以上を失います。データがランダムだと、「値が128以上なら」のような分岐の結果は予測できません。データを先に並べ替えておけば結果がそろって予測が当たりやすくなり、条件付きの選択の命令やビット演算で書けば分岐そのものがなくなります。コンパイラにこうした変換を促すこともできます。

  • A. 予測ミスがさらに増えるおそれがあります。
  • B. 正しい。予測しやすくするか、分岐をなくします。
  • C. 分岐の予測とは関係なく、性能が下がります。
この分野を解く 分野ページへ

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

  1. 性能カウンタを使ったトップダウン分析(Top-down Microarchitecture Analysis)で、CPUの命令を処理する枠の使われ方を分ける大きな分類として正しいものはどれか。
  2. プログラムが遅いのに、CPUの使用率が20%程度と低かった。最も考えられる原因はどれか。
  3. あるプログラムが計算律速かメモリ律速かを確かめる方法として、CPUの周波数を変えて実行時間を測った。メモリ律速なら一般にどのような結果になるか。
  4. Rooflineモデルで、ある処理がメモリ帯域で制限される領域にあると分かったとき、性能を上げる方向として正しいものはどれか。
  5. STREAMベンチマークで主に測るものはどれか。