7.11. NPU’lar¶
H7 ve RT1062, çıkarımı TFLM ve CMSIS-NN aracılığıyla bir Cortex-M CPU üzerinde çalıştırır. AE3 ve N6, aynı yonga üzerine özel bir NPU ekler – sabit silikonda yer alan, ağır operatörleri CPU’yu meşgul etmeden çalıştıran bir tensör boru hattı. OpenMV’nin ürün gamındaki iki NPU farklı satıcılardan gelir ve araç zincirleri farklıdır, ancak kamera her ikisini de aynı ml.Model API’si üzerinden sunar. Farklı olan, diskteki dosya ve onu gezen çalışma zamanıdır.
7.11.1. AE3 – Arm Ethos-U55¶
AE3, Cortex-M55 uygulama çekirdeğiyle aynı yonga üzerinde bir Arm Ethos-U55 NPU taşır. Vela, model için onu hazırlayan çevrimdışı derleyicidir: Vela standart bir .tflite alır ve NPU’ya uygun alt grafiklerinin, NPU’nun çalıştırdığı bayt komutlarını taşıyan özel bir Ethos-U operatörüne katlandığı bir .tflite çıkarır. Çıkarım anında TFLM dosyayı normal şekilde gezer; Ethos-U operatörü bayt komutlarını Ethos-U sürücüsü aracılığıyla yönlendirir ve Vela’nın katlamadığı her operatör M55 üzerindeki CMSIS-NN‘ye geri döner.
7.11.2. N6 – ST Neural-ART¶
N6, ST’nin Neural-ART NPU’sunu taşır ve TFLM yerine STAI – ST’nin bunun için sunduğu çalışma zamanı – çalıştırır. STEdgeAI çevrimdışı derleyicidir: bir model alır ve Neural-ART donanımı için düzenlenmiş yeniden konumlandırılabilir bir ağ blobu çıkarır. STAI, blobu ROMFS‘ten yükler ve doğrudan NPU üzerinde gezer. Operatör kapsamı, STEdgeAI’nin o parça için desteklediği her şeydir.
7.11.3. Aynı betik, farklı kamera¶
Her iki NPU da, bir CPU’da çalışan modelle aynı kuantizasyon parametrelerine sahip aynı girdi ve çıktı tensörlerini sunar. Bir kameraya göre yazılmış bir betik, o kameranın NPU’su için hazırlanmış bir model dosyasını yükleyerek bir başkasında çalışır. Tespit eşikleri, ROI işleme ve son işlemci bağlantıları – betik düzeyindeki kararlar – değişmez.