Arm已經在其Cortex-M架構中添加了神經網絡處理指令,針對物聯(lián)網網絡外部邊緣的產品,例如可以識別少量語音而無需連接到云的設備,例如人聲喚醒命令。
“M-Profile Vector Extensions”(MVE)已經在“Helium”品牌下宣布,與該公司的高端Cortex-A內核的Neon SIMD(單指令多數(shù)據(jù))擴展非常類似。氦擴展還將處理數(shù)字信號處理,提供比現(xiàn)有DSP指令更高的性能,這些指令是為了將Cortex-M3轉換為Cortex-M4而創(chuàng)建的。
Arm將Helium描述為“針對M-profile架構量身定制的Neon技術的優(yōu)化SIMD功能,以及針對新興用例的新編程功能和數(shù)據(jù)類型”。
與標準的32位Armv8-M指令一起使用固定長度的128位向量(具有聚集負載和散布存儲,低開銷循環(huán)和預測)和增加的算術支持(固定和浮點,包括半精度和單精度浮點數(shù)和8位整數(shù)和復雜數(shù)學,由150條指令共同覆蓋,包括8位向量點積。
同時,支持新指令的硬件包括通過“TrustZone for Armv8-M”擴展和PSA原則的安全功能。
總體而言,從現(xiàn)有的Armv8.1-M指令集架構(ISA)可以看出,與現(xiàn)有的Armv8-M架構(基于int32中的復雜FFT估算)相比,預計性能提升高達5倍,高達15倍機器學習(基于int8中的矩陣乘法)。
Armv8.1-M核心實施選項包括:
省略了氦,帶有可選的標量浮點(帶或不帶雙精度支撐)
氦只支持向量整數(shù),帶有可選的標量浮點(帶或不帶雙精度支持)
具有向量整數(shù)加浮點的氦(支持矢量單精度和半精度),帶標量浮點(帶或不帶雙精度支持)
那么指令集指令是否會導致硅足跡大幅增加?
不,根據(jù)Arm,特別是在執(zhí)行氦指令時將重新使用一些現(xiàn)有的v8-M硬件。沒有確切的數(shù)據(jù)發(fā)布。
除語音處理外,還可以預見振動分析和視覺應用。
如今,多個供應商的工具鏈和模型都可以使用。包括Armv8.1-M在內的硅產品有望在兩年內上市。
除了矢量處理,Helium亮點還包括:
交織和解交織加載和存儲指令(VLD2 / VST2,步長為2,VLD4 / VST4,步長為4)
向量收集載荷和向量散布存儲向量寄存器中元素的存儲器訪問,使用另一個向量寄存器中的元素定義向量中每個元素的地址偏移量。
允許軟件處理任意存儲器訪問模式,并可用于模擬特殊尋址模式,如循環(huán)尋址,這些模式通常用于信號處理。
還可以幫助加速各種數(shù)據(jù)處理任務中數(shù)組中數(shù)據(jù)元素的非順序訪問向量復數(shù)值處理支持整數(shù)(8,16和32位)和浮點數(shù)(32位),例如VCADD,VCMUL,VCMLA指令車道預測位整數(shù)支持。