Arm為Cortex M新增了神經網路指令

2021-09-19 18:49:43 字數 1301 閱讀 7799

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指令車道**位整數支援。

為純Python搭建的神經網路新增Dropout

之前在自學神經網路的時候,一般都是呼叫當前主流的框架,例如keras tensorflow等等。不得不說keras是乙個極其簡單的框架,在它的中文文件可以輕鬆找到關於dropout的呼叫方法。然而最近由於學習的需要,網路是自己手動搭建的,又在訓練中遇到了過擬合的情況,於是需要自己在網路中手動加入dr...

Python神經網路整合技術Guide指南

python神經網路整合技術guide指南 本指南將介紹如何載入乙個神經網路整合系統並從python執行推斷。提示所有框架的神經網路整合系統執行時介面都是相同的,因此本指南適用於所有受支援框架 包括tensorflow pytorch keras和torchscript 中的模型。打包神經網路整合系...

Python神經網路整合技術Guide指南

python神經網路整合技術guide指南 本指南將介紹如何載入乙個神經網路整合系統並從python執行推斷。提示所有框架的神經網路整合系統執行時介面都是相同的,因此本指南適用於所有受支援框架 包括tensorflow pytorch keras和torchscript 中的模型。打包神經網路整合系...