MCU執行AI大勢所趨!看MCU大廠開發工具關鍵佈局

作者:陸向陽

結合了AI與IoT兩大技術的AIoT持續壯大,除了原先的Edge AI,近期更拓展到TinyML領域。本文將以MCU市占率最大的STMicroelectronics(簡稱ST)為例進行觀察,探討其在嵌入式AI的生態系統佈局及發展潛力。
回顧過去,2013年、2014年市場上剛倡議IoT時尚未帶入AI的概念,但在2016年AlphaGo戰勝圍棋棋王後AI開始新一波熱潮,AI與IoT開始相互技術激盪,AIoT一詞開始出現。

不過,這時的AIoT僅是在雲端機房使用AI,尚未推至前端,但2018年底5G通訊話題興起,為了縮短傳輸延遲(latency, lag),有別於過往的3G、4G/LTE,建議在5G基地台(Base-Station,對岸稱為基站)旁設置資料快取系統,或設置能局部代替、暫時代替雲端的系統,此稱之為MEC(Multi-access Edge Computing),邊緣運算(Edge Computing)一詞開始興起。

緊接著AI演算法持續進步,即便降低資料精度(例如自FP32、FP16降至INT8、BF16),仍能維持一定的推論(Inference,或稱推測/推理/推算)準確性,如此使用較低的運算力也能實現推論工作,因此有些推論工作從機房移至邊緣,此稱之為Edge AI。

Edge AI可以分擔雲端的AI工作負荷,或同樣用於加速反應,避免凡事都勞煩到雲端。無論Edge Computing或Edge AI,一開始在5G通訊中指的是MEC部份,但在IoT中指的是閘道器(Gateway, GW)部份。

Edge AI往更邊緣前進:MCU也能執行AI

然而很快的,AI演算法再次精進,同時半導體製程微縮技術也一直持續精進,因而能用更少的運算力就可以執行AI推論工作,以及用相同成本、相同功耗就可以獲得更多晶片運算力,使AI不再侷限於機房或閘道器,甚至可以更向前,進入到IoT的感測器節點(sensor node)內,亦即在MCU晶片內執行AI。

在MCU如此小的裝置內執行AI,也就稱為TinyML(機器學習)或Embedded ML,2019年tinyML基金會(該基金會慣寫成tinyML)成立並開始舉辦年度峰會(Summit),這代表著一個新的里程碑:在整個IoT中的各環節都可能使用AI了!

為了迎向Edge AI時代,Google與TensorFlow社群已針對在雲端執行的TensorFlow進行過瘦身,推出了TensorFlow Lite,能在運算力受限的前端裝置上運作;如今為了能在MCU上執行,再次瘦身推出TensorFlow Lite for Microcontroller(TFLM),顯示連國際級大廠都已開始為深具發展潛力的TinyML進行技術備戰。

所以,TinyML意味著所有IoT Sensor Node都會具有AI能力?事實上仍有難度,高度追求省電的低運算力8-bit MCU依然不適用,16-bit MCU亦然,現階段IoT Sensor Node想執行TinyML,具體而言需要仰賴Arm Cortex-M系列核心才行。

看好TinyML的市場,各MCU業者都積極佈局,由於數量眾多無法逐一談論下,以下將以ST的佈局為例來進一步觀察,畢竟Arm核心的MCU中以ST市占率最大,具有其代表性。

STM32Cube.AI開拓感測應用新視野

ST在32-bit Arm MCU(含MPU)上有一套自主經營的軟體生態系統,圖中有一些是在筆電上執行的各種開發工具;有一些是嵌入式軟體,是可以放到MCU/MPU內執行的程式。STM32Cube本來就用於MCU/MPU程式的開發,而今為了支援TinyML,在現行生態系統中的各部份加入了新的元素,此一新平台稱為STM32Cube.AI,能夠為相機、音訊、運動感測等領域帶來嶄新的應用優勢。

基於MCU的AI可強化的感測技術應用(圖片來源:ST)

由於不同的ST Arm-based MCU晶片中有不同的硬體週邊電路,組態也就各異,這些過去在撰寫程式前需要工程師自行撰寫初始程式去規劃配置,門檻很高,ST為此推出一套組態配置規劃工具 - STM32CubeMX,可以用圖形介面很直覺親和的完成配置,初始程式也就順帶完成。現在為了讓ST Arm-based MCU支援TinyML,這個開發工具成員也進行了改版提升。

STM32CubeMX針對AI需求提出相應功能(圖片來源:ST)

其次,STM32Cube.AI內提供了X-CUBE-AI工具,它在整體生態中屬於Expansions(擴展包)的部份,是一種轉換工具,可以把預先訓練的神經網路自動轉換成最佳化(或稱優化)的函式庫,而後整合到工程師原有的AI開發項目中。

STM32Cube.AI內提供了X-CUBE-AI轉換工具(圖片來源:ST)

提供AI函式包,加速開發工作

進一步的,ST陸續推出各種AI應用的Package,或稱Function pack(函式包,內容主要是函式,但也包含範例程式、驅動程式、中介軟體及相關文件),ST已歸納整理許多已撰寫好並驗證過的函式,MCU的工程師只要善加呼叫(call)這些現成可用的函式,即可加快完成開發工作。

目前ST推出了數個AI專門的STM32CubeMCU Package,如FP-AI-SENSING1、FP-AI-NANOEDG1、FP-AI-VISION1、FP-AI-FACEREC1、FP-AI-CTXAWARE1、X-LINUX-AI等,其中FP-AI-SENSING1主要用AI來辨識音訊或動作;FP-AI-NANOEDG1則用AI來實現各種條件性監督;FP-AI-VISION1則是AI影像辨識;FP-AI-FACEREC1則為AI臉部辨識;FP-AI-CTXAWARE1則是分散式AI的脈絡感知;X-LINUX-AI也是AI影像應用,但屬於MPU晶片與OpenSTLinux的支援。

FP-AI-SENSING1軟體範疇(圖片來源:ST)

FP-AI-SENSING1、FP-AI-VISION1、FP-AI-FACEREC1等既可用於IoT Gateway/Edge AI也可用於Sensor Node/TinyML。另外FP-AI-CTXAWARE1與X-LINUX-AI也同樣偏向Edge AI。不過,Arm核心的晶片若用於IoT Gateway也是偏向瘦身型、輕型取向,這是相對於x86核心的晶片與系統而言,而用於Sensor Node則是偏向中重度度型,這是相對於8051核心或其他4-bit/8-bit MCU而言。

上述Package中,FP-AI-NANOEDG1是安裝在IoT Gateway內執行的,可用AI來預測該IoT Gateway下管控的Sensor Node中哪一個比較可能先用盡電力、或失效運作、或傳輸失敗等。這一套Package是ST與其在2021年7月併購的Cartesiam公司合作開發,該公司還有一套IoT Gateway用的程式開發工具 - NanoEdge AI Studio,可用來搭配自家為IoT Gateway開發的執行函式庫 NanoEdge AI,可以讓程式師快速開發出Edge AI的軟體方案。

NanoEdge AI studio這套開發工具可在Edge端同時實現ML的訓練與推論(圖片來源:ST)

除了強大的生態軟體支援MCU的AI開發外,許多開發者其實需要進行初期的功能功效評估,所以也有許多ST的開發(系統電路)板、開發套件可用,如STM32L562E-DK的探索套件(Discovery Kit)就可用於評估與試用FP-AI-NANOEDG1。此套件內不僅有開發板,也有iNEMO 3軸加速度感測器、3軸陀螺儀、2組MEMS麥克風、解析度240×240的彩色TFT-LCD液晶顯示器模組,還有STLINK-V3E除錯器/讀寫器等。

展望未來

歸結而言,其實TinyML仍在起步階段,後續還會有更多軟硬體的技術發展,相信將有更多新的MCU會試圖加入AI/ML/DL的硬體加速電路,從而讓MCU用更快速省電的方式實現TinyML。

AI演算法也會持續精進,如前所述精度已從FP32、FP16降至BF16、INT8,事實上INT4也早已提出,未來甚可能用INT2或直接0/1(INT1)來進行AI推論運算,屆時已現行MCU的運算力也可以實現許多AI應用,或可能有新的MCU內會設置可大量平行處理INT1/2/4/8乘加運算的電路。

此外,現階段用MCU執行AI推論,主要的硬體資源限制在於MCU內部的SRAM記憶體容量,然SRAM的每一個記憶位元需要較多的電晶體才能實現,耗電較多,直接增加SRAM容量將會增加MCU成本與用電,未來MCU大廠們如何因應與克服此一問題也值得期待。

(責任編輯:謝涵如)

陸向陽

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

發表

跳至工具列