Як поєднується стек програмного забезпечення RK3588 NPU
Програмний стек RKNN Rockchip відокремлює підготовку моделі від виконання на пристрої. RKNN-Toolkit2 надає інструменти перетворення та оцінки. RKNN-Toolkit-Lite2 надає інтерфейс Python на підтримуваних цільових платформах, тоді як RKNN Runtime надає інтерфейси C/C++. Драйвер ядра підключає середовище виконання до NPU. Перевірте сумісність цих компонентів із пакетом підтримки плати, що постачається для вашого модуля.
Корисний запис про розгортання ідентифікує плату та версію SoM, образ Linux, драйвер, час виконання, версію інструменту перетворення, оригінальну та перетворену моделі. Збережіть сценарій збірки та налаштування попередньої обробки поруч із артефактом моделі. Ім'я файлу, наприклад detector.rknn сам по собі не може пояснити, чому одне розгортання поводиться по-різному від іншого.
Крок 1: установіть посилання перед перетворенням
Запустіть оригінальну модель на репрезентативному наборі перевірки. Зберігайте необроблені результати та важливу метрику програми: точність класифікації, якість виявлення або іншу міру, пов’язану з конкретним завданням. Для детектора збережіть упорядкування міток, порогові значення достовірності та налаштування постобробки. Це стає точкою порівняння для перетвореної моделі.
Запишіть весь вхідний договір. Включіть розміри, розмір партії, порядок RGB або BGR, макет, числовий діапазон, нормалізацію, зміну розміру та доповнення. Правильна модель може дати погані результати, якщо програма розміщує зображення в поштових скриньках інакше, ніж навчальне, або двічі віднімає зсув. Так само ретельно документуйте постобробку за межами мережі.
Використовуйте Rockchip Модельний зоопарк RKNN як відправну точку, коли вона включає відповідну модель і ціль. Його приклади перетворення та висновків корисніші, ніж припущення, що будь-яка експортована мережа працюватиме без змін. Виберіть відому версію сховища та дотримуйтесь інструкцій для цього конкретного прикладу.
Крок 2: конвертуйте модель і перевірте підтримку оператора
- Зіставте ціль. Виберіть ціль RK3588 і ланцюжок інструментів, сумісний із запланованим зображенням плати.
- Огляньте графік. Підтвердьте форми, попередню обробку, виходи та підтримку фактичних операцій в експортованій моделі.
- Побудуйте еталонне перетворення. Використовуйте параметри точності, які підтримують цей графік і версія програмного забезпечення.
- Прочитайте повний журнал збірки. Усувайте помилки та досліджуйте попередження, перш ніж додавати камеру або інтерфейс користувача.
- Порівняйте результати. Запустіть ті самі вхідні дані через оригінальну та конвертовану моделі з однаковою постобробкою.
Непідтримувана операція може вимагати іншого експорту, перезапису графіка або явного етапу обробки ЦП. Не припускайте, що середовище виконання буде прозоро виконувати кожен непідтримуваний рівень. Якщо частина робочого навантаження переноситься на ЦП, включіть передачі та синхронізацію в вимірювання продуктивності.
Крок 3: оцініть INT8 відповідно до ваших вимог до точності
Квантування змінює числове представлення. Коли вибраний потік перетворення використовує дані калібрування, виберіть вхідні дані, що відповідають розгортанню: освітлення, розмір об’єкта, фон і робочі умови. Зберігайте окремий набір перевірки для оцінки результату. Успішно завершене перетворення потребує перевірки на точність.
Порівняйте результати програми, а не лише різницю між двома тензорами. Наприклад, невелика чисельна зміна може перемістити виявлення через поріг достовірності. Перегляньте складні випадки, класи з кількома прикладами та умови, де вихідна модель вже була маргінальною. Якщо точність падає нижче допустимого ліміту, перегляньте охоплення калібрування та попередню обробку перед зміною апаратного забезпечення.
The ONNX Документація квантування часу виконання є корисною довідкою щодо числових компромісів і дослідження точності. Параметри перетворення RKNN і підтримувану точність все ще потрібно перевірити у власній документації Rockchip для вибраного випуску.
Крок 4: виміряйте більше, ніж час висновку
Виміряйте розгорнуте робоче навантаження після розминки та знову під час тривалого бігу. Записуйте температуру, режим живлення, одночасні процеси та систему охолодження корпус. Корисним результатом є відтворювана оболонка продуктивності, включаючи точність і затримку, за умов, у яких працюватиме продукт.
| Вимірювання | Що відповідає | Що записувати |
|---|---|---|
| Тривалість виконання моделі | Скільки часу займає цей виклик під час виконання? | Форма введення, точність, часові межі та версія часу виконання |
| Наскрізна затримка | Скільки років спостереження, коли видається результат? | Час захоплення, попередня обробка, постановка в чергу, висновок і час виведення |
| Постійна пропускна здатність | Скільки завершених результатів надається з часом? | Довжина виконання, виконані запити та випущені чи пропущені введення |
| Точність нанесення | Чи відповідає розгорнута модель вимогам завдання? | Набір перевірки, метрика завдання та порогові значення для прийняття рішень |
| Теплова поведінка | Чи стабільний результат після прогрівання системи? | Умови навколишнього середовища, охолодження, температури та годинник, якщо доступні |
Як ілюстративний бюджет, програма, яка отримує новий кадр кожні 40 мс, повинна не відставати від 25 кадрів за секунду, якщо вона обробляє кожен кадр. Вимірювання висновку 12 у мс залишить решту цього бюджету на придбання, підготовку та доставку лише у відповідному розкладі. Це не підтверджує затримку від камери до результату 12 мс. Ці цифри є прикладом планування, а не вимірюванням продуктивності ForgeEdge.
Використовуйте монотонний годинник для тривалості програмного забезпечення. Повідомляйте про середню та кінцеву затримку, а не про одне найкраще спостереження, і зберігайте необроблені вимірювання. Для кількох камер врахуйте робоче навантаження всіх активних потоків, включаючи декодування, перетворення зображень, переміщення пам’яті та запис. Черга, яка зростає протягом тесту, вказує на те, що середня ємність нижча за вхідне робоче навантаження.
Загальні симптоми розгортання
| Симптом | Перше розслідування |
|---|---|
| Правильна модель, неправильні етикетки чи коробки | Порядок кольорів, нормалізація, зміна розміру/заповнення, вихідний макет і постобробка |
| Перетворену модель не можна ініціалізувати | Вибір цілі, сумісність середовища виконання/драйверів і цілісність артефактів моделі |
| Хороший короткий тест, погана стабільна продуктивність | Температура, режим живлення, тиск пам'яті та конкуруюча робота |
| Прийнятний час висновку, помітно запізнілі результати | Буферизація захоплення, вік черги, копії та планування виведення |
| Вихід INT8 втрачає корисні виявлення | Охоплення калібрування, еквівалентність попередньої обробки та перевірка на рівні завдання |
Перетворіть прототип на повторюваний продукт
Упакуйте модель, середовище виконання та конфігурацію програми як контрольований випуск. Визначте перевірки запуску, звітування про помилки, відновлення та шлях відкату. Проведіть невеликий тест введення еталонних даних, який може виявити неправильне розгортання перед підключенням камери. Відокремте цю перевірку програмного забезпечення від перевірки фізичного датчика, яка також перевіряє налаштування кабелів, драйверів і експозиції.
Якщо платі потрібні інші роз’єми, система кондиціювання живлення або інтерфейси датчиків, перегляньте Рішення SoM проти SBC і Процес проектування плата-носій. Ці рішення визначають, як успішна демонстрація моделі стає придатною для обслуговування системою.
Питання щодо розгортання RK3588 NPU
Чи може кожна модель ONNX працювати на RK3588 NPU?
Сумісність залежить від фактичного графіка, форм, операцій і вибраного ланцюжка інструментів. Налаштуйте підтримку шляхом перетворення та перевірки на пристрої моделі, яку ви збираєтеся постачати.
Чи прогнозований рейтинг прискорювача прогнозує FPS програми?
Ні. Мережа, точність, поведінка пам'яті, попередня обробка та час виконання визначають виміряну пропускну здатність програми. Під час порівняння платформ використовуйте цільове робоче навантаження та повний шлях до даних.
Чи варто спочатку оптимізувати нейронну мережу?
Спочатку профіль. Якщо домінує отримання, перетворення зображень або черга, скорочення часу виконання моделі може мало вплинути на вік результату, який відчуває програма.
Перевірте повне завдання комп’ютерного зору
Для програми виявлення об’єктів виміряйте захоплення камерою, змініть розмір і нормалізацію, висновок NPU, декодування виведення та доставку рішення. Повідомте версію моделі, вхідну роздільну здатність, точність, поріг довіри та набір даних оцінки з результатом синхронізації. В іншому випадку два очевидно схожі тести граничного ШІ можуть описувати різні завдання.
Перевірте експортований графік і необхідні оператори за допомогою вибраного ланцюжка інструментів RKNN перед тим, як перейти до архітектури моделі. Перевірте точність після квантування та поведінку під час тривалого виконання, а не лише те, чи вдалось перетворення. Виявлення, сегментація та класифікація об’єктів мають різні витрати на обробку вихідних даних; підтвердити фактичне навантаження, обране для проекту.
Порівняйте дизайнерські ролі FPGA, NPU і MPU
Технічні довідки
Обсяг вашого навантаження Edge AI.
Поділіться моделлю, вхідною роздільною здатністю, інтерфейсами камери, необхідною швидкістю результату та огинаючою потужністю. Ми можемо оцінити інтеграційну роботу навколо периферійної платформи на базі RK3588.
