黄片视频免费看偷偷操,AV网址大全成人,高清一区视频二区欧美日韩国产,毛片不卡在线免费观看

中文English
中文English

Arm MCU在邊緣AI落地的方法

欄目:行業資訊 發布時間:2019-09-25 作者: 魯?冰 來源: EEPW
分享到:
Arm MCU在邊緣AI落地的方法

 

Arm MCU在邊緣AI落地的方法

作者:魯 冰時間:2019-09-25來源:電子產品世界收藏

  魯?冰?(《電子產品世界》編輯)

本文引用地址:http://www.eepw.com.cn/article/201909/405225.htm

  (人工智能)在M級的便宜的小器件上能不能落地?它需要什么資源,性能又怎么樣?不久前,Arm中國攜手恩智浦半導體在全國進行了巡回講演。Arm中國高級市場經理Eric Yang分享了的基礎知識,分析認為邊緣可以通過在MCU這樣的小芯片上實現,并推介了Arm的軟件中間件NN——可以有效地對接算法和具體芯片,最后列舉出了的應用案例。

  1 邊緣AI潛力巨大

  AI有沒有前途?

  前兩年AI非常火,AI公司支付的薪水很高。不過,2019年上半年以來,很多AI公司活得并不是很好。AI到底有沒有機會?還需不需要關注?

  如果借鑒歷史,大約在5億年前是單細胞生物,之后生物學上出現了寒武紀大爆發,產生了大量的新生物,其中帶智能的生物慢慢進化出來。

  現在從嵌入式或者產業角度來看,有點類似于寒武紀的前夕。如果從身邊去觀察,會發現無論是生活還是工作環境安裝了很多傳感器,而且傳感器有越來越多的趨勢。Arm的孫正義先生認為,現在還是百億級、千億級傳感器的量,到2025年會有約1萬億的設備連上傳感器,相當于2025年時到了寒武紀大爆發時期。

  不過,那么多傳感器相連,如果都靠傳統的計算方式,即完全是靠你的算法或控制去實現一些功能/性能的時候,是有很大的瓶頸的。所以大量傳感器可能會采用AI技術,一部分AI在云端,更多的是在嵌入式端。

  2 AI中遇到的概念

  AI、機器學習(ML)、深度學習(DL),這些概念到底什么關系?

  AI是用機器來模擬人的思維習慣,讓機器來達到人的決策的能力。要實現這一功能,就需要讓機器做學習,這主要是通過概率論、統計論之類的方法,讓機器找到算法,以實現機器能夠學習這樣的功能(如圖1)。

微信截圖_20191010094300.png

  實現機器學習里面有種方法叫深度學習。深度學習相當于你準備大量的數據,然后放到那個模型里邊去,讓它學會“感知+判斷+思維”的能力。在深度學習下面,會有我們經常聽到的算法,諸如、RNN等。

  3

  在機器學習方面有兩個方面需要去理解:訓練和推斷。第一是若在云端,叫訓練,云端需要有巨大的數據量做訓練;第二是設備端。設備端主要是做推斷,即把云端訓練好的模型思維方式下載到設備端,設備端再根據獲得的信號得出一個推斷的結果。

  訓練需要大量的數據,需要非常高的性能、大量的帶寬去實現。所以一般要在服務器、GPU、加速卡上運行。

  在設備端,因為已經有現成的訓練模型,所以只做判斷/推斷,相對來講要考慮的地方較為簡單,例如性能方面,中低端的性能就可實現;效率方面,包括成本效率、功耗效率;再有,因為設備端涉及到聯網,還要有安全隱私的考慮。

  那么,哪些功能適合放在設備端或服務器端/云端?如圖2,分別從AI的3個典型應用——視覺、音頻以及健康管理來分析。圖2左都是大型的機器學習,在服務器上面,圖2右是設備端可以實現的應用與技術。

微信截圖_20191010094323.png

  以視覺來看,首先,如果做具體物體的識別,例如,這是一條狗,這條是什么品種的狗,或者人臉識別,這種方式基本上放在服務器端。如果做類的識別,例如是狗、車還是飛機,這種識別就可以放在設備端了。CIFAR-10就是一種常用來做的標準模型。

  例如在音頻方面,如果只是做一個關鍵字的識別,或簡單的一個命令的識別,可以放在設備端;如果是做語義的識別(例如你講一句話,讓機器知道你的意思,回答你下一句話),通常放在云端/服務器端。

  同樣,在健康管理方面,如果讓手機、手環或智能手表做一個動作的識別,例如解釋你是在走路、跑步還是蹲下,這可在設備端實現;如果要是做具體的疾病識別,要放在服務器端實現。

  在嵌入式系統里面,做ML要考慮哪些因素?列表如表1所示。

  首先在系統層,你要考慮到效率,因為嵌入式設備一般都會有成本的考慮,因為量非常大,布設的端點非常多。另外是功耗的考慮,有的設備涉及到電池供電。之后還有帶寬,因為需要跟服務器/云去通訊。最后還需要考慮到隱私和加密。

  在AI部分,可能你要考慮到的你輸入的種類、參數、轉換的效率、你要得到結果的精度、你所選用的設備的算法,或者你要達到這樣精度要消耗的內存資源。

  在ML部分經常聽到一些算法,諸如、DNN、RNN、LSTN。這些算法對應的常用的應用場景,例如CNN適合視覺識別、圖片識別,DNN比較適合語音識別。

  表2是Arm做的不同ML算法在不同的內存資源和CPU資源情況下得到的結果。

 

1570671873268176.png

1570671873824242.png

  可見準確度、消耗的資源跟你的系統呈對應關系。例如分散式CNN算法可以達到95%的準確度,最小的時候可能只占了不到40 kB內存,消耗的CPU運算能力只有5.4MOps,這相當于人們常見的M0嵌入式設備就能運行起來。可見,在Arm生態系統里,從M0到M7,都可以在這些芯片上面去實現ML功能(如圖3)。這顛覆了人們以前的觀念——一定要有很大的GPU、服務器、手機平臺等去做。

  在硬件方面,Arm推動MCU芯片合作伙伴,加外設、加功能去做具體芯片出來。同樣,在軟件方面,Arm也提供了軟件中間件,叫。

  4

  該軟件中間件的一個出發點是全球比較大的一些公司,包括國內的百度、阿里等經常無償地提供機器學習的算法,讓免費使用,以在其服務器上得到接口。但落地時候怎么辦?因為不同公司會提供不同種類的算法,如果你對每種算法都去做支持,整個開發維護的工作量會非常大的,尤其對于嵌入式設備的廠家更是如此。

微信截圖_20191010094445.png

  Arm在中間做了一個標準化的接口優化。上面直接去對接算法,下面去對接具體的硬件。這就把AI機器學習當做是一個以前的通訊庫,或者是API來用,就可以了。圖4是具體應用的流程。

  在Cortex-M上來實現的軟件庫,是在2018年1月發布的,是開源的,你可以看到所有源代碼,因此不會存在安全、自主可控的困惑。

  不僅如此,現在NN 還 針 對 大 核 , 例 如系列以及Mali GPU,也是開源的,于2018年年中發布。

  至此,可以運行在Arm所有CPU上。

  相比只從那些算法公司下載開源程序、把它移植到Arm CPU上去運行,分別對卷積、池化以及激活函數方面做對比,對比圖如圖5。可見在池化時,用CMSIS-NN,可以達到4.6倍性能的提升。

微信截圖_20191010094507.png

  CMSIS-NN效率很高。恩智浦半導體做的一個在相同的硬件環境下,CMSIS-NN與的性能對比。采用的芯片分別是Cortex-M4和的 芯 片 , 在 做 C I F A R - 1 0 時 ,(注:提供的嵌入式版本的CNN模型)用約120 ms才能完成某個識別;只需要20 ms左右。

  CMSIS-NN一直在更新,基本上每個季度有優化版。

  5 用CMSIS-NN做ML的應用案例

微信截圖_20191010094521.png

  第一個應用是CMSIS-NN如何與恩智浦半導體的AI平臺——eIQ平臺對接(如圖6)。它是把算法集成好,對用戶來講,首先是找到一個事先做好的模型,選擇是否也需要做壓縮的算法。如果不做壓縮,就把它做模型轉換到Cortex-M系列里的語言里。只需要把傳感器的信號輸入,恩智浦的芯片(例如:i.MX RT)就會做出一個決策。

  實際上,用芯片做成的產品已有商用化的案例。美國的Amiko公司做的哮喘治療器(如圖7)采用ML算法來做監測、統計。它的原理比較簡單,其中的傳感器可以識別幾個內容。第一,把設備從正常的狀態顛倒過來,變成放到嘴里的狀態。其次,它可以監測到吸入的流量大小。實現方法是:在云端做好了一個模型之后,它可以通過這模型來指導這個吸入哮喘劑是否正確,以及吸的量夠不夠。