7.11. NPU:er

H7 och RT1062 kör inferens på en Cortex-M-CPU genom TFLM och CMSIS-NN. AE3 och N6 lägger till en dedikerad NPU på samma kiselbricka – en tensorpipeline i fast kisel som kör de tunga operatorerna utan att uppta CPU:n. De två NPU:erna i OpenMV:s sortiment kommer från olika tillverkare och deras verktygskedjor är olika, men kameran exponerar båda genom samma ml.Model-API. Det som skiljer är filen på disk och den körtid som går igenom den.

7.11.1. AE3 – Arm Ethos-U55

AE3 bär en Arm Ethos-U55-NPU på samma kiselbricka som applikationskärnan Cortex-M55. Vela är offline-kompilatorn som förbereder en modell för den: Vela tar in en standard-.tflite och avger en .tflite vars NPU-dugliga subgrafer har vikts in i en anpassad Ethos-U-operator som bär de byte-kommandon som NPU:n kör. Vid inferens går TFLM igenom filen som vanligt; Ethos-U-operatorn skickar sina byte-kommandon genom Ethos-U-drivrutinen, och varje operator som Vela inte vek in faller tillbaka till CMSIS-NN på M55.

7.11.2. N6 – ST Neural-ART

N6 bär ST:s Neural-ART-NPU och kör STAI – ST:s körtid för den – i stället för TFLM. STEdgeAI är offline-kompilatorn: den tar in en modell och avger en omplaceringsbar nätverksblob upplagd för Neural-ART-hårdvaran. STAI laddar bloben från ROMFS och går igenom den direkt på NPU:n. Operatortäckningen är vad STEdgeAI än stöder för delen.

7.11.3. Samma skript, olika kamera

Båda NPU:erna exponerar samma in- och ut-tensorer med samma kvantiseringsparametrar som en CPU-körd modell skulle göra. Ett skript skrivet mot en kamera körs på en annan genom att ladda en modellfil förberedd för den kamerans NPU. Detekteringströsklar, ROI-hantering och kopplingen av efterbehandlaren – besluten på skriptnivå – ändras inte.