Eigen中编译内联对效率的影响

来源:互联网 发布:vue.js获取json数据 编辑:程序博客网 时间:2024/05/01 21:30

Eigen在src/Core/util/Macros.h中定义了 EIGEN_STRONG_INLINE、EIGEN_ALWAY_INLINE、EIGEN_DONT_INLINE。

其中EIGEN_STRONG_INLINE在MSVC和ICC编译器中使用的是__forceinline,如果替换为inline的话,会有效率损失。

EIGEN_STRONG_INLINE在GCC编译器中使用的是inline,部分gcc的优化不能做到内联 ,效率会有大幅影响。可以在必要的地方用EIGEN_ALWAY_INLINE替换


ps:Eigen使用了大量的模板类来兼容不同的计算模式,如果内联或者编译优化没搞好的话,会起不到优化的左右,甚至适得其反。


0 0
原创粉丝点击