Arm为Cortex-M添加了神经网络指令
Arm已经在其Cortex-M架构中添加了神经网络处理指令,针对物联网网络外部边缘的产品,例如可以识别少量语音而无需连接到云的设备,例如人声唤醒命令。
“M-Profile Vector Extensions”(MVE)已经在“Helium”品牌下宣布,与该公司的高端Cortex-A内核的Neon SIMD(单指令多数据)扩展非常类似。氦扩展还将处理数字信号处理,提供比现有DSP指令更高的性能,这些指令是为了将Cortex-M3转换为Cortex-M4而创建的。
Arm将Helium描述为“针对M-profile架构量身定制的Neon技术的优化SIMD功能,以及针对新兴用例的新编程功能和数据类型”。
与标准的32位Armv8-M指令一起使用固定长度的128位向量(具有聚集负载和散布存储,低开销循环和预测)和增加的算术支持(固定和浮点,包括半精度和单精度浮点数和8位整数和复杂数学,由150条指令共同覆盖,包括8位向量点积。
同时,支持新指令的硬件包括通过“TrustZone for Armv8-M”扩展和PSA原则的安全功能。
总体而言,从现有的Armv8.1-M指令集架构(ISA)可以看出,与现有的Armv8-M架构(基于int32中的复杂FFT估算)相比,预计性能提升高达5倍,高达15倍机器学习(基于int8中的矩阵乘法)。
Armv8.1-M核心实施选项包括:
省略了氦,带有可选的标量浮点(带或不带双精度支撑)
氦只支持向量整数,带有可选的标量浮点(带或不带双精度支持)
具有向量整数加浮点的氦(支持矢量单精度和半精度),带标量浮点(带或不带双精度支持)
那么指令集指令是否会导致硅足迹大幅增加?
不,根据Arm,特别是在执行氦指令时将重新使用一些现有的v8-M硬件。没有确切的数据发布。
除语音处理外,还可以预见振动分析和视觉应用。
如今,多个供应商的工具链和模型都可以使用。包括Armv8.1-M在内的硅产品有望在两年内上市。
除了矢量处理,Helium亮点还包括:
交织和解交织加载和存储指令(VLD2 / VST2,步长为2,VLD4 / VST4,步长为4)
向量收集载荷和向量散布存储向量寄存器中元素的存储器访问,使用另一个向量寄存器中的元素定义向量中每个元素的地址偏移量。
允许软件处理任意存储器访问模式,并可用于模拟特殊寻址模式,如循环寻址,这些模式通常用于信号处理。
还可以帮助加速各种数据处理任务中数组中数据元素的非顺序访问向量复数值处理支持整数(8,16和32位)和浮点数(32位),例如VCADD,VCMUL,VCMLA指令车道预测位整数支持。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java学习笔记——dubbo服务之底层通讯协议Protocol
我们先来找到通讯协议的入口点吧。通过Protocol接口查找通讯协议入口点,我们根据接口的export方法搜索发现入口了,在ServiceConfig的doExportUrlsFor1Protocol方法,如下图: 然后我们进入 protocol.export(invoker)方法发现有很多实现类,根据spi(不懂的请看之前写的容器篇)查看配置文件能找到如下 registry=com.alibaba.dubbo.registry.integration.RegistryProtocol dubbo=com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol//这个是默认的,我们在Protocol接口上可以看到spi的注解 filter=com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper listener=com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper mock=com.alibaba.dubbo.rpc.support.MockP...
- 下一篇
go微服务框架go-micro深度学习(四) rpc方法调用过程详解
上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取server的地址信息,就可以和服务建立连接,然后就可以进行通信了。这篇帖子详细说一下,go-micro的通信协议、编码,和具体服务方法的调用过程是如何实现的,文中的代码还是我github上的例子:gomicrorpc go-micro 支持很多通信协议:http、tcp、grpc等,支持的编码方式也很多有json、protobuf、bytes、jsonrpc等。也可以根据自己的需要实现通信协议和编码方式。go-micro 默认的通信协议是http,默认的编码方式是protobuf,我就以默认的方式来分解他的具体实现。 服务的启动 go-micro在启动的时候会选择默认通信协议http和protobuf编码方式,但他是如何路由到具体方法的?在go-micro服务端启动的时候我们需要注册Handler,也就是我们具体实现结构体 ,如例子中注册方法时,我们调用的RegisterSayHandler方...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池