Драйвер NPU с открытым исходным кодом Rockchip RK3588 выполняет обнаружение объектов со скоростью 30 кадров в секунду

Томеу Визосо (Tomeu Vizoso) последние пару месяцев работал над драйвером с открытым исходным кодом для NPU (нейронного процессора) на базе Rockchip RK3588 SoC, и и проект значительно продвинулся вперед: обнаружение объектов работает нормально со скоростью 30 кадров в секунду с использованием модели SSDLite MobileDet и всего одно из трех ядер ускорителя искусственного интеллекта.

Многие последние процессоры включают в себя ускорители искусственного интеллекта, которые работают с драйверами с закрытым исходным кодом, но мы уже видели работы по перепроектированию NPU Allwinner V831 несколько лет назад, а ранее в этом году мы отметили, что Томеу Визосо выпустил драйвер Etvaniv с открытым исходным кодом, который работает на Vivante NPU Amlogic A311D. Томеу теперь также начал работу над портированием своего драйвера Teflon TensorFlow Lite на NPU Rockchip RK3588, который основан IP-адресе NVIDIA NVDLA с открытым исходным кодом.

Он начал свою работу в марте, воспользовавшись результатами реверс-инжиниринга, уже проделанными Пьером-Югом Хассоном и Джасбиром Матару , и быстро смог запустить операции Conv2D и DepthwiseConv2D TensorFLow Lite. Всего две недели спустя модель MobileNetv1 могла работать на Pine64 QuartzPro64 SBC с тем же уровнем производительности, что и blob (двоичный файл с закрытым исходным кодом).

Работа была намного проще, чем над Verisilicon Vivante NPU, потому что было выполнено много работы по реверс-инжинирингу, а NVDLA имеет открытый исходный код, поэтому была доступна по крайней мере некоторая документация, чего не было в случае с Vivante NPU. Тем не менее, потребовалось всего четыре недели (не полный рабочий день), чтобы обнаружение объектов, как показанно ниже, заработало на NPU Rockchip RK3588 со скоростью 30 кадров в секунду.

Исходный код проекта Teflon вы найдете на веб-сайте Freedesktop, а также можете ознакомиться с состоянием проекта в блоге Томеу. Далее Томеу планирует написать драйвер ядра для основной ветки Linux в подсистеме driver/accel. Предстоит еще много работы, и неясно, сколько времени это займет, тем более что он работает над разными NPU и будет распределять свое время между каждой реализацией, если к проекту(ам) не присоединятся дополнительные участники.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments