DSP

Arm为Cortex-M添加了神经网络指令

2019-07-13 20:38发布

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指令车道预测位整数支持。