LINUX.ORG.RU

Выпуск открытого драйвера для нейронного процессора RK3588 от Rockchip

 , ,

Выпуск открытого драйвера для нейронного процессора RK3588 от Rockchip

0

1

13 июня был опубликован открытый драйвер ядра для нейронного процессора RK3588 от Rockchip. Разработкой занимается инженер Томеу Визосо (Tomeu Vizoso).

В последние несколько недель я работал, среди прочего, над драйвером ядра для NPU в SoC Rockchip RK3588, который написан с нуля. ... Теперь он полностью работоспособен, и вчера после сильной доработки я отправил его в списки рассылки ядра для проверки. Желающие могут увидеть код и следить за процессом проверки по данной ссылке.

Драйвер ядра может полностью использовать три ядра NPU, что дает нам возможность одновременно выполнять 4 вывода обнаружения объектов, такие как приведенный ниже, в потоке, со скоростью почти 30 кадров в секунду.

Драйвер пользовательского пространства находится в менее доработанном состоянии, но и в таком состоянии он полностью функционален. В ближайшие дни я буду работать над доведением его до вида, пригодного к отправке на рассмотрение.

Это первый драйвер, предназначенный только для ускорителя, для периферийного NPU, представленный в основном ядре, и, будем надеяться, он сможет послужить шаблоном для следующих, поскольку различия между NPU разных производителей относительно поверхностны.

В представленной серии патчей содержится 6200 строк кода, составляющие драйвер ядра Rocket, который сейчас вынесен на рассмотрение и обсуждение к включению в основную ветку ядра.

Нейронный процессор (или Neural Processing Unit, NPU, ИИ-ускоритель / AI accelerator) — это специализированный класс микропроцессоров и сопроцессоров, используемый для аппаратного ускорения работы алгоритмов искусственных нейронных сетей, компьютерного зрения, распознавания по голосу, машинного обучения и других методов работы искусственного интеллекта.

>>> Подробности на официальной странице блога разработчика

★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Нейронный процессор (или Neural Processing Unit, NPU, ИИ-ускоритель / AI accelerator)

Интересно а в чем это реально выражается, что именно реализовано в железе для ускорения работы алгоритмов искусственных нейронных сетей?

Hilbert
()
Ответ на: комментарий от Hilbert

Внутри это все сводится к сложению и перемножению векторов большой размерности. Ну вот что-то типа векторно-конвейерного процессора.

gns ★★★★★
()

А поясните для дураков и программистов, этот RK3588 - специализированный процессор для чего-то? Типа плата расширения для какой-нибудь малины? У Нвидии есть Jetson, который являет собой комбинацию АРМа и спецпроцессора с нейронными ядрами. А это просто спецпроцессор. Так его с чем использовать можно в таком форм-факторе?

gns ★★★★★
()
Ответ на: комментарий от gns

RK3588 это конкретная модель SoC от китайского Rockchip.

Там помимо NPU дофига всего, но это типично для SoC.

На картинке просто какой-то SoM от одного из кучи производителей.

a1ba ★★
()
Последнее исправление: a1ba (всего исправлений: 1)
Ответ на: комментарий от Hilbert

Ну а как оно может быть-то? Нужно считать скалярное произведение пары векторов из сотни тысяч координат много раз в секунду. Ну вот как-то векторно-параллелить только.

gns ★★★★★
()
Ответ на: комментарий от gns

Ну вот как-то векторно-параллелить только.

Чипы для ИИ постепенно мигрируют к тензорным процессорам ©.
В обозримом будущем возможны оптические © и квантовые © нейросети.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Ну а что такое тензор с вычислительной точки зрения? Ну матрица, ну многомерная... Это все баззворды для маркетинга. Что внутри-то?

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Ну матрица, ну многомерная…

ну многомерная…

А ещё матрицы ИИ сетей могут быть неассоциативны, некоммутативны, и вообще подчиняться произвольным вычислительным постулатам. Для «железячного исполнения» – непростая задача.

quickquest ★★★★★
()
Ответ на: комментарий от gns

А поясните для дураков и программистов, этот RK3588 - специализированный процессор для чего-то?

Это для встраиваемого CV. Распознавалка лица на проходной, эрекции клиента, отличие кошечки от собачки и тд.

*Мимо дурак и программист.

Obezyan
()
Ответ на: комментарий от quickquest

Матрицы вообще, в общем случае, не коммутативны, если не квадратные, например. Все это «в железячном исполнении» сводится к набору умножений и сложений двух наборов чисел. А что это, два вектора или «строка на столбец» большого значения не имеет. Что Вы мне объяснить хотите? Ссылку на всю эту математику ИИ приму с удовольствием, самому интересно, как оно там устроено. Если не на 1000 страниц фундаментального труда от какого-нибудь Саймона Хайкина. Ну а общие слова писать, — ну ни к чему оно.

Все мое знание нейронных сетей почерпнуто из опыта оптимизации и ускорения некой фортрановской программы, которая «методами искусственного интеллекта» строила продолжение временного ряда с некоторой достоверностью. Ну вот что я там увидел, то и рассказываю.

gns ★★★★★
()
Ответ на: комментарий от Obezyan

«Для чего-то» в смысле для какого центрального? Тут уже пояснили, что такое этот RK3588.

gns ★★★★★
()

Любопытно, как обстоят дела с поддержкой популярных библиотек, как то ONNX Runtime, PyTorch, TensorFlow?

ioctl
()
Ответ на: комментарий от Obezyan

Меня скорее интересовало, какое это все отношение имеет к тензорной алгебре. Или опять маркетоиды придумали слово «что бы непонятнее было» :)

gns ★★★★★
()
Ответ на: комментарий от ioctl

Вы о чем? Баззвордом является слова «ускоритель ИИ», «AI processor» и иже с ними.

gns ★★★★★
()
Ответ на: комментарий от gns

Что Вы мне объяснить хотите?

Что перемножение матриц – важный, но не исчерпывающий вычислительный метод, ограничивающий «мыслительные процессы ИИ», в отличие от мозга человеков матрицами не оперирующим.
Примеры «матричной неалгоритмизируемости» некоторых структур для классических тестов распознавания ©.

Все мое знание нейронных сетей почерпнуто из опыта оптимизации и ускорения некой фортрановской программы …

Ограничения перцептронов © ограничивают и фортран-программу.

… которая «методами искусственного интеллекта» строила продолжение временного ряда с некоторой достоверностью.

Вот так и создаются мировые экономические кризисы :)

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Вот так и создаются мировые экономические кризисы :)

Не. У нас задача была скромнее. Оценить при текущем графике роста потребления диска на корпоративном массиве, за новым надо завтра бежать или еще пара недель есть?

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Это просто процессор который позволяет взять модель созданную в TensorFlow/MXNet/PyTorch/Caffe и выполнять в реальном времени для определения объектов с видеокамеры в 30 fps.

Из тензорной алгебры там всякие оптимизированные инструкции для перемножения и свертки тензоров вплоть до 4 ранга если я правильно понял.

Obezyan
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.