7.11. NPU

H7 與 RT1062 透過 TFLMCMSIS-NN 在 Cortex-M CPU 上執行推論。AE3 與 N6 則在同一晶粒上額外加入一個專用 NPU——一條位於固定矽電路中的張量管線,能在不佔用 CPU 的情況下執行重量級運算子。OpenMV 產品線中的這兩個 NPU 來自不同的供應商,其工具鏈也各不相同,但相機透過同一套 ml.Model API 來公開兩者。不同之處在於磁碟上的檔案以及走訪它的執行期。

7.11.1. AE3——Arm Ethos-U55

AE3 在與 Cortex-M55 應用核心相同的晶粒上搭載了一個 Arm Ethos-U55 NPU。Vela 是為它準備模型的離線編譯器:Vela 接收一個標準的 .tflite 並輸出一個 .tflite,其中可由 NPU 處理的子圖已被摺疊成一個自訂的 Ethos-U 運算子,該運算子攜帶了 NPU 所執行的位元組命令。在推論時,TFLM 會正常走訪該檔案;Ethos-U 運算子透過 Ethos-U 驅動程式分派其位元組命令,而任何 Vela 未摺疊的運算子則退回到 M55 上的 CMSIS-NN

7.11.2. N6——ST Neural-ART

N6 搭載 ST 的 Neural-ART NPU,並執行 STAI——ST 為它提供的執行期——以取代 TFLM。STEdgeAI 是其離線編譯器:它接收一個模型並輸出一個為 Neural-ART 硬體佈局的可重定位網路二進位資料(blob)。STAI 從 ROMFS 載入該 blob,並直接在 NPU 上走訪它。運算子涵蓋範圍取決於 STEdgeAI 針對該晶片所支援的內容。

7.11.3. 相同指令碼,不同相機

兩個 NPU 都以與 CPU 執行的模型相同的量化參數,公開相同的輸入與輸出張量。針對某一台相機撰寫的指令碼,只要載入為該相機 NPU 所準備的模型檔案,就能在另一台相機上執行。偵測閾值、ROI 處理以及後處理器的接線——這些指令碼層級的決策——都不會改變。