对于整数而言,ARM的NEON比浮点更快吗?

Met*_*est 4 c arm neon

或者浮点运算和整数运算都是相同的速度?如果不是这样,整数版本会快多少?

aus*_*len 6

您可以找到有关针对Cortex-A8的高级SIMD指令的特定于指令的调度的信息(由于时序业务变得非常复杂,因此它们不会将其发布到较新的内核).

请参阅高级SIMD整数ALU指令高级SIMD浮点指令:

您可能需要阅读有关如何阅读这些表的说明.

为了给出完整的答案,通常浮点指令需要两个周期,而在ALU上执行指令需要一个周期.另一方面,long long(8字节整数)的乘法是四个周期(论坛相同的源),而double的乘法是两个周期.

一般来说,你似乎不应该关心浮点数与整数,但仔细选择数据类型(浮点数对双数,整数对长对长数)更为重要.


sh1*_*sh1 4

这取决于您使用的型号,但趋势是整数有更多机会使用 128 位宽的数据路径。在较新的 CPU 上,情况已不再如此。

当然,整数运算还使您有机会通过使用 16 位或 8 位运算来提高并行性。

与所有整数与浮点参数一样,这取决于具体问题以及您愿意在调优上投入多少时间,因为它们很少可以运行完全相同的代码。