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 Neural-ART от ST и запускает STAI – среду выполнения ST для него – вместо TFLM. STEdgeAI – это офлайн-компилятор: он принимает модель на входе и выдаёт перемещаемый сетевой блоб, скомпонованный под аппаратуру Neural-ART. STAI загружает блоб из ROMFS и обрабатывает его непосредственно на NPU. Покрытие операторов соответствует тому, что STEdgeAI поддерживает для данного устройства.
7.11.3. Тот же скрипт, другая камера¶
Оба NPU предоставляют те же входные и выходные тензоры с теми же параметрами квантования, что и модель, выполняемая на процессоре. Скрипт, написанный под одну камеру, работает на другой при загрузке файла модели, подготовленного для NPU этой камеры. Пороги обнаружения, обработка ROI и подключение постпроцессора – решения на уровне скрипта – не меняются.