vectorize C ++代码以提高STL性能

时间:2011-03-25 23:53:37

标签: optimization gcc intel compiler-optimization vectorization

我在使用C ++ / Linux / GCC / Windows XP / Intel编译器构建的应用程序中对几个大型STL向量容器中包含的值进行计算

是否值得通过改变aligment属性或使用intel库函数等来调查矢量化的优化机会 - 或者comipler会自动照顾?

1 个答案:

答案 0 :(得分:0)

通常情况下,编译器会使用适当的设置来处理它,所以你必须稍微调整一下。

也就是说,如果你针对特定的硬件,你最好确保编译器确实利用了这样的系统。例如,众所周知,英特尔编译器是其处理器的优秀优化器。

现在,有时手动矢量化也很好。事实上,它就像任何优化一样:首先使用高效的算法实现简单的可读版本。然后使用分析器优化代码。分析器会告诉您在哪里集中精力。

如果你知道你有一个特定的函数处理成员,并且对这种函数有生成代码(来自编译器)的经验,你可能从一开始就开始应用一些优化,但要确保你已经知道会产生什么。