Email WhatsApp
WeChat
WeChat QR

Table of Contents

CPU и NPU в задачах Edge AI

У Rockchip RK3576 восемь ядер CPU и встроенный NPU с заявленной производительностью 6 TOPS при INT8. В официальном даташите процессора RK3576 рядом с этой цифрой стоит сноска о разреженности вычислений. По показателю TOPS нельзя определить, сколько времени займёт обработка одного кадра: приложение сначала получает изображение, подготавливает его для модели, а после инференса разбирает результат, но все-таки большую часть этой работы делает CPU.

Допустим, камера снимает конвейер, а программа должна найти предмет, определить его положение и сохранить событие. Модель отвечает только за один этап этой цепочки, остальные этапы работают обычно, даже если NPU заканчивает инференс за несколько миллисекунд.

CPU и NPU в Edge AI

Как CPU и NPU обрабатывают кадр

Сначала приложение получает кадр через драйвер камеры, затем подгоняет размер изображения, порядок цветовых каналов и формат пикселей под вход модели. На некоторых платах масштабирование или преобразование выполняет ISP либо отдельный 2D-блок; это снижает нагрузку на CPU, но не убираетуправление буферами, передачу данных между узлами. Кроме того, возможности самого SoC ещё должны быть выведены на конкретной плате и поддержаны её образом Linux.

После подготовки NPU выполняет поддерживаемые операции нейросети и возвращает выходные данные. Для детектора это тысячи кандидатов на прямоугольники с координатами и оценками уверенности. Приложение отбрасывает слабые срабатывания, убирает дубли, сопоставляет объект с предыдущим кадром и, при необходимости, записывает фрагмент видео. Вот почему скорость инференса и скорость готовой системы совершенно разные показатели.

У нас есть отдельный разбор того, что означают показатели TOPS; здесь важен именно объём работы вокруг модели.

ЭтапCPUNPU и другие блоки
Захват кадраУправляет приложением и драйвером камерыИнтерфейс камеры и ISP могут обрабатывать изображение; NPU не участвует
Подготовка входаОрганизует буферы и нужный формат данныхISP или 2D-блок может масштабировать и преобразовывать изображение
ИнференсПередаёт вход модели и получает выходNPU выполняет поддерживаемые операции модели
РезультатФильтрует детекции, отслеживает объекты, отправляет событияNPU обычно не обрабатывает данные после возврата модели

Представим, что инференс занимает 12 мс, подготовка изображения – 18 мс, обработка детекций, допустим, 15 мс. В итоге, получается 45 мс на кадр без учёта ожидания в очередях и дополнительных копирований. Это учебный пример, а не результаты измерения платы KiwiPi. Если смотреть только на 12 мс работы NPU, легко ошибиться с расчётом частоты обработки камеры.

Модель и программный стек

Модель, которая запускается на компьютере через PyTorch или ONNX, нельзя просто скопировать на плату и автоматически получить ускорение NPU. Rockchip описывает конвертацию и развёртывание в документации по RKNN Toolkit2. Инструмент собирает модель для целевой платформы, а на устройстве нужен соответствующий рантайм. Если в графе есть неподдерживаемые операции, может понадобиться другая реализация модели или иной путь выполнения.

Честно говоря, я бы проверял здесь две вещи по отдельности. Во-первых, собирается ли модель для нужного чипа и совместимы ли версии инструментов с образом системы. Во-вторых, совпадает ли результат после конвертации с исходной моделью на контрольном наборе данных. Файл RKNN, который успешно загружается, ещё не доказывает, что детектор правильно распознаёт объекты.

RK3399 без встроенного NPU

Обычный процессор Rockchip RK3399 для SBC хорошо показывает разницу между вычислительными ролями. В нём два Cortex-A72, четыре Cortex-A53 и нет встроенного NPU. Он способен принимать видеопоток и запускать совместимую модель на CPU; годится ли такая скорость, зависит от самой модели и допустимой задержки. RK3399Pro – другой процессор со своим NPU и более ранним поколением инструментария RKNN. Похожее название не добавляет ускоритель уже установленной плате RK3399.

Если устройство на RK3399 уже работает, можно рассмотреть внешний ускоритель. Но сначала нужно проверить свободный USB или PCIe, питание, охлаждение и поддержку конкретной модели в SDK этого ускорителя. Для нового устройства с регулярным инференсом встроенный NPU избавляет от отдельного модуля; для существующей системы замена всей платы может оказаться муторней интеграции внешнего блока. Пример такого решения – обзор модулей DeepX DX-M1 и DX-M1M.

Нагрузка на CPU при выборе платы

У RK3576 и RK3588 номинальная производительность NPU составляет 6 TOPS, однако остальная часть системы различается. Мы уже сравнивали RK3576 и RK3588 на примере плат KiwiPi: при нескольких камерах, интерфейсе оператора и локальной записи важны CPU, память и ввод-вывод, даже когда нейросеть одинаково хорошо помещается на NPU. Для одного несложного потока этот запас может остаться невостребованным.

Измерять стоит путь от получения кадра до готового решения приложения. Я бы отдельно записал время захвата, подготовки входа, инференса и обработки выхода, а затем сравнил сумму с общей задержкой – расхождение выдаст ожидание и копирование между этапами. Запуск на несколько секунд после загрузки платы недостаточен: повторите измерение после прогрева и проверьте, не изменилась ли точность модели после конвертации. Если задержка возникает до или после NPU, покупка ускорителя с большим числом TOPS эту часть программы не ускорит.

FAQ

Можно ли запустить Edge AI без NPU?

Да. Совместимая модель может работать на CPU; пример – плата с обычным RK3399. Решение зависит от требуемого времени отклика и реальной сложности модели, поэтому сначала измерьте свой сценарий.

Любая ли модель ONNX запустится на NPU Rockchip?

Нет. Её нужно конвертировать для целевого чипа, проверить поддержку операций и сравнить результат с исходной моделью. На самой плате также потребуется совместимый рантайм.

Что измерять, кроме времени инференса?

Полную задержку от кадра до результата, время подготовки входа и обработки выхода, точность детекций и производительность после прогрева платы. Тогда видно, какой этап ограничивает приложение.

Сопутствующие товары

Свяжитесь с нами, чтобы обсудить ваши задачи

Contact Us