在iOS中,Eigen不能矢量化矩阵乘法?

时间:2013-06-10 13:22:29

标签: ios eigen neon

我正在使用 Eigen库在iPad 2上进行一些计算。(即cortex-a9)。似乎某些操作使用 NEON指令进行矢量化,而其他操作则不是。

我尝试过的矢量化操作:点积,矢量和矩阵加法和减法。

无法进行矢量化的操作:矩阵乘法。

我在同一个项目和同一个文件中使用这些操作,因此编译器选项是相同的。我正在使用-O3 -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp

我使用的所有矩阵都有动态尺寸。有什么我做错了,或者这是预期的行为?

感谢。

1 个答案:

答案 0 :(得分:0)

使用-mfpu=neon时,gcc / clang将向量化整数运算,但不会浮点运算,因为NEON不是100%IEEE投诉(它不支持非正规数)。您必须指定-ffast-math以使用NEON生成gcc / clang向量化浮点代码。但是,您必须小心,因为-ffast-math会影响数值结果。