7.11. NPU

H7 a RT1062 provádějí inferenci na procesoru Cortex-M přes TFLM a CMSIS-NN. AE3 a N6 přidávají na tentýž čip vyhrazenou NPU – tenzorový řetězec v pevném křemíku, který provádí náročné operátory, aniž by zatěžoval procesor. Obě NPU v nabídce OpenMV pocházejí od různých výrobců a jejich toolchainy se liší, ale kamera zpřístupňuje obě přes totéž API ml.Model. Liší se soubor na disku a běhové prostředí, které jím prochází.

7.11.1. AE3 – Arm Ethos-U55

AE3 nese NPU Arm Ethos-U55 na tomtéž čipu jako aplikační jádro Cortex-M55. Vela je offline kompilátor, který pro ni model připravuje: Vela přijme standardní .tflite na vstupu a vydá .tflite na výstupu, jehož podgrafy způsobilé pro NPU byly složeny do vlastního operátoru Ethos-U nesoucího bajtové příkazy, které NPU spouští. Při inferenci TFLM prochází soubor běžně; operátor Ethos-U odesílá své bajtové příkazy přes ovladač Ethos-U a každý operátor, který Vela nesložila, se vrátí k CMSIS-NN na M55.

7.11.2. N6 – ST Neural-ART

N6 nese NPU Neural-ART od ST a místo TFLM provozuje STAI – běhové prostředí od ST pro ni. STEdgeAI je offline kompilátor: přijme model na vstupu a vydá přemístitelný síťový blob uspořádaný pro hardware Neural-ART. STAI načte blob z ROMFS a prochází jím přímo na NPU. Pokrytí operátorů je takové, jaké STEdgeAI pro danou součástku podporuje.

7.11.3. Stejný skript, jiná kamera

Obě NPU zpřístupňují stejné vstupní a výstupní tenzory se stejnými kvantizačními parametry, jaké by měl model běžící na procesoru. Skript napsaný pro jednu kameru běží na jiné tím, že se načte soubor modelu připravený pro NPU dané kamery. Prahy detekce, zacházení s ROI a zapojení post-procesoru – rozhodnutí na úrovni skriptu – se nemění.