2022年10月18日 星期二

MCU攜手NPU讓tinyML邁向新里程碑

去(2021)年9月時小弟曾寫過一篇「當智慧物聯網(AIoT)遇上微型機器學習(tinyML)是否會成為台灣單晶片(MCU)供應鏈下一個新商機!?」[1]。其中對通用型單晶片(Micro Controller Unit, MCU) 的歷史及台灣投入現狀有完整的整理。同時也清楚說明了智慧物聯網(Artificial Intelligence + Internet of Thing, AIoT) 微型機器學習(Tiny Machine Learning, tinyML) 的概念及兩者間的關係。文中也提出MCU等級的AI應用開發流程及台灣廠商面臨的機會與挑戰。但是,一年過去了,台灣方面廠商似乎沒有太多動靜,相較於對岸及國際上如火如荼的開展,不免有些感嘆。於是再次動筆寫下這一年觀察到的趨勢,整理了5大技術、40個產品和11家模型自動優化(AutoML)平台分享給大家,希望能引起更多人關注。也期望台灣廠商能更重視這個新興市場,投入更多資源,以免錯失下一個黃金十年。

 

認識神經元、神經網路及卷積神經網路

從[1]文中可知,目前tinyML最主要應用為智能感測器,如聲音(麥克風)、環境(溫度、濕度、氣壓、照度)、運動(加速度、陀螺儀、地磁計)等。而視覺部份(影像感測器)則由於對算力(含時脈速度)、程式碼空間(Flash)及隨機記憶體(SRAM)需求較高,所以僅適用在較高階MCU,主要應用則落在較小尺寸影像分類及物件偵測,而影像分割或姿態估測等就較少出現在tinyML應用上。

在說明MCU和NPU如何協助tinyML前,這裡還是得簡單說明一下深度學習技術發展脈絡及基礎原理,以便大家更容昜理解如何實現MCU等級的AI應用及為何要使用 神經網路處理器(Neural network Processing Unit, NPU)

2012年Alex Krizhevsky使用 卷積神經網路(Convolutional Neural Network, CNN) 狂勝ImageNet影像辨識大賽後,正式開啟了 人工智慧(Artificial Intelligence, AI)深度學習(Deep Learning, DL) 風潮。而其中最重要的核心元素就是神經元、神經網路及卷積神經網路。這裡就直接借用去(2021)年小弟曾寫過的系列文章「iThome 2021 (13屆) 鐵人賽【arm platforms組】完賽記錄 ─ 爭什麼,把AI和MCU摻在一起做tinyML就對了!」[2]中的「[Day 04]深度學習與神經網路」, 「[Day 05]tinyML與卷積神經網路(CNN)」來說明。

如Fig. 1左側所示,為基本神經元結構,假設有三個輸入值X1到X3和三個權重值(Weight) W1到W3,神經元會將所有輸入乘以各自權重值後加總,再加上一個偏置量(Bias),最後再配合一個激勵函式(Activation Function)得到輸出值。而如Fig. 1右側所示,即為最簡單的全連結(Full Connected)神經網路架構,主要可分為輸入層、隱藏層和輸出層,有時也會把神經網路稱為「模型」。其中隱藏層層數及各層的神經元數量皆可自由調整。當隱藏層層數大於一時又可稱為 深度神經網路(Deep Neural Network, DNN) 。從這裡已經可以看到需要大量的 乘積累加運算(Multiply Accumulate, MAC) 才能完成輸出值計算。而這樣的結構通常只適用少量輸入值及少量輸出值的應用,剛好符合智能感測器應用的需求。


Fig. 1 神經元及神經網路基本架構圖[2]。(OmniXRI整理理繪製,2021/9/17) (點擊圖放大)

接下來就以小型影像分類最知名的CNN模型LeNet-5進行手寫數字(MNIST)辨識為例說明。從Fig. 2中可看到,一張32x32像素的灰階影像,經過多次卷積、池化後,最後展平、全連結後即可得到十個數字的置信度(機率),而數值最高的就是推論出來的結果。這個小模型權重值就有6萬多個,總MAC計算次數更高達42萬多次,其中前兩段的卷積計算更佔了36萬多次,超過85%。


Fig. 2 LeNet-5卷積神經網路結構圖[2]。(OmniXRI整理繪製, 2021/9/18) (點擊圖放大)

從Fig. 3中可看到CNN所應用到的基本元素原理,包括卷積、池化、展平、全連結及Softmax輸出。其中最耗費計算量的就是卷積。如Fig. 3左上圖示,一個3x3的卷積核(Kernel)要計算一個卷積值出來就要使用9次乘法和9次乘法。一個3x3的卷積核對4x4矩陣進行卷積就要36次乘法和36次乘法才能完成。若將其等比放大,大家就能理解為何需要極高的算力才能完成卷積神經網路的計算了。

因此如何讓這樣的乘積累加工作大量平行化、高速化,就變成tinyML成功導入的關鍵了。

 

Fig. 3 卷積神經網路基本元素說明圖[2]。(OmniXRI整理繪製, 2021/9/18) (點擊圖放大)


目前要讓MAC計算加快的思路大概有「提高工作時脈速度」、「平行/向量指令集加速」、「多核心加速」、「NPU神經網路加速器」、「SOC混合型晶片(MPU)」及「AutoML模型優化平台」等方式,以下就對較具代表性的產品及技術做一簡單說明。


1. 提高工作時脈速度

從[1]文中可知,從第一顆MCU上市至今已四十多年。早期的Intel 8048工作時脈速度(Clock Speed)只有6 MHz,執行一個指令要6個週期,實際運算速度只有1 MIPS(每秒百萬指令)。大家常用的Arduino Uno R3的ATmega328P則有16 MIPS。到現在ST的STM32H7工作時脈已達550 MHz,執行速度增加不止500倍。所以相同的程式不用作任何修改,換一個工作時脈快一點的MCU就能讓乘加速度提升。

早期的MCU只能處理整數(INT8)的加法及乘法,但加法只需一個指令週期,而乘法則依不同設計方式需要3~32個指令週期才能完成運算。2004年arm[3]推出Cortex-M3後才開始有1個指令週期的乘法指令出現。不過要到了arm Cortex-M4後才開始能支援單精度浮點數(FP16)加法及乘法指令。

早期在處理一些聲音訊號時,常需要用到像快速傅立葉轉換(FFT)的計算,由於需要大量的乘加計算(MAC),於是有了專用的 數位信號處理器(Digital Signal Processor, DSP) 出現。arm在Cortex-M3推出時就在指令集中加入32位元乘加指令「MLA」,即可讓R4=R1∗R2+R3這樣的乘加運算在一個指令週期完成,企圖取代DSP的市場。後來更在Cortex-M4擴增了更多DSP指令集(含32/64bit浮點數及飽和運算指令),使得MCU的運算能力有了大幅提升。更多關於arm Cortex-M指令集說明可參考[2]中「[Day 06]tinyML的重要推手arm Cortex-M MCU」。

因此MCU工作時脈的提升及乘加指令的出現,展開了MAC加速計算的第一步。此時在相同工作時脈下至少提升二倍速度。

另外這裡會衍生一個評估算力的單位 OPS(Operation per Sencod) ,通常會以每秒百萬次(10^6)操作MOPS或每秒十億次(10^9)操作GOPS或每秒一兆次(10^12)操作TOPS來表示。但至於一次操作是只有表示一次加法或者只有一次乘法,還是一次操作就含一次乘加運算,會依不同硬體會不同表示方式,運算能力差一倍,要特別注意。

 

2. 平行/向量指令集加速

有了乘加指令後,下一步就是如何在一道指令中完成更多的乘加動作,於是就有了單指令多資料流(Single Instruction Multiple Data, SIMD)的概念被推出。如Fig. 4右側上方所示,如果要對4組資料進行加法時,需要執行4次加法。如Fig. 4右側下方所示,若採用SIMD做法時,只要準備好4筆被加數及4筆加數,則一道指令就能完成4組加法,速度瞬間提升4倍。

不過這種作法主要適用於高位元數指令集,如32bit指令集,就能將其拆成2個16bit或4個8bit的數值運算。若為更高位元數如64/128/256/512bit就能拆解成更多組的資料同時運算。這裡以知名MCU arm Cortex-M系列為例,如Fig. 3左側所示,Cortex-M3 v7-M指令集就開始支援乘加指令,如MLA。到了Cortex-M4/M7就能支援擴展DSP V7E-M指令集(含SIMD指令集),所以目前市售最常見的tinyML開發板多半以Cortex-M4/M7為主流。最新的Cortex-M55更能支援向量擴充(MVE)指令集(類似Cortex-A的高階SIMD-NEON向量運算指令集)[2]。


Fig.4 arm Cortex指令集比較及SIMD概念圖。(OmniXRI整理製作,2022/10/17) (點擊圖放大)

近年來RISC-V技術興起,所以也有很多MCU開始採用,不再讓arm Cortex-M系列專美於前。RISC-V除了基本運算的指令集外,也有DSP擴充指令集(P Extention, RVP)和向量擴充指令集(V Extension, RVV)加入。如Fig. 5所示,RVP就是SIMD指令,可將兩個16bit運算合併在一個32bit指令運算,如此就能得到2倍的運算效率。而RVV就類似arm NEON向量運算指令集,可指定一堆特定向量暫存器,一口氣把所有運算完成,達到更高倍率的運算能力。

目前台灣晶心科技[4]為RISC-V IP主要供應商,其AX25系列可支援RVP指令集,而NX27V系列則可支援RVV 1.0指令集。而知名RISC-V晶片供應商SiFive[5]的X280系列亦可支援RVV指令集。



Fig.5 RISC-V RVV及RVP擴充指令集示意圖。(OmniXRI整理製作,2022/10/17) (點擊圖放大)

 

3. 多核心加速

另一種增加運算速度的思路就是增加MCU核心數。一般來說一個MCU只有一個核心,但隨著半導體技術演進,同質多核心及大小核心甚至混合arm和RISC-V的MCU也陸續出現。這樣的作法除可增加運算速度外,通常也有分工作業的意圖,甚至可以利用其中一個核心來運行小型作業系統(如arm Mbed, RTOS, ROS等),達到多工運行的目的。以下就簡單列舉幾個相關產品,如Fig. 6所示。

 

Fig. 6 多核心單晶片相關產品。(OmniXRI整理製作, 2022/10/17) (點擊圖放大)

 

3.1 Raspberry RP2040系列

樹莓派基金會於2021年發行了Raspberry Pi Pico,其核心晶片RP2040號稱只要一美金,於是開始有很多廠商以此設計了很多開發板,由Fig.。這款晶片主要是使用arm Cortex-M0+,它具有2個核心,工作時脈高達133MHz,搭配264KB SRAM, 2MB Flash,可以運行MicroPython, C++,甚至有人把RTOS移植到開發板上。

RP2040非常受歡迎,目前有多款開發板都能支援tinyML開發,以下就簡單列出幾款。如果不太在意計算速度時,Pico4ML-BLE也是有搭配影像感測器,可以完成一些tinyML影像分類應用。

  • Raspberry Pi Pico / Pico W [6]
  • Arduino Nano RP2040 [7]
  • Arducam Pico4ML-BLE [8]
  • 矽遞(Seeed) XIAO RP2040 [9]
  • 微雪(Waveshare) RP2040-Zero [10]

 

 3.2 晶心科技AX45MP系列

由於RISC-V指令集部份採取開源方式在推廣,所以有很多矽智財(IP)廠商協助將其整合成可以生產的晶片。由於設計上具有很高彈性,所以根據客戶需求從2~1000核心皆可,很適合用於AI加速計算使用。目前台灣晶心科技為主要RISC-V IP供應商,其AX45MP系列[11]就是64bit 4核心的標準設計,方便使用者直接採用。

 

3.3 Sony Spresense

現有市售開發板中,Sony Spresnese[12]大概是核心數最多的單晶片了。它擁有6個arm Cortex-M4核心,工作時脈高達156MHz,搭配有1.5MB SRAM, 8MB Flash,6核心共用。這款開發板可搭配影像感測器,完成一些簡易型tinyML影像分類及物件偵測工作。使用時,可以選擇使用多個核心加速同一個模型的推論,或者讓多個核心分別同時處理不同的模型,或者部份核心用於推論而部份核心用於處理其它工作皆可。

 

4. NPU神經網路加速器

透過上面的介紹,雖然已可加速MAC的計算數倍到數十倍,但面對像CNN這樣龐大的計算量時仍明顯不足,尤其是在影像類應用。一般如果是在桌機或筆電上開發或執行AI應用時可以使用GPU來幫忙加速運算,但在小型邊緣智能裝置上通常沒有GPU,此時就需要額外加裝 神經網路加速器(Neural Network Processing Unit, NPU) ,即俗稱的AI晶片,來代替GPU。此類晶片就是專門用來處理大量乘加計算用的,一道指令就能同時執行數百到數千個乘加計算。依不同晶片用途,有些只能處理8bit整數(INT8),有些能處理16/32bit浮點數(FP16/FP32)計算,甚至有些可以處理最新的BF16格式浮點數。

 目前常見的通用型AI推論晶片有耐能(Kneron)的KL520 / KL720 / KL530[13],Intel神經運算棒2(Myraid X, Neural Compute Stick 2, NCS2)[14],Google Edge TPU Coral[15]、嘉楠勘智K210 / K510[16]等。這些晶片除了可和MCU直接焊在同一塊板子外,為了方便使用也常製作成小型介面卡,如USB, mini-PCIE, M.2等。

幾年前各家IC設計公司看到邊緣智慧裝置(Edge AI Device)智慧物聯網(AIoT)離線計算風潮的興起,於是就開始著手設計把MCU和NPU塞入同一顆晶片中,讓使用者能開發出面積更小的板子,同時擁有更高的算力,更低的功耗及價格。經過這一、兩年的努力,這些晶片及相關開發板已陸續上市,相信在各位開發者的努力下,明年應會有嶄新的tinyML及AIoT生態系產生。以下就把目前已官宣或上市的產品簡單盤點一下,讓有興趣使用的朋友能提早做準備,迎接新的藍海市場。


4.1 ALIF Ensemble系列

arm於2020年2月宣佈推出Cortex-M55 MCU + Ethos U55 NPU的IP組合,經過了兩年,ALIF推出了Ensemble系列產品[17],其中整合了1到4核心的MCU, NPU及MPU,如下所示。

  • E1: (M55 @160MHz + U55 @128MAC/c)
  • E3: (M55 @160MHz + U55 @128MAC/c) + (M55 @400MHz + U55 @256MAC/c)
  • E5: (M55 @160MHz + U55 @128MAC/c) + (M55 @400MHz + U55 @256MAC/c) + (A32 @800MHz)
  • E7: (M55 @160MHz + U55 @128MAC/c) + (M55 @400MHz + U55 @256MAC/c) + (A32 @800MHz)x2


以MobileNet V2進行推論測試時,一組M55+U55就比前一代的Cortex-M快了800倍,也比單獨M55時快了78倍。

目前E7晶片也有推出對應的模組板及擴充底板,如Fig. 7所示。不過目前僅在推廣階段,想要使用要直接和原廠連絡。


Fig.7 ALIF Ensemble E7模組板及擴充底板[18]。(OmniXRI整理製作,2022/10/17) (點擊圖放大)

 

4.3 NXP MCX-N系列

據NXP官網釋出資料[22]及相關報導[23],如Fig. 9所示,MCX系列包含四個分支,而MCX-N即MCU + NPU系列。其中MCU主核心為arm Cortex-M33(ARMv8-M指令集),工作時脈150M~250MHz,具鎮搭配有1MB SRAM, 4MB Flash。另外自帶NPU(32~2K OP/c),其效能比單獨M33運行快至少30倍。目前該系列產品僅有官網介紹及部份商品在相關展會中推出,至於MCX-N何時會上市,看來就只能再等等了。


Fig.9 NXP MCX-N基本規格及NPU效能表[22]。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


4.4 NXP i.MX系列

NXP早期有和Google的Edge TPU(Coral)合作,用兩顆晶片的方式做成小型AI加速計算開發模組及開發板。如Fig. 10所示,目前較高階的i.MX 8M Plus[24]和i.MX 93[25]系列除了主核心arm Cortex-A本身的NEON(高階SIMD/向量運算)加速外,皆已內建NPU,以滿足更高算力需求。以下就簡單比較一下其差異。

i.MX 8M Plus

CPU: arm Cortex-A53 x4, 1.8GHz, Cortex-M7 x1, 800MHz
GPU: GC7000, 16GFLOPS
NPU: 2.3TOPS,支援ONNX, TensorFlow Lite, DeepViewRT。

i.MX 93

CPU: arm Cortex-A55 x2, 1.7GHz, Cortex-M33 x1, 250MHz
GPU: 2D GPU
NPU: arm Ethos U65,支援TensorFlow Lite。

另外CPU Cortex-A部份亦可用於AI計算,i.MX 8M Plus可支援PyTorch, ONNX, TensorFlow Lite, OpenCV, DeepViewRT,但i.MX 93只支援TensorFlow Lite和 DeepViewRT。TensorFlow Lite軟體堆疊(software stack)在處理時會依CPU(Cortex-A), NPU+GPU(i.MX 8 series), Ethos-U(i.MX 93)等不同硬體加速運算採用不同的處理方式。

目前i.MX 8M Plus已在市面上可買到相關晶片及開發板,而i.MX 93可能還要再等等。更多關於i.MX系列有關機器學習相關內容,可參考官方文件[26]說明。


Fig.10 NXP i.MX 8M Plus和i.MX 93。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


4.5 REALTEK RTL8735B

瑞昱(Realtek)是台灣少數能提供MCU + RF解決方案的晶片供應商,以往的Ameba系列應用在物聯網(IoT)相當受到大家歡迎。最近他們出了Ameba Pro 2系列[27],以RTL8735B為主要晶片,其核心為arm 32bit v8M指令集MCU(官網未說明,猜想可能是M33、M35P或M55之類的),工作時脈最高可達500MHz,搭配768KB ROM, 512K RAM, DDR2 128MB。晶片有支援WiFi 2.4GHz/5GHz, BLE4.2。另外自帶Integrated Intelligent Engine(即NPU)算力有0.4TOPS。如Fig. 10所示,目前提供兩種開發板,AMB82(大板,全引腳功能)及AMB82-MINI(小板,可直接攝影機模組,具SD卡槽)。


Fig.11 REALTEK Ameba Pro 2開發板示意圖。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


4.6 離線語音辨識(MCU+DSP+NPU)

以往智能音箱由於需求明確,就是為了偵測喚醒詞(Wakeup Word Detecion, Keyword Spotting),所以就出現了數十家公司設計專門用於喚醒詞辨識的AI晶片。近來為了更彈性應用,於是有了MCU + DSP + NPU三合一的晶片出現,方便達成離線智能語音控制電氣產品及互動的目的。這裡簡單列舉兩個產品進行說明,如Fig. 11所示。


普林芯馳(Spacetouch)

智能離線語音交互MCU SPV20系列[28]同時具有CPU、DSP及NPU,以下就簡單列出重要規格。

MCU:
SiFive E21 RISC-V 32bit核心,工作時脈96MHz,具有硬體乘法器,256KB SRAM,2/4 MB Flash。
DSP:
CEVA TL420核心,工作時脈192MHz,48KW DTCM,8KW PTCM,16KW PCache,兩個16x16 MAC。
NPU:
8bit 定點數運算,自有算法支持100個語音控制命令,支援CNN, DS-CNN等深度壓縮語音辨識模型。


杭州國芯(Nationalchip)

GX8009 AI語音SoC芯片 / GX8010 物聯網人工智能芯片[29],這兩款晶片主要都結合了一個大核MPU、一個小核MCU、DSP及NPU。以下就列出重要規格。

MPU:
arm Cortex-A7 1GHz
MCU:
32bit RISC-V 150MHz
DSP:
Tensilica Hifi-4, 400MHz
NPU:
MPU內含64xMAC, MCU內含32xMAC,可用於矩陣乘加、卷積、點乘等功能。
更多GX8009/8010技術文件可參考官方文件[30]。


Fig.12 普林芯馳及杭州國芯智能語音晶片。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


4.7 ST STM32N6

據報導[31]ST將於2022年底推出MCU + NPU(ST Neural-ART)的解決方案,名稱為「STM32N6」,報導中推估可能arm Cortex-M55 + Ethos U55的組合,不過目前ST官方並沒有釋出更進一步說明,就有待時間來證明。


5. SOC混合型晶片(MPU)

本文主要是介紹以MCU等級的AI應用為主,以上內容只適用於較小型的Edge AI及AIoT產品,但如果需要大一些的AI應用,就要用到 單板微電腦(Single Board Computer, SBC) (如樹莓派、Nvidia Jetson Nano, Asus TinkerBoard或一般手機、平板等)所使用的晶片,此時主要核心晶片多半是較高等級的 微處理器(Micro Processing Unit, MPU) ,如arm Cortex-R, Cortex-A等,或者是 系統級晶片(System on Chip, SoC) (內含多核CPU, DSP, GPU, NPU, ISP等),如聯發科天璣、Google Pixel、Apple Bionic等。

當然隨著主核心晶片算力提升,AI應用的規模加大(如影像分割、姿態估測、對話機器人等),內建NPU也變成基本配備。而這類的NPU大多數也能支持常見的TensorFlow, PyTorch, ONNX等AI框架,算力也至少有1TOPS以上。如Fig. 13所示,以下就簡單列舉幾個自帶NPU之MPU或SoC及對應的開發板。

聯發科(MediaTek) 天璣Dimensity 720/MT6853[32]
CPU: arm Cortex-A76 x4 2GHz, Cortex-A55 x4 2GHz
GPU: arm Mali-G57 MC3
NPU: 1TOPS
對應開發板: XY6853A 5G安卓智能核心板[33]

瑞芯微電子(Rockchip) RK3399PRO[34]
CPU: arm Cortex-A72 x2, 1.8GHz, Cortex-A53 x4, 1.4GHz
GPU: arm Mali-T860 MP4, 800MHz
NPU: 1920 INT8 MACs, 192 INT16 MACs, 64 FP16 MACs
支援TensorFlow / TF Lite / Caffe / ONNX / Darknet AI框架, Android NN API / RKNN / Rock-X SDK AI工具
對應開發板: Bearkey TB-96AI RK3399Pro核心板[35]

瑞芯微電子(Rockchip) RK3588S[36]
CPU: 8核 arm Cortex-A76 + A55 2.4GHz
GPU: 4核 arm Mali-G610 MP4
NPU: 6 TOPS
支援INT4/INT8/INT16/FP16/BF16/TF32,TensoFlow / MXNet / PyTorch / Caffe框架
對應開發板: Khadas Edge 2[37], Firefly ROC-RK3588S-PC[38]

全志(Allwinner) V853[39]
CPU: arm Cortex-A7 1.0GHz, RISC-V E907 600MHz
NPU: 1TOPS
支援OpenCV, TensorFlow, PyTorch, Caffe TFLite, Darknet Theano AI框架,OpenCL, OpenVX, Android NN, ONNX API。
對應開發板: V853開發板[40]

瑞薩(Renesas) RZ/V2MA[41]
CPU: arm Cortex-A53 x2, 1.0GHz
NPU: DRP-AI 1.0TOPS/W (TinyYoloV3 52fps)
支援 DRP-AI TVM / ONNX / PyTorch / OpenCV
對應開發板: SHIMAFUJI RZ/V2MA evaluation kit[42]


Fig.13 常見自帶NPU之MPU或SoC開發板。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


6. AutoML模型優化平台

在MCU上運行AI時,有時常因模型太大塞不進,或者推論所需記憶不足,或者推論速度不夠快,此時可能就需要進行模型優化工作。一般模型優化常見作法有參數量化、模型剪枝、權重共享、知識蒸餾等手法,但這些工作太過複雜,非一般MCU或AI工程師有辦法獨立完成,因此就要借助專業的AutoML工具來幫忙優化。所謂AutoML就是透過程式自動找出合適的模型架構、超參數,並自動重新訓練得到多組理想的模型,讓使用者能依模型大小、記憶體需求、推論精度或速度來選擇最終要部署在MCU的模型。

目前已有許多tinyML開發平台廠商提供此類AutoML模型優化工具[43],如Fig. 14所示。如果想更進一步了解其原理、操作模式及推論效果,可自行點擊下列清單連結。

 

Fig.14 常見提供AutoML的tinyML平台廠商。(OmniXRI整理製作,2022/10/17) (點擊圖放大)


 小結

 要在MCU上運行AI模型要克服的工作很多,從算力、記憶體大小、儲存空間、功耗、價格等。透過本文的介紹相信大家都已對如何克服算力問題已有一些認識。隨著MCU內建NPU的產品陸續問世,算力大幅提升,相信不久的將來,離線(不上網)就能完成AI運算就不再是遙不可及的夢想,tinyML也能從此邁向新的里程碑了。

 

 參考文獻

 [1] 許哲豪,當智慧物聯網(AIoT)遇上微型機器學習(tinyML)是否會成為台灣單晶片(MCU)供應鏈下一個新商機!?
https://omnixri.blogspot.com/2021/09/aiottinymlmcu.html

[2] 許哲豪,iThome 2021 (13屆) 鐵人賽【arm platforms組】完賽記錄 ─ 爭什麼,把AI和MCU摻在一起做tinyML就對了!
https://omnixri.blogspot.com/2021/10/ithome-2021-13-arm-platforms-aimcutinyml.html

[3] arm — 產品 — 處理器IP
https://www.arm.com/zh-TW/products/silicon-ip-cpu

[4] 晶心科技(Andes Tech.) — Processors
http://www.andestech.com/tw/產品與解決方案/andescore-processors/

[5] SiFive — Product — Core IP
https://www.sifive.com/risc-v-core-ip

[6] Raspberry Pi Pico / Pi Pico W
https://www.raspberrypi.com/products/raspberry-pi-pico/

[7] Arduino Nano RP2040 Connect
https://docs.arduino.cc/hardware/nano-rp2040-connect

[8] Arducam Pico4ML-BLE
https://www.arducam.com/arducam-pico4ml-ble-version/

[9] 矽遞(Seeed) XIAO RP2040
https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html

[10] 微雪(Waveshare) RP2040-Zero
https://www.waveshare.net/shop/RP2040-Zero.htm

[11] 晶心(AndesCore) AX45MP
https://www.andestech.com/en/products-solutions/andescore-processors/riscv-ax45mp/

[12] Sony Spresense
https://developer.sony.com/develop/spresense/

[13] 耐能(Kneron) AI System on Chip (SoC)
https://www.kneron.com/tw/page/soc/

[14] Intel Neural Compute Stick 2 (NCS2)
https://www.intel.com/content/www/us/en/developer/tools/neural-compute-stick/overview.html

[15] Google Edge TPU Coral — Products
https://coral.ai/products/

[16] 嘉楠(Canaan) — 勘智AI K210/K510
https://canaan-creative.com/product/kendryteai

[17] ALIF Semiconductor — Ensemble
https://alifsemi.com/ensemble/

[18] Edge Impulse Blog — Announcing Official Support for the Alif Ensemble E7 Development Kit
https://www.edgeimpulse.com/blog/announcing-official-support-for-the-alif-ensemble-e7-development-kit


[22] NXP — MCX General-Purpose MCUs
https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/mcx-cortex-m:MCX-MCUS

[23] Electronics Weekly — Embedded World: NXP MCX MCUs
https://www.electronicsweekly.com/news/products/micros/embedded-world-nxp-replaces-lpc-kinetis-new-mcu-families-2022-06/

[24] NXP — Processors and Microcontrollers — i.MX 8M Plus
https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-applications-processors/i-mx-8m-plus-arm-cortex-a53-machine-learning-vision-multimedia-and-industrial-iot:IMX8MPLUS

[25] NXP — Processors and Microcontrollers — i.MX 93
https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-9-processors/i-mx-93-applications-processor-family-arm-cortex-a55-ml-acceleration-power-efficient-mpu:i.MX93

[26] NXP — i.MX Machine Learning User’s Guide
https://www.nxp.com/docs/en/user-guide/IMX-MACHINE-LEARNING-UG.pdf

[27] Realtek — AmebaPro2 Boards
https://www.amebaiot.com/zh/amebapro2/

[28] 普林芯馳 — 智能離線語音交互MCU
http://www.spacetouch.co/product/bendiyuyin/

[29] 杭州國芯 — 產品中心 — 人工智能
http://www.nationalchip.com/index.php/products/2

[30] 杭州國芯 — 產品簡介 — GX8010
https://ai.nationalchip.com/docs/gx8010/

[31] eeNews Europe — ST to launch its first neural microcontroller with NPU
https://www.eenewseurope.com/en/st-to-launch-its-first-neural-microcontroller-with-npu/

[32] 聯發科(MediaTek) 天璣Dimensity 720/MT6853
https://www.mediatek.tw/products/smartphones-2/dimensity-720

[33] XY6853A 5G安卓智能核心板
http://www.new-mobi.com/news/74-cn.html

[34] 瑞芯微電子(Rockchip) RK3399PRO
https://www.rock-chips.com/a/en/products/RK33_Series/2018/0130/874.html

[35] Bearkey TB-96AI RK3399Pro核心板
https://www.bearkey.com.cn/products/TB-96AI.html

[36] 瑞芯微電子(Rockchip) RK3588S
https://www.rock-chips.com/a/en/products/RK35_Series/2022/0926/1660.html

[37] Khadas Edge2
https://www.khadas.com/edge2

[38] Firefly ROC-RK3588S-PC
https://www.t-firefly.com/product/industry/rocrk3588spc

[39] 全志(Allwinner) V853
https://v853.docs.aw-ol.com/

[40] V853開發板
https://v853.docs.aw-ol.com/hard/hard_1board/

[41] 瑞薩(Renesas) RZ/V2MA
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-cortex-a-mpus/rzv2m-dual-cortex-a53-lpddr4x32bit-ai-accelerator-isp-4k-video-codec-4k-camera-input-fhd-display-output

[42] SHIMAFUJI RZ/V2MA evaluation kit
http://www.shimafuji.co.jp/en/products/2044

[43] tinyML — State of the tinyAutoML Market 2022
https://www.tinyml.org/static/3eccc61369f52aaeb2d8eea64e13e6e7/State-of-the-tinyAutoML-Market.pdf


3 則留言:

  1. 感謝分享, 另請問老師, 有關 Fig.3 "平均池化"左上角格子內的 5.0 是否算錯?!

    回覆刪除
  2. 因特殊原因,刪除 4.2節及參考文獻[19]~[21]內容,敬請見諒!

    回覆刪除

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST) 人工智慧與邊緣運算實務 開南大學...