首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么库需要硬编码矢量化而不是编译器自动矢量化?

为什么库需要硬编码矢量化而不是编译器自动矢量化?
EN

Stack Overflow用户
提问于 2016-07-07 16:20:52
回答 1查看 150关注 0票数 1

C++特征库针对不同的体系结构(如SSE、NEON等)进行矢量化。他们在文档中提到,特征向量化不依赖于编译器。但是,大多数现代编译器,如gcc,如果使用-O3标志启用向量化标志,就会自动进行矢量化。

所以我的问题是,当编译器自动为我们做这件事时,为什么特征库或其他库会进行硬编码矢量化呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-08 09:31:39

的确,编译器在自动矢量化方面越来越好,对于像2*A-4*B这样的基本系数运算,像Eigen这样的库不能比最近的编译器做得更好。然而,对于稍微复杂的表达式,如矩阵积、缩减、转换、幂等,编译器不能做太多的事情。另一方面,特征可以利用表达语义的高级知识显式地向量化它们。此外,复杂的标量类型不是由编译器矢量化的。您可以通过禁用Eigen的显式向量化(-DEIGEN_DONT_VECTORIZE)来自行检查。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38250620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档