【发布时间】:2011-07-23 07:07:33
【问题描述】:
我正在对使用 C++/Linux/GCC/Windows XP/英特尔编译器构建的应用程序中的几个大型 STL 矢量容器中包含的值进行计算
是否值得通过更改对齐属性或使用英特尔库函数等来研究向量化的优化机会 - 或者编译器会自动处理?
【问题讨论】:
标签: optimization gcc intel compiler-optimization vectorization
我正在对使用 C++/Linux/GCC/Windows XP/英特尔编译器构建的应用程序中的几个大型 STL 矢量容器中包含的值进行计算
是否值得通过更改对齐属性或使用英特尔库函数等来研究向量化的优化机会 - 或者编译器会自动处理?
【问题讨论】:
标签: optimization gcc intel compiler-optimization vectorization
通常,编译器会使用适当的设置来处理它,因此您必须进行一些调整。
也就是说,如果您针对特定硬件,最好确保编译器确实利用了此类系统。例如,众所周知,英特尔编译器是其处理器的出色优化器。
现在,有时手动矢量化也很好。事实上,它就像任何优化一样:首先用高效的算法实现一个简单易读的版本。然后使用分析器优化代码。分析器会告诉您应该将精力集中在哪里。
如果您知道您将拥有一个特定的函数处理成员,并且对此类函数的生成代码(来自编译器)有经验,您可能会从一开始就开始应用一些优化,但请确保您已经知道会生成什么。
【讨论】: