Rockchip · AI & Linux Hub

AI-инференс

RKNN2 SDK V2.5.0 · Многопакетный инференс

RKNN2 SDK V2.5.0 · Многопакетный инференс · Полная серия руководства разработчика

· ArmSoM Editorial · Rockchip source documentation · 3 мин чтения

Справочник платформы по руководству Rockchip RKNN2 SDK V2.5.0. Рассматриваются только перечисленные в исходном документе SoC, Linux/Android Runtime и Toolkit. Возможности действуют при указанных в каждом разделе условиях для чипа, SDK, драйвера и ядра и не означают поддержку всех плат ArmSoM. Перед развёртыванием проверьте BSP, драйвер NPU, Runtime и версию модели конкретной платы. Проверка на оборудовании ArmSoM не проводилась; журналы, показатели и примеры взяты из оригинала.

Источники и вычитка: китайская версия следует китайскому V2.5.0 (182 страницы), английская, русская и немецкая — английскому V2.5.0 (208 страниц). Различия оригиналов сохранены; сведения старой версии не выдаются за новые. Китайские рисунки взяты из китайского PDF, остальные — из английского, включая отдельно извлечённые векторные схемы. Номера разделов и формул сохранены. Некоторые ссылки используют старую нумерацию; примеры динамической формы содержат «1224+140=264», утверждения о TP_NORM противоречат друг другу, а init()/rknn.val_perf() отличаются от последующих описаний API. Эти сомнения сохранены: перед выполнением проверьте реальные заголовки и справочник V2.5.0. Код и параметры сохранены, разрывы PDF и продолжения таблиц восстановлены.

Rockchip RKNN2 SDK V2.5.0

RKNN2 SDK V2.5.0 · 14/22

1. Программный стек и основные понятия

2. Среда разработки, версии и подключение платы

3. Процесс разработки и выбор интерфейса

4. Преобразование моделей и редактирование ONNX

5. Квантование, гибридное квантование и QAT

6. Инференс, оценка точности, производительности и памяти

7. Жизненный цикл Runtime, размещение данных и память

8. Нулевое копирование и ограничения входов/выходов

9. Развёртывание через C API и генерация кода

10. Развёртывание Python через Toolkit Lite2

11. Matmul API и размещение матриц

12. Многоядерная настройка NPU и производительность

13. Модели с динамической формой и развёртывание

Многопакетный инференс

15. SRAM NPU RK3588/RK3576

16. Согласованность кэша и разреженный инференс

17. Пользовательские операторы: Python и C API

18. Развёртывание зашифрованных моделей

19. Диагностика точности

20. Анализ производительности и оптимизация сети

21. Анализ, совместное использование и повторное использование памяти

22. Вопросы, обработка ошибок и справочные ресурсы

4.1.4 Использование Multi-Batch

4.1.4.1 Принцип Multi-Batch

NPU RK3588 имеет 3 ядра, RK3576 — 2. Для эффективного использования предусмотрен многопакетный инференс. При включении rknn_dup_context копирует только Internal контекста, а Weight используется совместно. При rknn_batch_size=2 создаётся одна копия, при rknn_batch_size>=3 — две, поскольку одновременно работают не более трёх ядер и дополнительные копии тратят память. core_mask каждого контекста устанавливается в 0 для автоматического планирования между ядрами. При rknn_run() создаётся пул потоков; три потока одновременно выполняют инференс трёх контекстов.

Рисунок 4-7. Внутренний принцип Multi-Batch

Рисунок 4-7. Внутренний принцип Multi-Batch

4.1.4.2 Использование Multi-Batch

Порядок использования Multi-Batch:

1 Включите Multi-Batch в Python:

ret = rknn.build(do_quantization=True, dataset='./dataset.txt', rknn_batch_size=3)

Для оптимальной производительности rknn_batch_size рекомендуется кратным 3 на RK3588 и кратным 2 на RK3576.

2 Рекомендуется интерфейс нулевого копирования.

4.1.4.3 Входы и выходы Multi-Batch

При Multi-Batch запрашиваемые размеры входа/выхода увеличиваются в rknn_batch_size раз. Каждый внутренний контекст вычисляет собственное входное смещение, читает свои данные, затем вычисляет выходное смещение и записывает результат. Для второго batch входное смещение равно input_size/rknn_batch_size, выходное — output_size/rknn_batch_size.

Рисунок 4-8. Внутренние смещения входа и выхода Multi-Batch

Рисунок 4-8. Внутренние смещения входа и выхода Multi-Batch

Другие статьи по теме → · Учебные маршруты →