0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CMSIS-NN內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理運(yùn)算 對(duì)運(yùn)行時(shí)間/吞吐量和能效有顯著提升

pmkA_arm_china ? 2018-01-31 11:29 ? 次閱讀

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

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

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

基于CMSIS-NN內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理運(yùn)算 對(duì)運(yùn)行時(shí)間/吞吐量和能效有顯著提升

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

基于CMSIS-NN內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理運(yùn)算 對(duì)運(yùn)行時(shí)間/吞吐量和能效有顯著提升

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

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

基于CMSIS-NN內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理運(yùn)算 對(duì)運(yùn)行時(shí)間/吞吐量和能效有顯著提升

高效的NN內(nèi)核是充分發(fā)揮Arm Cortex-M CPU能力的關(guān)鍵。CMSIS-NN提供了優(yōu)化的函數(shù)來(lái)加速關(guān)鍵的NN層,如卷積,池化和激活。此外,非常關(guān)鍵的是CMSIS-NN還有助于減少對(duì)于內(nèi)存有限的微控制器而言至關(guān)重要的內(nèi)存占用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:想讓你的微控制器效率提升5倍嗎?

文章出處:【微信號(hào):arm_china,微信公眾號(hào):Arm芯聞】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何縮短Vivado的運(yùn)行時(shí)間

    在Vivado Implementation階段,有時(shí)是必要分析一下什么原因?qū)е?b class='flag-5'>運(yùn)行時(shí)間(runtime)過(guò)長(zhǎng),從而找到一些方法來(lái)縮短運(yùn)行時(shí)間。
    的頭像 發(fā)表于 05-29 14:37 ?1.4w次閱讀
    如何縮短Vivado的<b class='flag-5'>運(yùn)行時(shí)間</b>

    發(fā)布MCU上跑的輕神經(jīng)網(wǎng)絡(luò)包 NNoM, 讓MCU也神經(jīng)一把

    Spotting)使用運(yùn)動(dòng)傳感器識(shí)別活動(dòng)狀態(tài) (Human Activity Recognition)神經(jīng)網(wǎng)絡(luò)控制系統(tǒng) (替代PID等傳統(tǒng)控制方法)圖像處理 (帶專(zhuān)用加速器的 MCU)...它輕但不低能, 它支持
    發(fā)表于 05-01 19:03

    CMSIS-NN神經(jīng)網(wǎng)絡(luò)內(nèi)核助力微控制器效率提升

    自然會(huì)想到Arm Cortex-M系列處理器內(nèi)核,那么如果您想要強(qiáng)化它的性能并且減少內(nèi)存消耗,CMSIS-NN就是您最好的選擇?;?b class='flag-5'>CMSIS-NN內(nèi)核
    發(fā)表于 07-23 08:08

    如何設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)圖像壓縮算法?

    處理的運(yùn)算量和數(shù)據(jù)吞吐量。圖像壓縮是信息傳輸和存儲(chǔ)系統(tǒng)的關(guān)鍵技術(shù),然而我們?cè)撊绾芜M(jìn)行FPGA設(shè)計(jì),以實(shí)現(xiàn)給定的功能已經(jīng)成為神經(jīng)網(wǎng)絡(luò)應(yīng)用的關(guān)鍵呢?
    發(fā)表于 08-08 06:11

    CMSIS-NN神經(jīng)網(wǎng)絡(luò)內(nèi)核可以讓微控制器效率提升5倍是真的嗎?

    全新CMSIS-NN神經(jīng)網(wǎng)絡(luò)內(nèi)核讓微控制器效率提升5倍
    發(fā)表于 03-15 06:55

    可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器上實(shí)現(xiàn)關(guān)鍵詞識(shí)別

    的架構(gòu)成為可能,甚至在資源受限的微控制器器件中也運(yùn)行。在 Cortex-M 處理器上運(yùn)行關(guān)鍵詞識(shí)別時(shí),內(nèi)存占用和執(zhí)行時(shí)間是兩個(gè)最重要因素,在設(shè)計(jì)和優(yōu)化用于該用途的
    發(fā)表于 07-26 09:46

    DSP數(shù)字信號(hào)處理和CMSIS-NN神經(jīng)網(wǎng)絡(luò)教程

    之后,開(kāi)啟第2版DSP數(shù)字信號(hào)處理和CMSIS-NN神經(jīng)網(wǎng)絡(luò)教程,同步開(kāi)啟三代示波器。軟件:1、開(kāi)發(fā)板預(yù)裝出廠程序,各種外設(shè)驅(qū)動(dòng)包全做好了,可以檢測(cè)全部硬件功能...
    發(fā)表于 08-04 06:59

    圖像預(yù)處理和改進(jìn)神經(jīng)網(wǎng)絡(luò)推理的簡(jiǎn)要介紹

    提升識(shí)別準(zhǔn)確率,采用改進(jìn)神經(jīng)網(wǎng)絡(luò),通過(guò)Mnist數(shù)據(jù)集進(jìn)行訓(xùn)練。整體處理過(guò)程分為兩步:圖像預(yù)處理和改進(jìn)神經(jīng)網(wǎng)絡(luò)推理。圖像預(yù)處理主要根據(jù)圖像的特征,將數(shù)據(jù)處理成規(guī)范的格式,而改進(jìn)
    發(fā)表于 12-23 08:07

    充分利用Arm NN進(jìn)行GPU推理

    計(jì)算(GPGPU),尤其是用作將運(yùn)算符實(shí)現(xiàn)為計(jì)算著色器的推理引擎的后端。GPU推理不僅具有優(yōu)于CPU推理的性能,還具有其他優(yōu)勢(shì)。在移動(dòng)CPU上執(zhí)行深度
    發(fā)表于 04-11 17:33

    AT32講堂016 | AT32 MCU DSP使用案例和網(wǎng)絡(luò)神經(jīng)算法CMSIS-NN案例

    ()參考AT32_DSP_DEMOprojectat_start_f403aexamples5_11_arm_variance_exampleCMSIS NN with DSP介紹本用戶(hù)手冊(cè)介紹了CMSIS NN軟件庫(kù),這是一個(gè)
    發(fā)表于 08-16 19:40

    ARM Cortex-M系列芯片神經(jīng)網(wǎng)絡(luò)推理庫(kù)CMSIS-NN詳解

    1、ARM Cortex-M系列芯片神經(jīng)網(wǎng)絡(luò)推理庫(kù)CMSIS-NN詳解CMSIS-NN是用于ARM Cortex-M系列的芯片的神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 08-19 16:06

    在Linux上使用Arm NN分析和優(yōu)化運(yùn)行推理的機(jī)器學(xué)習(xí)應(yīng)用程序的步驟

    CPU上運(yùn)行單個(gè)推理;在時(shí)間軸視圖的詳細(xì)信息面板中可以選擇“Arm NN 時(shí)間線(xiàn)”以顯示有關(guān) NN
    發(fā)表于 09-27 14:24

    CMSIS-NN版本轉(zhuǎn)換Arm Cortex-M的神經(jīng)網(wǎng)絡(luò):r0p0指南

    2. 概覽 本指南向您展示了如何將神經(jīng)網(wǎng)絡(luò)從任何框架轉(zhuǎn)換成一個(gè)基于 Arm Cortex-M-M 裝置的實(shí)施工具, 使用 Arm CMSIS- NN 庫(kù)。 此教程用于不再支持的 CMSIS
    發(fā)表于 08-11 07:06

    事隔五年之后,開(kāi)啟第2版DSP數(shù)字信號(hào)處理和CMSIS-NN神經(jīng)網(wǎng)絡(luò)教程,同步開(kāi)啟三代示波器,前50章發(fā)布(2021-11

    事隔五年之后,開(kāi)啟第2版DSP數(shù)字信號(hào)處理和CMSIS-NN神經(jīng)網(wǎng)絡(luò)教程,同步開(kāi)啟三代示波器,前50章發(fā)布(2021-11-02)
    發(fā)表于 11-26 10:36 ?0次下載
    事隔五年之后,開(kāi)啟第2版DSP數(shù)字信號(hào)處理和<b class='flag-5'>CMSIS-NN</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>教程,同步開(kāi)啟三代示波器,前50章發(fā)布(2021-11

    移植CMSIS-NN v6.0.0版本到VisionBoard

    CMSIS-NN是什么?官方的解釋是:CMSISNNsoftwarelibraryisacollectionofefficientneuralnetworkkernelsdevelopedtomaximizetheperformanceandminimizethememoryfootprintofneuralnet
    的頭像 發(fā)表于 07-10 08:35 ?388次閱讀
    移植<b class='flag-5'>CMSIS-NN</b> v6.0.0版本到VisionBoard