7.11. NPU’s¶
De H7 en de RT1062 draaien inferentie op een Cortex-M-CPU via TFLM en CMSIS-NN. De AE3 en de N6 voegen een toegewijde NPU toe op dezelfde die – een tensorpijplijn in vast silicium die de zware operatoren uitvoert zonder de CPU te bezetten. De twee NPU’s in OpenMV’s assortiment komen van verschillende leveranciers en hun toolchains verschillen, maar de cam stelt beide beschikbaar via dezelfde ml.Model-API. Wat verschilt is het bestand op schijf en de runtime die het doorloopt.
7.11.1. AE3 – Arm Ethos-U55¶
De AE3 draagt een Arm Ethos-U55 NPU op dezelfde die als de Cortex-M55-applicatiekern. Vela is de offline compiler die er een model voor voorbereidt: Vela neemt een standaard .tflite in en levert een .tflite uit waarvan de NPU-geschikte subgraphs zijn samengevouwen tot een custom Ethos-U-operator die de byte-commando’s draagt die de NPU uitvoert. Tijdens inferentie doorloopt TFLM het bestand normaal; de Ethos-U-operator stuurt zijn byte-commando’s via de Ethos-U-driver, en elke operator die Vela niet samenvouwde valt terug op CMSIS-NN op de M55.
7.11.2. N6 – ST Neural-ART¶
De N6 draagt ST’s Neural-ART NPU en draait STAI – ST’s runtime daarvoor – in plaats van TFLM. STEdgeAI is de offline compiler: hij neemt een model in en levert een verplaatsbare netwerk-blob uit die is opgezet voor de Neural-ART-hardware. STAI laadt de blob uit ROMFS en doorloopt hem direct op de NPU. De operatordekking is wat STEdgeAI ondersteunt voor het onderdeel.
7.11.3. Zelfde script, andere cam¶
Beide NPU’s stellen dezelfde invoer- en uitvoertensoren beschikbaar met dezelfde kwantisatieparameters als een model dat op de CPU zou draaien. Een script dat tegen één cam is geschreven draait op een andere door een modelbestand te laden dat voor de NPU van die cam is voorbereid. Detectiedrempelwaarden, ROI-afhandeling en post-processor-bedrading – de beslissingen op scriptniveau – veranderen niet.