7.11. NPU-uri

H7 și RT1062 rulează inferența pe un CPU Cortex-M prin TFLM și CMSIS-NN. AE3 și N6 adaugă un NPU dedicat pe același cip – o conductă de tensori în siliciu fix care rulează operatorii grei fără a ocupa CPU-ul. Cele două NPU-uri din gama OpenMV provin de la furnizori diferiți, iar lanțurile lor de instrumente sunt diferite, dar camera expune ambele prin aceeași API ml.Model. Ce diferă este fișierul de pe disc și runtime-ul care îl parcurge.

7.11.1. AE3 – Arm Ethos-U55

AE3 poartă un NPU Arm Ethos-U55 pe același cip cu nucleul de aplicație Cortex-M55. Vela este compilatorul offline care pregătește un model pentru el: Vela ia la intrare un .tflite standard și emite la ieșire un .tflite ale cărui subgrafuri eligibile pentru NPU au fost concentrate într-un operator personalizat Ethos-U care poartă comenzile pe octeți pe care le rulează NPU-ul. La momentul inferenței, TFLM parcurge fișierul în mod normal; operatorul Ethos-U distribuie comenzile sale pe octeți prin driverul Ethos-U, iar orice operator pe care Vela nu l-a concentrat revine la CMSIS-NN pe M55.

7.11.2. N6 – ST Neural-ART

N6 poartă NPU-ul Neural-ART al ST și rulează STAI – runtime-ul ST pentru el – în locul TFLM. STEdgeAI este compilatorul offline: ia un model la intrare și emite un blob de rețea relocabil aranjat pentru hardware-ul Neural-ART. STAI încarcă blob-ul din ROMFS și îl parcurge direct pe NPU. Acoperirea operatorilor este oricare o suportă STEdgeAI pentru componenta respectivă.

7.11.3. Același script, cameră diferită

Ambele NPU-uri expun aceiași tensori de intrare și de ieșire cu aceiași parametri de cuantizare pe care i-ar avea un model rulat pe CPU. Un script scris pentru o cameră rulează pe alta prin încărcarea unui fișier de model pregătit pentru NPU-ul acelei camere. Pragurile de detectare, gestionarea ROI și conectarea post-procesorului – deciziile la nivel de script – nu se schimbă.