【发布时间】:2013-05-07 00:11:57
【问题描述】:
当 LOOPS > BTB_SIZE 时执行此例程很有用, 例如,
来自
int n = 0;
for (int i = 0; i < LOOPS; i++)
n++;
到
int n = 0;
int loops = LOOPS / 2;
for(int i = 0; i < loops; i+=2)
n += 2;
可以减少分支失误。
BTB ref:http://www-ee.eng.hawaii.edu/~tep/EE461/Notes/ILP/buffer.html 但它没有说明如何获取 BTB 大小。
【问题讨论】:
-
检查xania.org/201602/bpu-part-one 较新的英特尔处理器上的静态分支预测xania.org/201602/bpu-part-two 分支预测 - 第二部分及之后他在同一标签中的出版物 (xania.org/Microarchitecture-archive);测试代码位于github.com/mattgodbolt/agner (tests/btb*py) 和github.com/rmmh/whomp
标签: performance hardware branch-prediction