7.11. NPUs

Der H7 und der RT1062 führen die Inferenz über TFLM und CMSIS-NN auf einer Cortex-M-CPU aus. Der AE3 und der N6 ergänzen eine dedizierte NPU auf demselben Die – eine Tensor-Pipeline in fester Hardware, die die schwergewichtigen Operatoren ausführt, ohne die CPU zu belegen. Die beiden NPUs in OpenMVs Produktreihe stammen von unterschiedlichen Herstellern und ihre Toolchains sind verschieden, doch die Kamera stellt beide über dieselbe ml.Model-API bereit. Was sich unterscheidet, ist die Datei auf dem Datenträger und die Laufzeit, die sie durchläuft.

7.11.1. AE3 – Arm Ethos-U55

Der AE3 trägt eine Arm-Ethos-U55-NPU auf demselben Die wie der Cortex-M55-Anwendungskern. Vela ist der Offline-Compiler, der ein Modell dafür vorbereitet: Vela nimmt eine standardmäßige .tflite entgegen und gibt eine .tflite aus, deren NPU-fähige Subgraphen in einen benutzerdefinierten Ethos-U-Operator gefaltet wurden, der die Byte-Befehle trägt, die die NPU ausführt. Zur Inferenzzeit durchläuft TFLM die Datei normal; der Ethos-U-Operator weist seine Byte-Befehle über den Ethos-U-Treiber zu, und jeder Operator, den Vela nicht gefaltet hat, fällt auf CMSIS-NN auf dem M55 zurück.

7.11.2. N6 – ST Neural-ART

Der N6 trägt STs Neural-ART-NPU und führt STAI – STs Laufzeit dafür – anstelle von TFLM aus. STEdgeAI ist der Offline-Compiler: Er nimmt ein Modell entgegen und gibt einen relozierbaren Netzwerk-Blob aus, der für die Neural-ART-Hardware angeordnet ist. STAI lädt den Blob aus ROMFS und durchläuft ihn direkt auf der NPU. Die Operatorabdeckung ist das, was STEdgeAI für das Bauteil unterstützt.

7.11.3. Gleiches Skript, andere Kamera

Beide NPUs stellen dieselben Eingangs- und Ausgangstensoren mit denselben Quantisierungsparametern bereit wie ein CPU-ausgeführtes Modell. Ein Skript, das für eine Kamera geschrieben wurde, läuft auf einer anderen, indem eine für die NPU dieser Kamera vorbereitete Modelldatei geladen wird. Erkennungsschwellenwerte, ROI-Behandlung und die Verdrahtung des Post-Processors – die Entscheidungen auf Skriptebene – ändern sich nicht.