Справочник платформы по руководству 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 и продолжения таблиц восстановлены.
RKNN2 SDK V2.5.0 · 10/22
1. Программный стек и основные понятия
2. Среда разработки, версии и подключение платы
3. Процесс разработки и выбор интерфейса
4. Преобразование моделей и редактирование ONNX
5. Квантование, гибридное квантование и QAT
6. Инференс, оценка точности, производительности и памяти
7. Жизненный цикл Runtime, размещение данных и память
8. Нулевое копирование и ограничения входов/выходов
9. Развёртывание через C API и генерация кода
Развёртывание Python через Toolkit Lite2
11. Matmul API и размещение матриц
12. Многоядерная настройка NPU и производительность
13. Модели с динамической формой и развёртывание
16. Согласованность кэша и разреженный инференс
17. Пользовательские операторы: Python и C API
18. Развёртывание зашифрованных моделей
20. Анализ производительности и оптимизация сети
21. Анализ, совместное использование и повторное использование памяти
22. Вопросы, обработка ошибок и справочные ресурсы
3.3 Развёртывание Python через Toolkit Lite
RKNN-Toolkit Lite2 предоставляет Python-интерфейс инференса на плате, упрощая разработку приложений ИИ на Python.
Примечание: прежде чем разрабатывать AI-приложение через RKNN-Toolkit Lite2, преобразуйте модель исходного фреймворка в RKNN с помощью RKNN-Toolkit2. Подробности приведены в 2.1.
3.3.1 Среда выполнения и установка
RKNN-Toolkit Lite2 работает на плате. Поддерживаемые платформы, ОС, версии Python и зависимости определяются пакетом соответствующей версии. Точный перечень приведён в разделе применимых версий и платформ руководства «04_RKNN2_Toolkit_Lite_Python_API_Reference_V2.5.0».
Установка выполняется из Python Wheel. SDK содержит пакеты для соответствующих платформ и версий Python в rknn-toolkit-lite2/packages. Выберите Wheel под Python платы и установите его через pip3 install. Например:
pip3 install rknn_toolkit_lite2-x.y.z-cpxx-cpxx-linux_aarch64.whl
Перед установкой подготовьте на плате Python, pip и зависимости. Полные шаги и требования приведены в разделе установки и развёртывания среды «04_RKNN2_Toolkit_Lite_Python_API_Reference_V2.5.0».
3.3.2 Основной процесс развёртывания
Главная точка входа Python API RKNN-Toolkit Lite2 — объект RKNNLite. Типичный процесс на плате:
Create RKNNLite object
↓
load_rknn()
↓
init_runtime()
↓
Prepare input and complete pre-processing
↓
inference()
↓
Process inference results
↓
release()
Основные интерфейсы:
RKNNLite(): создаёт объект RKNN-Toolkit Lite2.
load_rknn(): загружает модель RKNN.
init_runtime(): инициализирует среду Runtime.
inference(): передаёт входные данные и выполняет инференс.
release(): освобождает объект RKNNLite и связанные ресурсы.
До inference() приложение читает и предварительно обрабатывает данные по требованиям модели. После инференса выполняет постобработку, например классификацию или обработку детекций.
3.3.3 Основные функциональные интерфейсы
Помимо основного процесса RKNN-Toolkit Lite2 предоставляет запросы сведений Runtime и поддерживаемых платформ. Часто используемые интерфейсы:
| Интерфейс | Назначение |
|---|---|
| RKNNLite() | Создание RKNNLite с настраиваемым журналом |
| load_rknn() | Загрузка модели RKNN |
| init_runtime() | Инициализация Runtime для инференса |
| inference() | Выполнение инференса и возврат результатов |
| get_sdk_version() | Запрос версий Runtime, драйвера и модели |
| list_support_target_platform() | Запрос платформ, поддерживаемых моделью RKNN |
| release() | Освобождение ресурсов выполнения |
init_runtime() позволяет настроить режим ядер NPU для поддерживаемой платформы. inference() принимает входы как список объектов ndarray и позволяет задать размещение данных. Значения параметров, ограничения и возвращаемые результаты описаны в «04_RKNN2_Toolkit_Lite_Python_API_Reference_V2.5.0».
3.3.4 Справочный пример
Следующий базовый пример показывает создание RKNNLite, загрузку модели, инициализацию Runtime, инференс и освобождение ресурсов. input_data — данные, уже предварительно обработанные согласно требованиям модели.
rknn_lite = RKNNLite(verbose=True)
# 1. Load RKNN model
ret = rknn_lite.load_rknn('./model.rknn')
if ret != 0:
print('Load RKNN model failed')
exit(ret)
# 2. Initialize Runtime
ret = rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_AUTO)
if ret != 0:
print('Init runtime environment failed')
exit(ret)
# 3. Run inference
outputs = rknn_lite.inference(inputs=[input_data])
# 4. Post-process outputs according to the model type
# ...
# 5. Release resources
rknn_lite.release()
Каталог examples/inference_with_lite SDK содержит полный пример классификации изображений ResNet18. Разместите пример, RKNN-модель и тестовые данные на плате с установленным RKNN-Toolkit Lite2, перейдите в каталог примера и выполните:
cd examples/inference_with_lite
python3 test.py
Пример включает предобработку, инференс и обработку Top-5 результатов классификации и служит ориентиром при разработке. Параметры, возвращаемые значения и ограничения RKNNLite, load_rknn(), init_runtime(), inference() и release() описаны в «04_RKNN2_Toolkit_Lite_Python_API_Reference_V2.5.0».
