性能評価・プロファイリング
性能カウンタで、分岐の予測ミスが非常に多いことが分かった。改善の方法として当てはまるものはどれか。
- Aループの中に分岐をさらに追加する
- Bデータを並べ替えて分岐の結果を予測しやすくしたり、条件付きの選択や計算で分岐そのものをなくしたりする
- Cキャッシュの容量を減らす
答えと解説を見る
正解:B. データを並べ替えて分岐の結果を予測しやすくしたり、条件付きの選択や計算で分岐そのものをなくしたりする
分岐の予測を誤ると、CPUは投機的に進めた命令を捨ててやり直すので、1回あたり十数サイクル以上を失います。データがランダムだと、「値が128以上なら」のような分岐の結果は予測できません。データを先に並べ替えておけば結果がそろって予測が当たりやすくなり、条件付きの選択の命令やビット演算で書けば分岐そのものがなくなります。コンパイラにこうした変換を促すこともできます。
- A. 予測ミスがさらに増えるおそれがあります。
- B. 正しい。予測しやすくするか、分岐をなくします。
- C. 分岐の予測とは関係なく、性能が下がります。