7.11. NPU¶
H7 і RT1062 виконують інференс на процесорі Cortex-M через TFLM і CMSIS-NN. AE3 і N6 додають виділений NPU на тому ж кристалі — тензорний конвеєр у фіксованому кремнії, який виконує важкі оператори, не займаючи процесор. Два NPU в лінійці OpenMV постачаються від різних виробників із різними ланцюжками інструментів, але камера надає доступ до обох через однаковий API ml.Model. Відрізняється лише файл на диску та середовище виконання, яке його опрацьовує.
7.11.1. AE3 – Arm Ethos-U55¶
AE3 містить NPU Arm Ethos-U55 на тому ж кристалі, що й ядро застосунку Cortex-M55. Vela — це офлайн-компілятор, що підготовлює модель для нього: Vela приймає стандартний .tflite і повертає .tflite, в якому сумісні з NPU підграфи згорнуті в спеціальний оператор Ethos-U, що несе байтові команди для NPU. Під час інференсу TFLM зчитує файл у звичайному порядку; оператор Ethos-U передає свої байтові команди через драйвер Ethos-U, а будь-який оператор, не згорнутий Vela, відкидається на CMSIS-NN на M55.
7.11.2. N6 – ST Neural-ART¶
N6 містить NPU ST Neural-ART і виконує STAI — середовище виконання ST для нього — замість TFLM. STEdgeAI — це офлайн-компілятор: він приймає модель і видає переміщуваний мережевий блоб, розташований відповідно до апаратного забезпечення Neural-ART. STAI завантажує блоб з ROMFS і безпосередньо виконує його на NPU. Підтримка операторів визначається тим, що STEdgeAI підтримує для даного чіпа.
7.11.3. Той самий скрипт, інша камера¶
Обидва NPU надають однакові вхідні та вихідні тензори з тими самими параметрами квантування, що й модель на CPU. Скрипт, написаний для однієї камери, виконується на іншій шляхом завантаження файлу моделі, підготовленого для NPU тієї камери. Пороги виявлення, обробка ROI та підключення постпроцесора — рішення на рівні скрипта — не змінюються.