【ARM】FPU,VFP,ASE,NEON,SVE...是什么意思?

【更多软件使用问题请点击亿道电子官方网站查询】

1、 文档目标

对执行浮点和SIMD操作的逻辑的各种名称的缩写词进行简要解释。

2、 问题场景

Arm处理器内核中有用于执行浮点和SIMD操作的逻辑,有各种名称。它们通常是一系列的缩写形式,因此本文旨在对每一个缩写词进行简要解释。

3、软硬件环境

   1  软件版本:不涉及

   2 电脑环境:不涉及

4、相关缩写

 FPU  (Floating-Point Unit) 浮点单元

        浮点单元是处理器核心中的一个模块,用于使用 浮点数 执行算术运算。并非所有处理器都需要这个模块,因此一些处理器可以选择进行配置。

       如果配置在内核中将定义FPU的工作方式及其支持的指令。

       如果配置 FPU,则通常仍然可以执行浮点运算,只是速度较慢,因为这些运算将需要使用软件子程序来执行。

不同的浮点单位支持不同大小的浮点数,因此对于某些处理器来说,无论它们只支持单精度值或是双精度值,这都是可配置的选项。

VFP (Vector Floating Point) 矢量浮点

      之所以被称为“矢量”浮点,是因为不仅对处理浮点数的支持,而且还支持将浮点数作为SIMD运算的矢量处理。在这种情况下“向量”是将多个数据项打包到一个更大的数据容器中(例如,连续存储在单个寄存器中的多个独立值)。这是Armv8之前Arm体系结构浮点扩展的名称。

在Armv7体系结构中,不推荐使用VFP扩展来处理矢量中的浮点数,因为此功能已被“高级SIMD”扩展所取代。有不同版本的VFP(VFPv1、VFPv2、VFPv3、VFPv4)引入了对新功能和数据类型的支持。VFPv2是Armv5和Armv6架构的扩展,VFPv3和VFPv4是Armv7架构的扩展。

ASE (Advanced SIMD Extension) 高级SIMD扩展

这是对Armv7体系结构的扩展,使用整数或浮点数的矢量来支持额外的SIMD操作。与VFP扩展类似,高级SIMD扩展也有几个版本(高级SIMDv1、半精度高级SIMD和高级SIMDv2),它们添加了额外的功能并支持更多的数据类型。

虽然体系结构扩展是“高级SIMD扩展”,但用于此功能的产品名称是NEON。这两个名字指的是同一件事。

对于Armv8A体系结构,矢量SIMD操作的处理包含在默认体系结构中,因此高级SIMD不再被视为扩展。它仍然被称为NEON,预计将出现在所有标准v8-A处理器内核中,尽管从架构上讲,内核可能不包括它。

NEON

“NEON”是Armv7和Armv8 Cortex-A和Cortex-R处理器的高级SIMD功能所使用的产品名称。

不同处理器上的NEON(/ASE)支持可以采取不同的形式。基本功能相同,即允许对整数或浮点数执行SIMD操作。所用矢量的大小、矢量的数量和支持的浮点数的类型都可能因所实现的内容而异。

MPE (Media Processing Engine) 媒体处理引擎

用于Armv7A处理器Cortex-A5、Cortex-A7和Cortex-A9上的高级SIMD逻辑的名称。它通常被称为“NEON媒体处理引擎”,它是处理器中实现ASE/NEON支持的部分的另一个名称。

SVE (Scalable Vector Extension) 可伸缩矢量扩展

SVE是Armv8-A体系结构的扩展,此扩展仅在AArch64模式中受支持,它添加了额外的寄存器以支持更大的矢量、额外的指令和其他功能。包括SVE要求处理器核心也包括对NEON的支持。

以前对SIMD操作的支持使用的向量对数据项具有固定大小——例如,Armv7-a Advanced SIMD使用十六个128位数据项或三十二个64位数据项。

SVE的优点是它有32个矢量寄存器,大小可达2048位,但所用矢量的大小可以通过软件控制。这就是为什么它是“可伸缩”矢量扩展——矢量的大小可以在运行时缩放到不同的大小,而不是由处理器的实现决定的。

以前版本的SIMD支持(例如NEON)要求处理的数据与处理器实现的向量的大小相对应。SVE允许在操作过程中更改矢量数据的大小,而无需重写或重新编译代码,从而更容易编写可以使用SIMD操作处理数据的软件。

SVE2是SVE的更新版本,主要区别在于支持附加指令。这是为了让它能够在更广泛的应用中加速更多的算法。

SME (Scalable Matrix Extension)  可伸缩矩阵扩展

SME是Armv9-A体系结构的扩展,该体系结构建立在可扩展向量扩展(SVE和SVE2)的基础上,以增加对矩阵处理的支持。这包括许多新指令以及处理器的新操作模式——矩阵运算。

CME (Compute Matrix Engine)  计算矩阵引擎

计算矩阵引擎是执行可扩展矩阵扩展(SME)操作逻辑的名称。CME的设计使得在多个处理元件(PE)上执行的指令可以共享功能,其中“PE”是我们通常称之为集群内核心的架构术语。

MVE ( M-profile Vector Extension) M-型矢量扩展

专门用于Armv8-M体系结构,它提供对各种SIMD操作的支持。类似于NEON作为A级高级SIMD扩展的产品名称,“Helium”是用于M-配置文件矢量扩展的产品名。

MVE有两种变体,MVE-I和MVE-F。MVE-I仅支持整数矢量,MVE-F支持浮点数矢量。在处理器核心中包含MVE-F还要求处理器支持MVE-I和浮点扩展。

VPU  (Vector Processing Unit) 矢量处理单元

对于Arm-v9A架构的处理器核心,VPU是处理器内部的单元,可以包含高级SIMD、浮点运算(单精度或双精度)、SVE和SVE2以及密码扩展的逻辑。VPU可以在两个处理器核心之间共享,这两个核心在一个更大的集群中共同形成一个双核“复合体”。

————————————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

关于亿道电子

亿道电子技术有限公司(www.emdoor.cn)是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

二十多年来,先后与ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、SureSoft、Visu-IT、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、TestPlant等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式GUI工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

. ./ bash dash source 这五种执行shell脚本方式 区别

实际上,., ./, bash, dash, source 是五种不同的方式来执行 shell 脚本,它们之间有一些区别。 .(点号)或 source 命令:这两个命令是等价的,它们都是 Bash shell 内置的命令。它们用于在当前 shell 环境中执行脚本。当使用 . script.sh 或 source script.sh 命令来执行脚本…

25.6 MySQL 子查询

1. 子查询 子查询(Subquery): 是SQL查询语句中的一个重要概念, 它允许在一个查询语句(主查询)中嵌套另一个查询语句(子查询). 这意味着一个查询可以作为另一个查询的输入或条件, 子查询可以出现在SQL语句的多个位置, 例如SELECT, FROM, WHERE等子句中.子查询通常用于以下几种情…

网络安全的几个关键领域

网络安全是一个复杂且多维度的领域,涵盖了多个关键领域,涉及到信息保护、网络防护、应用安全、用户教育以及物理安全等多个方面。这些关键领域相互交织,共同构成了网络安全这一宏大且细致入微的领域。 今天德迅云安全就分享下网络安全的几个…

【大模型学习记录】db-gpt源码安装问题汇总

1、首次源码安装时安装的其实dbgpt到conda环境中,会将路径一起安装。 如果有其他的路径使用同样的conda环境会报错,一直读取的就是原先的路径的内容。需要自己新创建一个conda env 2、界面中配置知识库问答时,报错 # 1、报的错如下&#x…

移动代理:具有视觉感知能力的自主多模态移动设备代理

Mobile-Agents: Autonomous Multi-modal Mobile Device Agent With Visual Perception 摘要 本文介绍了Mobile-Agents,这是一个自主的多模态移动设备代理,它首先利用视觉感知工具准确地识别和定位移动应用程序前端界面中的视觉和文本元素。借助这种感知…

Covalent Network借助大规模的历史Web3数据集,推动人工智能发展

人工智能在众多领域中增强了区块链的实用性,反之亦然,区块链确保了 AI 模型所使用的数据的来源和质量。人工智能带来的生产力提升,将与区块链系统固有的安全性和透明度融合。 Covalent Network(CQT)正位于这两项互补技…

Docker 学习笔记

Play With Docker一个免费使用的基于web界面的Docker环境 常用docker命令 可使用docker COMMAND --help查看命令的用法 Docker镜像相关 1、docker image pull:用于下载镜像,镜像从远程镜像仓库服务的仓库中下载,默认从Docker Hub的仓库中拉…

JS+CSS3点击粒子烟花动画js特效

JSCSS3点击粒子烟花动画js特效 JSCSS3点击粒子烟花动画js特效

ES-Hadoop:将Elasticsearch与Hadoop无缝集成的开源工具

hadoop 大数据技术之Hive(3)PyHive pyhdfs ES,Elasticsearch https://zhuanlan.zhihu.com/p/595505475?utm_id0 Hadoop hdfs 、hive、spark https://blog.51cto.com/u_16099278/6901638 ES-Hadoop:将Elasticsearch与Hadoop无缝集成的开源工…

idea import的maven类报红

idea 报红/显示红色的原因 一般报红,显示红色,是因为 idea 在此路径下,找不到这个类。 找到是哪个 jar 包的类导致 idea 报红 点击报红的路径的上一层,进入jar 包。比如: import com.aaa.bbb.ccc.DddDto;这个 impo…

Qt + HTTP 线程交互类封装

介绍 QT的HTTP模块封装的交互类&#xff0c;线程运行。使用时添加自己的业务逻辑即可 代码 头文件 /*** file httpcontroller.h* brief 云台相机的协议交互类* author xintong-zhou* date 2024-03-13*/#ifndef HTTPCONTROLLER_H #define HTTPCONTROLLER_H#include <QNet…

服务器上配置nginx

如何在 Ubuntu 20.04 上安装 Nginx - 知乎 (zhihu.com) 就像是在本机进行下载配置一般&#xff0c;成功后你自己可以通过浏览器输入网址访问&#xff0c;本地环回地址或者连接上互联网后的ip地址&#xff08;那么处于同一局域网的其他设备也可以访问&#xff09;。 在本机部署…

Spring AOP和AspectJ AOP区别

Spring AOP&#xff08;Aspect-Oriented Programming&#xff09;和 AspectJ AOP 是两种不同的 AOP 实现方式&#xff0c;它们在实现上有一些区别。下面是它们之间的主要区别&#xff1a; 基于代理 vs 字节码增强&#xff1a; Spring AOP&#xff1a; Spring AOP 是基于代理的…

TikTok云手机是什么原理?

随着社交媒体的快速发展和普及&#xff0c;TikTok已成为全球最受欢迎的短视频平台之一&#xff0c;吸引了数以亿计的用户。在TikTok上&#xff0c;许多用户和内容创作者都希望能够更灵活地管理和运营多个账号&#xff0c;这就需要借助云手机技术。那么&#xff0c;TikTok云手机…

windows跳板机配置(端口转发)

目录 前言操作步骤端口防火墙开放测试参考 前言 跳板机一般用于异构网络间的中转站&#xff0c;比如对方在防火墙上只给你开放了一台服务器的权限&#xff0c;你无法访问对方局域网的其它主机&#xff0c;但你能访问的这台服务器则有权限访问其它主机。那么这台服务器就可以作…

基于python失物招领系统-安卓-flask-django-nodejs-php

随着现在网络的快速发展&#xff0c;网络的应用在各行各业当中&#xff0c;利用网络来做这个失物招领的网站&#xff0c;随之就产生了“失物招领 ”&#xff0c;这样用户就可以利用平台来发布信息。 对于本失物招领 的设计来说&#xff0c; 它是应用mysql数据库、安卓等技术动…

GitHub与Git命令使用笔记

GitHub与Git命令使用笔记 文章目录 GitHub与Git命令使用笔记上传本地的新项目到github1. 创建新的GitHub仓库2. 初始化本地项目目录3. 将本地仓库关联到GitHub4. 推送本地代码到GitHub上传本地项目到GitHub时发生冲突 将默认分支名称从master改为main 上传本地的新项目到github…

【YOLOv5改进系列(1)】高效涨点----使用EIoU、Alpha-IoU、SIoU、Focal-EIOU替换CIou

改进IOU损失函数 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 如何添加损失函数1.1 &#x1f393; 修改bbox_iou函数1.2 ✨修改__call__中iou函数 二、2️⃣替换EIOU三、3️⃣替换SIoU四、4️⃣替换Alpha-IoU五、5️⃣替换Focal-EIOU六、6️⃣ 替换后的实验结果 &a…

Scala--03--变量和数据类型

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 变量和数据类型1.注释2 变量和常量&#xff08;重点&#xff09;3 标识符的命名规范4 字符串输出5.IO 输入 输出键盘输入读写文件 IO 6.数据类型&#xff08;重点&a…

3D开发工具HOOPS如何助力3D项目实现扩展现实技术?

在当今数字化时代&#xff0c;扩展现实&#xff08;Augmented Reality&#xff0c;AR&#xff09;技术的应用已经逐渐深入到各行各业&#xff0c;为用户带来了前所未有的沉浸式体验。而在实现这种技术的开发过程中&#xff0c;HOOPS技术的运用无疑是一种强大的助力。HOOPS是一种…