分支预测(branch prediction)

Posted darkchii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分支预测(branch prediction)相关的知识,希望对你有一定的参考价值。

  记录一个在StackOverflow上看到一个十分有趣的问题:问题

  高票答案的优化方法:

  首先找到罪魁祸首:

if (data[c] >= 128)
    sum += data[c];

  优化方案使用位操作:

int t = (data[c] - 128) >> 31;
sum += ~t & data[c];

  正数右移31一定为0,负数右移31一定为-1。再取反进行求&(按位与),0与任何数的&为0,-1与任何数的&为数本身。这样就巧妙的避开分支预测了,可以加速很多。

以上是关于分支预测(branch prediction)的主要内容,如果未能解决你的问题,请参考以下文章

python branch-prediction-problem.py

git branch管理常用命令

predict.gbm() 的预测不一致

svm e1071 predict 创建的预测值数组比预期的要大

性能:找不到“branch-load-misses”指标的有用描述

2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧