全新CMSIS-NN神經(jīng)網(wǎng)絡(luò )內核讓微控制器效率提升5倍

發(fā)布時(shí)間:2018-1-30 17:46    發(fā)布者:eechina


目前,在許多需要在本地進(jìn)行數據分析的“永遠在線(xiàn)”的物聯(lián)網(wǎng)邊緣設備中,神經(jīng)網(wǎng)絡(luò )正在變得越來(lái)越普及,主要是因為可以有效地同時(shí)減少數據傳輸導致的延時(shí)和功耗。 而談到針對物聯(lián)網(wǎng)邊緣設備上的神經(jīng)網(wǎng)絡(luò ),我們自然會(huì )想到Arm Cortex-M系列處理器內核,那么如果您想要強化它的性能并且減少內存消耗,CMSIS-NN就是您最好的選擇;贑MSIS-NN內核的神經(jīng)網(wǎng)絡(luò )推理運算,對于運行時(shí)間/吞吐量將會(huì )有4.6X的提升,而對于能效將有4.9X的提升。

CMSIS-NN庫包含兩個(gè)部分: NNFunction和NNSupportFunctions。 NNFunction包含實(shí)現通常神經(jīng)網(wǎng)絡(luò )層類(lèi)型的函數,比如卷積(convolution),深度可分離卷積(depthwise separable convolution),全連接(即內積inner-product), 池化(pooling)和激活(activation)這些函數被應用程序代碼用來(lái)實(shí)現神經(jīng)網(wǎng)絡(luò )推理應用。 內核API也保持簡(jiǎn)單,因此可以輕松地重定向到任何機器學(xué)習框架。NNSupport函數包括不同的實(shí)用函數,如NNFunctions中使用的數據轉換和激活功能表。 這些實(shí)用函數也可以被應用代碼用來(lái)構造更復雜的NN模塊,例如, 長(cháng)期短時(shí)記憶(LSTM)或門(mén)控循環(huán)單元(GRU)。

對于某些內核(例如全連接和卷積),會(huì )使用到不同版本的內核函數。 我們提供了一個(gè)基本的版本,可以為任何圖層參數“按原樣”通用。 我們還部署了其他版本,包括進(jìn)一步的優(yōu)化技術(shù),但會(huì )對輸入進(jìn)行轉換或對層參數有一些限制。 理想情況下,可以使用簡(jiǎn)單的腳本來(lái)分析網(wǎng)絡(luò )拓撲,并自動(dòng)確定要使用的相應函數。



我們在卷積神經(jīng)網(wǎng)絡(luò )(CNN)上測試了CMSIS-NN內核,在CIFAR-10數據集上進(jìn)行訓練,包括60,000個(gè)32x32彩色圖像,分為10個(gè)輸出類(lèi)。 網(wǎng)絡(luò )拓撲結構基于Caffe中提供的內置示例,具有三個(gè)卷積層和一個(gè)完全連接層。 下表顯示了使用CMSIS-NN內核的層參數和詳細運行時(shí)結果。 測試在運行頻率為216 MHz的ARM Cortex-M7內核STMichelectronics NUCLEO-F746ZG mbed開(kāi)發(fā)板上進(jìn)行。



整個(gè)圖像分類(lèi)每張圖像大約需要99.1毫秒(相當于每秒10.1張圖像)。 運行此網(wǎng)絡(luò )的CPU的計算吞吐量約為每秒249 MOps。 預量化的網(wǎng)絡(luò )在CIFAR-10測試集上達到了80.3%的精度。 在A(yíng)RM Cortex-M7內核上運行的8位量化網(wǎng)絡(luò )達到了79.9%的精度。 使用CMSIS-NN內核的最大內存占用空間為〜133 KB,其中使用局部im2col來(lái)實(shí)現卷積以節省內存,然后進(jìn)行矩陣乘法。 沒(méi)有使用局部im2col的內存占用將是〜332 KB,這樣的話(huà)神經(jīng)網(wǎng)絡(luò )將無(wú)法在板上運行。

為了量化CMSIS-NN內核相對于現有解決方案的好處,我們還使用一維卷積函數(來(lái)自CMSIS-DSP的arm_conv),類(lèi)似Caffe的pooling和ReLU來(lái)實(shí)現了一個(gè)基準版本。 對于CNN應用,下表總結了基準函數和CMSIS-NN內核的比較結果。 CMSIS-NN內核的運行時(shí)間/吞吐量比基準函數提高2.6至5.4倍。 能效提高也與吞吐量的提高相一致。



高效的NN內核是充分發(fā)揮ARM Cortex-M CPU能力的關(guān)鍵。 CMSIS-NN提供了優(yōu)化的函數來(lái)加速關(guān)鍵的NN層,如卷積,池化和激活。 此外,非常關(guān)鍵的是CMSIS-NN還有助于減少對于內存有限的微控制器而言至關(guān)重要的內存占用。 更多細節在我們的白皮書(shū)中您可以讀到,您可以使用下面的按鈕從康奈爾大學(xué)圖書(shū)館網(wǎng)站下載。

CMSIS-NN內核可在github.com/ARM-software/CMSIS_5上找到。 應用 代碼可以直接使用這些內核來(lái)實(shí)現Arm Cortex-M CPU上的神經(jīng)網(wǎng)絡(luò )算法。 或者,這些內核可以被機器學(xué)習框架用作原語(yǔ)函數(primitives)來(lái)部署訓練過(guò)的模型。

如需進(jìn)一步資源,更詳細的產(chǎn)品信息和教程,幫助您解決來(lái)自邊緣ML的挑戰,請訪(fǎng)問(wèn)我們的新機器學(xué)習開(kāi)發(fā)者網(wǎng)站。

參考:CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs White Paper

本文地址:http://selenalain.com/thread-522715-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页