## 出處Posted By owenou on 1 月 9, 2024 in Arm, Edge AI解決方案, Edge AI開發地圖, TensorFlow, Vela Compiler, 技術導讀 |
作者:歐敏銓
日前Edge AI Taiwan版主Jack大大推了一支影片,點擊率不高,但蠻有料的,看完有些想法,就用Google加ChatGPT查了些資料,且來整理一下分享。
首先是這支影片:
這是Edge AI晶片新創Alif的影片,影片中Plumerai這家公司說明他們如何設計和訓練AI人物偵測(Person Detection)模型的步驟,然後將其整合和移植到搭載Ethos-U55的Alif Ensemble微控制器上,可以實現電池供電型的即時人物偵測應用。目前人物偵測的影像辨識功能大多採用CPU/GPU等級的方案,Plumerai則證實在嵌入式系統上建置也已大有可為了。
影片中Alif代表也秀了一張圖(如下),說明了他們的差異化定位:採用32-bit MCU加整合運算單元,填補目前市場上AI運算的空缺領域(50-250GOPS),可在低功耗裝置上實現物件/人臉辨識、姿態辨識和語言辨識等AI應用。
而Alif的技術架構(見本文介紹),其實是站在ARM的Edge AI運算架構的基礎之上發展出來的,也是MCU廠商擁抱AI運算的主流架構:以ARM 的神經處理單元(NPU)- Ethos-U 搭配Cortex-A 和 Cortex-M 核心來支持各種機器學習工作負載,實現從視覺處理到自然語言處理的嵌入式和移動應用。
ARM NPU – Ethos-U技術架構
至於Ethos-U 的技術架構呢,則搜尋到這篇NXP的教學文,其中有一圖介紹了Ethos-U此一子系統的功能架構:
從圖中可看出,Ethos-U子系統中涵蓋了不同的硬體單元,包括Cortex-M、Ethos-U NPU(U65/U55)、SRAM和消息單元(MU)。在運作上主要由 Cortex-A55 負責載入機器學習模型,並與 Linux OS 和程式庫一起捕獲和預處理動態輸入,而Cortex-M 則控制著連接的 Ethos-U NPU,準備 NPU 的卸載描述符(offloading descriptor)並觸發 NPU 執行。MU 則是消息單元 IP,促進了 Cortex-A 和 Cortex-M 之間的核心通信。
這架構支持 TensorFlow Lite(TFLite)推論,可以fallback到相應的 Cortex-A 核心;同時支持 TensorFlow Lite Micro(TFLite-Micro)推論,可以fallback到相應的 Cortex-M 核心。它還支持推論 API,以將整個模型卸載到 TFLite-Micro 和 Cortex-M 上的 NPU。此外,它們提供了 Vela 模型工具,以優化 Ethos-U 目標的模型性能和記憶體使用。
Ethos-U 軟體架構
進一步來看Ethos-U的軟體運作架構如下:
在 Ethos-U 軟體架構中,有三個主要組件:Vela 模型編譯器、Cortex-A 軟體堆棧(software stack)和 Cortex-M 軟體堆棧。Vela 模型編譯器用於編譯 TFLite 模型圖以適應 Ethos-U,將模型中的支持運算符替換為包含 Ethos-U NPU 命令流的自定義“ethos-u”運算符,要在 Ethos-U 上部署 NN 模型,第一步是使用 Vela 工具編譯準備好的模型。為了能夠由 Ethos-U NPU 加速,網絡運算符必須被量化為 8 位(unsigned or signed)或 16 位(signed)。想進一步認識Vela Compiler,可參考本文。
Cortex-A 軟體堆棧包含 MPU 推理引擎(TensorFlow Lite)、驅動程式庫和用於 Linux 核心的Kernel-side設備驅動程序。而 Cortex-M 軟體堆棧則包含 MCU 推論引擎軟體(TFLite-Micro、CMSIS-NN)和 NPU 驅動程序。
小結
Edge AI真正走到「Edge」端的嵌入式裝置,從軟硬體技術方案來看,愈來愈可行了。不過,技術到位,不表示容易開發和上手,如何將在效能、功耗、尺寸等現實條件中取得平衡,永遠是嵌入系統開發上的挑戰,也是樂趣所在吧。