关于simd:ARM Cortex

您所在的位置:网站首页 vfp和MySQL一样吗 关于simd:ARM Cortex

关于simd:ARM Cortex

2024-07-16 02:25:27| 来源: 网络整理| 查看: 265

在ARM Cortex-A8处理器中,我了解NEON是什么,它是SIMD协处理器。

但是,也是协处理器的VFP(矢量浮点)单元是否可以用作SIMD处理器? 如果是这样,哪个更好用?

我读了一些链接,例如-

链接1

链接2。

但不是很清楚它们的意思。 他们说,VFP从未打算用于SIMD,但我在Wiki上阅读了以下内容:" VFP架构还支持执行简短的向量指令,但这些指令顺序地在每个向量元素上运行,因此无法提供真正的SIMD( 单指令多数据)并行性。"

尚不清楚该相信什么,任何人都可以在这个话题上做更多的阐述吗?

两者之间有相当大的区别。 Neon是SIMD(单指令多数据)加速器处理器,是ARM内核的一部分。这意味着在执行一条指令期间,将对多达16个数据集并行执行相同的操作。由于Neon内部存在并行性,因此与以相同时钟频率运行的标准SISD处理器相比,您可以从Neon中获得更多的MIPS或FLOPS。

Neon的最大好处是,如果您想使用矢量执行操作,即视频编码/解码。它还可以并行执行单精度浮点(float)操作。

VFP是经典的浮点硬件加速器。它不是像Neon这样的并行架构。基本上,它对一组输入执行一个操作并返回一个输出。目的是加快浮点计算。它支持单精度和双精度浮点。

您可以使用3种霓虹灯:

使用内在函数#include" arm_neon.h" 内联汇编代码 让gcc通过提供-mfpu=neon作为参数为您做优化(gcc 4.5很好)

对于armv7 ISA(和变体)

NEON是用于整数和浮点数据的SIMD和并行数据处理单元,而VFP是与IEEE-754完全兼容的浮点单元。特别是在A8上,NEON设备几乎可以处理几乎所有内容,即使您没有高度并行的数据也是如此,因为VFP是非流水线的。

那么,为什么还要使用VFP?

最主要的区别是VFP提供双精度浮点。

其次,VFP提供了一些专门的说明,NEON单元中没有等效的实现。我想到SQRT,也许是一些类型转换。

但是Cosmin的答案中没有提到的最重要的区别是NEON浮点管线不完全符合IEEE-754。差异的最佳描述在FPSCR寄存器描述中。

因为它不符合IEEE-754,所以除非您告诉编译器您对完全符合性不感兴趣,否则编译器无法生成这些指令。这可以通过几种方式来完成。

使用内部函数强制使用NEON,例如,请参阅GCC Neon内部函数列表。 很好地询问编译器。除非您还指定了-funsafe-math-optimizations,否则即使具有-mfpu=neon的较新GCC版本也不会生成浮点NEON指令。

对于armv8 + ISA(和变体)[更新]

NEON现在完全兼容IEE-754,并且从程序员(和编译器)的角度来看,实际上并没有太大的区别。双精度已被向量化。从微架构的角度来看,我怀疑它们甚至是不同的硬件单元。 ARM确实分别记录了标量指令和矢量指令,但它们都是" Advanced SIMD"的一部分。

相关讨论 使用VFP的另一个原因是您需要双重精度,因为NEON不支持双重进动。即使没有对VFP进行流水线处理(例如在Cortex A-8中),也比使用NEON在软件中实现double更快(我什至不认为使用NEON的double-float会击败VFP)。 我不敢相信我在回答中忘记了这一点。谢谢! 我刚刚了解到ARM64 NEON确实支持double。我想它基本上就像x86的SSE2。 嗨,NEON现在是双精度吗?

在结构上,VFP(实际上没有被称为向量浮点)确实提供了在单个指令中对浮点向量进行操作的规定。我认为它实际上并不会同时执行多次运算(例如真正的SIMD),但是它可以节省一些代码大小。但是,如果您在Shark帮助中阅读了《 ARM体系结构参考手册》(正如我在NEON简介中所描述的,问题的链接1),您将在A2.6节中看到ARMv7中不赞成使用VFP的矢量功能(这是Cortex A8的实现方式),软件应使用Advanced SIMD进行浮点矢量运算。

更糟糕的是,在Cortex A8实现中,VFP是通过VFP Lite执行单元实现的(读取lite占用的硅表面较小,但功能较少),这意味着它实际上比ARM11慢!幸运的是,大多数单精度VFP指令都由NEON单元执行,但我不确定矢量VFP操作是否可以执行。即使这样做,它们的执行速度肯定比使用NEON指令慢。

希望能把事情弄清楚!

相关讨论 嘿,皮埃尔,大开眼界!但是,Shark帮助我无法理解您的意思,您能否发布链接? 出于晦涩的原因,没有直接链接到ARM体系结构文档。相反,我将iOS开发人员指向他们已经拥有的本地副本,位于/Library/ApplicationSupport/Shark/Helpers/ARMHelp.app/Contents/Resources/ARMISA.pdf(更好的是,该文档忽略了过时的信息或与iOS开发无关(例如系统级信息)。如果您不是iOS开发人员,请转到infocenter.arm.com/help/topic/com.arm.doc.ddi0406b/index.html,注册一个帐户,接受条件并下载文档。

IIRC,VFP是一个按顺序工作的浮点协处理器。

这意味着您可以在浮点向量上使用指令来实现类似SIMD的行为,但是在内部,指令是按顺序在向量的每个元素上执行的。

尽管由于单个加载指令而减少了指令所需的总时间,但VFP仍然需要时间来处理向量的所有元素。

True SIMD将获得更多的净浮点性能,但是将VFP与矢量配合使用仍然比纯顺序使用更快。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭