7.11. NPU:t¶
H7 ja RT1062 suorittavat päättelyn Cortex-M-suorittimella TFLM:n ja CMSIS-NN:n kautta. AE3 ja N6 lisäävät samalle piille omistetun NPU:n – kiinteässä piissä toteutetun tensoriputken, joka suorittaa raskaat operaattorit kuormittamatta suoritinta. OpenMV:n mallistossa olevat kaksi NPU:ta tulevat eri valmistajilta ja niiden työkaluketjut ovat erilaiset, mutta kamera tarjoaa molemmat saman ml.Model-API:n kautta. Eroa on levyllä olevassa tiedostossa ja sitä käyvässä ajonaikaisessa ympäristössä.
7.11.1. AE3 – Arm Ethos-U55¶
AE3:ssa on Arm Ethos-U55 -NPU samalla piillä kuin Cortex-M55-sovellusydin. Vela on offline-kääntäjä, joka valmistelee mallin sitä varten: Vela ottaa sisään tavallisen .tflite-tiedoston ja tuottaa ulos .tflite-tiedoston, jonka NPU-kelpoiset aliverkot on taitettu mukautetuksi Ethos-U-operaattoriksi, joka kantaa NPU:n suorittamat tavukomennot. Päättelyhetkellä TFLM käy tiedoston läpi normaalisti; Ethos-U-operaattori ohjaa tavukomentonsa Ethos-U-ajurin kautta, ja jokainen operaattori, jota Vela ei taittanut, palautuu CMSIS-NN:lle M55:ssä.
7.11.2. N6 – ST Neural-ART¶
N6:ssa on ST:n Neural-ART -NPU, ja se ajaa STAI:ta – ST:n ajonaikaista ympäristöä sille – TFLM:n sijaan. STEdgeAI on offline-kääntäjä: se ottaa sisään mallin ja tuottaa siirrettävän verkkoblobin, joka on aseteltu Neural-ART-laitteistolle. STAI lataa blobin ROMFS:stä ja käy sitä suoraan NPU:lla. Operaattorituki on se, mitä STEdgeAI kyseiselle osalle tukee.
7.11.3. Sama skripti, eri kamera¶
Molemmat NPU:t tarjoavat samat syöte- ja tulostetensorit samoilla kvantisointiparametreilla kuin suorittimella ajettu malli tarjoaisi. Yhdelle kameralle kirjoitettu skripti toimii toisella lataamalla kyseisen kameran NPU:lle valmistellun mallitiedoston. Tunnistuksen kynnysarvot, ROI-käsittely ja jälkikäsittelyn kytkennät – skriptitason päätökset – eivät muutu.