【发布时间】:2013-09-07 18:36:47
【问题描述】:
告诉我哪个更快:sub 或 mul?
我的目标平台是 X86; FPU 和 SSE。
示例:
'LerpColorSolution1' 使用乘法。
'LerpColorSolution2' 使用减法。
哪个更快?
void LerpColorSolution1(const float* a, const float* b, float alpha, float* out)
{
out[0] = a[0] + (b[0] - a[0]) * alpha;
out[1] = a[1] + (b[1] - a[1]) * alpha;
out[2] = a[2] + (b[2] - a[2]) * alpha;
out[3] = a[3] + (b[3] - a[3]) * alpha;
}
void LerpColorSolution2(const float* a, const float* b, float alpha, float* out)
{
float f = 1.0f - alpha;
out[0] = a[0]*f + b[0] * alpha;
out[1] = a[1]*f + b[1] * alpha;
out[2] = a[2]*f + b[2] * alpha;
out[3] = a[3]*f + b[3] * alpha;
}
谢谢大家 ;)
【问题讨论】:
-
“更快”是什么意思?
-
那么你有没有尝试过在线搜索?它的记录很好,速度更快。我将把答案留给读者作为练习。 :)
-
可能有用的:instlatx64.atw.hu
-
“更快”在现代 CPU 的指令级别上不是一个有意义的术语;你需要更具体。您对吞吐量或延迟感兴趣吗?将在围绕操作的上下文中执行的指令组合是什么?
-
现在你有了实际的代码,这变得容易多了:两个都试试。
标签: c++ c assembly floating-point