在ARM Cortex-A8处理器中,我了解NEON是什么,它是SIMD协处理器。
但是,也是协处理器的VFP( vector 浮点)单元是否可以用作SIMD处理器?如果是这样,哪个更好使用?
我读了一些链接,例如-
但不是很清楚他们的意思。他们说,VFP从未打算用于SIMD,但在Wiki上,我读到以下内容:“VFP架构还支持执行短 vector 指令,但这些指令顺序地在每个 vector 元素上运行,因此不提供真正的SIMD性能(单指令多数据)并行性。”
尚不清楚该相信什么,任何人都可以在这个话题上做更多的阐述吗?
最佳答案
两者之间有相当大的差异。 Neon是SIMD(单指令多数据)加速器处理器,是ARM内核的一部分。这意味着在执行一条指令期间,将对多达16个数据集并行执行相同的操作。由于Neon内部存在并行性,因此与以相同时钟频率运行的标准SISD处理器相比,您可以从Neon中获得更多的MIPS或FLOPS。
Neon的最大好处是,如果您想使用 vector 执行操作,即视频编码/解码。它还可以并行执行单精度浮点(float)操作。
VFP是经典的浮点硬件加速器。它不是像Neon这样的并行架构。基本上,它对一组输入执行一个操作并返回一个输出。目的是加快浮点计算。它支持单精度和 double 浮点。
您可以使用3种 NEON :
-mfpu=neon
作为参数让gcc为您做优化(gcc 4.5很好)关于arm - ARM Cortex-A8:VFP和NEON有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4097034/