【发布时间】:2012-12-25 16:27:37
【问题描述】:
我们知道浮点运算有很高的延迟并且需要很多时钟周期来执行,这可能会导致流水线停止!以下代码有哪些不同的优化方法。
int main()
{
float fsum[50],a=10.45;
int isum[100],b=20;
for(int i=0;i<100;i++)
{
if(i<50)
{
fsum[i] = a*a;
}
isum[i] = b*b
}
return 0;
}
【问题讨论】:
-
cin>>b;优化 FP 操作没有意义 -
从编译开始——
+ =不应该(大概你打算+=?) -
这不是管道停顿。这是一个程序员摊位。
-
但说真的,“优化”该代码的唯一方法是正确缩进它以使其更具可读性。当你到处都有 IO 时,考虑流水线是绝对没有意义的。
-
你的代码对向量执行了两个类似 memset 的操作,那么为什么不这样编码呢?
标签: c++ optimization compiler-optimization computer-architecture pipelining