Как софтуерният стек RK3588 NPU се вписва заедно
Софтуерният стек RKNN на Rockchip разделя подготовката на модела от изпълнението на устройството. RKNN-Toolkit2 предоставя инструменти за конвертиране и оценка. RKNN-Toolkit-Lite2 предоставя Python интерфейс на поддържаните целеви платформи, докато RKNN Runtime доставя C/C++ интерфейси. Драйверът на ядрото свързва средата за изпълнение към NPU. Проверете съвместимостта на тези компоненти с пакета за поддръжка на платката, доставен за вашия модул.
Полезен запис за внедряване идентифицира платката и версията на SoM, изображението на Linux, драйвера, времето за изпълнение, версията на инструмента за преобразуване, оригиналния модел и конвертирания модел. Запазете скрипта за изграждане и настройките за предварителна обработка до артефакта на модела. Име на файл като detector.rknn сам по себе си не може да обясни защо едно внедряване се държи различно от друго.
Стъпка 1: установете препратка преди преобразуване
Стартирайте оригиналния модел на представителен набор за валидиране. Запазете необработените резултати и метриката на приложението, която има значение: точност на класификацията, качество на откриване или друга мярка, специфична за задачата. За детектор запазете подреждането на етикетите, праговете на достоверност и настройките за последваща обработка. Това става точката за сравнение за конвертирания модел.
Запишете целия договор за въвеждане. Включете размери, размер на партида, RGB или BGR подреждане, оформление, числов диапазон, нормализиране, преоразмеряване и подложка. Правилният модел може да доведе до лоши резултати, ако приложението пощенски кутии изображение различно от обучението или извади отместване два пъти. Поддържайте последващата обработка извън мрежата документирана също толкова внимателно.
Използвайте Rockchip RKNN Модел Zoo като отправна точка, когато включва съответстващ модел и цел. Неговите примери за преобразуване и изводи са по-полезни от предположението, че всяка експортирана мрежа ще работи непроменена. Изберете известна ревизия на хранилище и следвайте инструкциите за този конкретен пример.
Стъпка 2: конвертирайте модела и проверете поддръжката на оператора
- Съпоставете целта. Изберете целта RK3588 и инструментална верига, съвместима с предвиденото изображение на дъската.
- Проверете графиката. Потвърдете форми, предварителна обработка, изходи и поддръжка за действителните операции в експортирания модел.
- Изградете референтно преобразуване. Използвайте опциите за точност, поддържани от тази графика и версия на софтуера.
- Прочетете пълния дневник за изграждане. Отстранете повреди и проучете предупрежденията, преди да добавите придобиване на камера или потребителски интерфейс.
- Сравнете резултатите. Пуснете едни и същи входове през оригиналния и конвертирания модел, със същата последваща обработка.
Неподдържана операция може да изисква различен експорт, пренаписване на графика или явен етап на обработка на CPU. Не приемайте, че средата за изпълнение ще изпълни прозрачно всеки неподдържан слой. Ако част от работното натоварване се премести към процесора, включете трансфери и синхронизация в измерването на производителността.
Стъпка 3: оценете INT8 спрямо вашите изисквания за точност
Квантуването променя численото представяне. Когато избраният поток на преобразуване използва данни за калибриране, изберете входове, представителни за внедряването: осветление, размер на обекта, фон и работни условия. Съхранявайте отделен набор за валидиране, за да оцените резултата. Преобразуване, което завърши успешно, все още се нуждае от проверка за точност.
Сравнете изхода на приложението, а не само разликата между два тензора. Например малка цифрова промяна може да премести откриването през праг на достоверност. Проверете трудни случаи, класове с малко примери и условия, при които оригиналният модел вече е маргинален. Ако точността падне под допустимата граница, прегледайте отново покритието на калибрирането и предварителната обработка, преди да смените хардуера.
The ONNX Документация за квантуване по време на изпълнение е полезна основа за числени компромиси и изследване на точността. Опциите за преобразуване на RKNN и поддържаната прецизност все още трябва да бъдат проверени в собствената документация на Rockchip за избраното издание.
Стъпка 4: измервайте повече от времето за извод
Измерете разгърнатото работно натоварване след загряване и отново по време на продължително бягане. Записвайте температура, режим на захранване, едновременни процеси и корпус или охладителна система. Полезният резултат е възпроизводима обвивка на производителността, включително точност и забавяне, при условията, в които продуктът ще работи.
| Измерване | Какво отговаря | Какво да записвам |
|---|---|---|
| Продължителност на изпълнение на модела | Колко време отнема това повикване по време на изпълнение? | Форма на въвеждане, прецизност, времеви граници и версия по време на изпълнение |
| Латентност от край до край | На колко години е наблюдението, когато е доставен резултатът? | Време за улавяне, предварителна обработка, опашка, извод и време за извеждане |
| Устойчива производителност | Колко завършени резултати се доставят с течение на времето? | Дължина на изпълнение, изпълнени заявки и изпуснати или пропуснати входове |
| Точност на нанасяне | Внедреният модел отговаря ли на изискването на задачата? | Набор за валидиране, метрика на задачата и прагове за вземане на решения |
| Термично поведение | Стабилен ли е резултатът след загряване на системата? | Условия на околната среда, охлаждане, температури и часовници, когато има такива |
Като илюстративен бюджет, приложение, което получава нов кадър на всеки 40 ms, трябва да поддържа 25 кадъра в секунда, ако обработва всеки кадър. 12 ms инференциално измерване би оставило останалата част от този бюджет за придобиване, подготовка и доставка само в подходящо планиран дизайн. Това не доказва 12 ms забавяне от камера до резултат. Тези числа са пример за планиране, а не измерена производителност на ForgeEdge.
Използвайте монотонен часовник за времетраене на софтуера. Докладвайте средната и крайната латентност, а не едно единствено най-добро наблюдение, и запазете необработените измервания. За няколко камери отчитайте натоварването на всички активни потоци, включително декодиране, преобразуване на изображения, движение на паметта и запис. Опашка, която расте по време на теста, показва, че средният капацитет е под входящото работно натоварване.
Често срещани симптоми на внедряване
| Симптом | Първо разследване |
|---|---|
| Правилен модел, неправилни етикети или кутии | Ред на цветовете, нормализиране, преоразмеряване/подложка, изходно оформление и последваща обработка |
| Конвертираният модел не може да се инициализира | Избор на цел, съвместимост на време за изпълнение/драйвери и цялост на артефакта на модела |
| Добър кратък бенчмарк, лоша устойчива производителност | Температура, режим на захранване, налягане на паметта и конкурентна работа |
| Приемливо време за извод, видимо забавени резултати | Буфериране на улавяне, възраст на опашката, копия и планиране на изхода |
| Изходът на INT8 губи полезни откривания | Покритие на калибриране, еквивалентност на предварителна обработка и валидиране на ниво задача |
Превърнете прототипа в повторяем продукт
Пакетирайте модела, времето за изпълнение и конфигурацията на приложението като контролирано издание. Дефинирайте проверки при стартиране, докладване на грешки, възстановяване и път за връщане назад. Извършете малък тест за въвеждане на справка, който може да идентифицира неправилно разполагане, преди да се свърже камера. Отделете тази проверка на софтуера от теста на физическия сензор, който също упражнява окабеляване, драйвери и настройки на експозицията.
Когато платката се нуждае от различни конектори, кондициониране на захранването или сензорни интерфейси, прегледайте Решение SoM срещу SBC и на носеща платка процес на проектиране. Тези решения определят как една успешна демонстрация на модел се превръща в поддържаема система.
Въпроси за внедряване на RK3588 NPU
Може ли всеки модел ONNX да работи на RK3588 NPU?
Съвместимостта зависи от действителната графика, форми, операции и избрана верига от инструменти. Установете поддръжка чрез преобразуване и валидиране на устройството на модела, който възнамерявате да изпратите.
Рекламиран рейтинг на ускорителя предвижда ли FPS на приложението?
Не. Мрежата, прецизността, поведението на паметта, предварителната обработка и времето за изпълнение определят измерената производителност на приложението. Използвайте целевото работно натоварване и неговия пълен път към данните, когато сравнявате платформи.
Трябва ли първо да оптимизирам невронната мрежа?
Първо профил. Ако придобиването, преобразуването на изображението или опашката доминират, намаляването на времето за изпълнение на модела може да има малък ефект върху възрастта на резултата, изпитвана от приложението.
Сравнете пълната задача за компютърно зрение
За приложение за откриване на обекти, измерване на заснемането на камерата, преоразмеряване и нормализиране, NPU извод, изходно декодиране и доставка на решението. Докладвайте версията на модела, разделителната способност на входа, прецизността, прага на достоверност и набора от данни за оценка с резултата от времето. В противен случай два очевидно сходни крайни AI бенчмарка може да описват различни задачи.
Тествайте експортираната графика и необходимите оператори чрез избраната RKNN инструментална верига, преди да се ангажирате с моделна архитектура. Проверете точността след квантуване и поведението по време на продължително изпълнение, а не само дали преобразуването е успешно. Откриването, сегментирането и класифицирането на обекти имат различни разходи за обработка на изхода; валидиране на действителното работно натоварване, избрано за проекта.
Сравнете дизайнерските роли на FPGA, NPU и MPU
Технически справки
Обхванете работното си натоварване на edge AI.
Споделете модела, входната разделителна способност, интерфейсите на камерата, необходимата скорост на резултата и обвивката на мощността. Можем да оценим интеграционната работа около платформа, базирана на RK3588.
