Компьютерные модули на процессорах с TPU/NPU ускорителями, как альтернатива Nvidia Jetson
Рассмотрены архитектуры центральных процессоров для ускорения работы с искусственными нейронными сетями. Приведены примеры отечественных встраиваемых компьютерных модулей и блоков для решения задач машинного зрения, видеоаналитики и оптической навигации.
В настоящее время одной из самых популярных встраиваемых аппаратных платформ для задач искусственного интеллекта (ИИ), машинного зрения и видеонаналитики являются компьютерные модули Nvidia семейства Jetson [1].
Nvidia Jetson представляет собой линейку встраиваемых компьютерных модулей (SOM –System on module или COM – computer-on-module) на базе графических процессоров, специально разработанных для работы с системами искусственного интеллекта (ИИ) и Edge Computing.
Популярность Nvidia Jetson обусловлена высокой производительностью, легкостью использования и поддержкой сообществом разработчиков.
Несмотря на свою популярность, использование технологий Nvidia имеет некоторые сложности, связанные с международной политической обстановкой. В условиях ограниченного доступа к технологиям Nvidia, разработчики и компании вынуждены искать альтернативные решения, такие как платформы на базе ARM-процессоров с интегрированными ядрами-ускорителями, например от компаний: RockChip, MediaTek, Hailo, НПЦ Элвис, НТЦ Модуль, LinQ.
Каждая из этих альтернатив имеет свои сильные и слабые стороны, поэтому выбор зависит от требований к производительности, стоимости, энергопотреблению и специфики применения.
CPU, GPU, TPU, NPU
Современные процессоры по своей архитектуре являются системами на кристалле (SoC – System on Chip) объединяя на одном кристалле несколько компонентов вычислительной системы. Это позволяет уменьшить количество отдельных микросхем и сделать устройство более компактным и экономичным с точки зрения потребления энергии.
В процессорах, предназначенных для работы с нейронными сетями и обработки видео, помимо ядер центрального процессора (CPU – Central Processing Unit), присутствуют специализированные ядра-процессоров для ускорения ряда трудоемких задач, таких как: кодирование и декодирование, сжатие данных и т.п. К таким специализированным ядрам относятся GPU, TPU и NPU – это три типа процессорных архитектур, наиболее пригодных для выполнения различных задач в области параллельных вычислений, связанных с обработкой графической информации, ускорением нейронных сетей и машинным обучением.
CPU (CPU – Central Processing Unit). Классические процессоры быстро выполняют один поток, сокращая время на одну операцию и увеличивая количество последовательных инструкций [2]. Целью CPUявляется быстрая обработка операций, включающих выборку данных и сокращение остановок конвейера, когда арифметико-логическому устройству (Arithmetic Logical Units – ALU) приходится ждать завершения предыдущих инструкций. CPU обеспечивают обработку последовательных инструкций с малой задержкой (рис. 1а). За счет нескольких ядер (CPUCore) достигается многозадачность, но по-прежнему все данные обрабатываются в едином потоке на каждом ядре отдельно.
Следует отметить, что в качестве ускорителей нейросетей можно использовать и классические центральные процессоры CPU, объединив их в процессорный кластер, тем самым обеспечив ускорение операций с векторами и массивами чисел.
GPU (Graphics Processing Unit) Графический процессор разрабатывался изначально для ускорения обработки графики и рендеринга изображений. Архитектура включает множество ядер (рис 1б), способных выполнять параллельные вычисления, что делает GPU идеальными для параллельной обработки больших массивов данных, как это необходимо в графических приложениях и в задачах машинного обучения.
GPU процессоры могут содержать тысячи простых ядер (compute units - CU), что позволяет им обрабатывать большие потоки данных. Высокий уровень параллелизма, позволяет GPU-процессорам эффективно справляться с задачами, которые могут быть разбиты на множество мелких подзадач, таких как обработка изображений, инференс и обучение нейронных сетей.
TPU (Tensor Processing Unit) Тензорный процессор – это ещё один тип специализированного процессора, разработанный для ускорения и обучения нейронных сетей.
TPU используют систолические массивы, обеспечивая быстрое исполнение высокопроизводительных операций умножения и сложения матриц.
В отличие от центральных процессоров общего назначения (CPU) или графических процессоров (GPU), TPU предназначены для ускорения задач и рабочих нагрузок ИИ, таких как операции со слоями нейронной сети, состоящих из скалярной, векторной и тензорной математики.
NPU (Neural Processing Unit) Нейронный процессор – это тип специализированного аппаратного ускорителя с архитектурой, имитирующей нейронные сети человеческого мозга. По назначению и принципу работы NPU и TPU очень схожи. Довольно часто термин NPU выступает как общее название для акселераторов нейросетей.
В качестве примера на рис.2 представлена структура ядра TPU одного из китайских производителей процессоров. Как показано на рис.2, TPU разработан с несколькими вычислительными ядрами, каждое из которых называется NPU. TPU основан на архитектуре Single Instruction Multiple Data – SIMD (одиночный поток команд, множественный поток данных, ОКМД) и имеет многоядерную конструкцию. Он состоит из BDC (контроллера широковещательных данных) и GDMA (глобального прямого доступа к памяти).
В этой архитектуре TPU выполняет вычисления по принципу SIMD, то есть в любой момент времени все NPU выполняют одну и ту же вычислительную инструкцию, но каждый NPU работает с разными данными.
TPU исключительно хорошо справляется с крупномасштабными задачами глубокого обучения, особенно в сценариях, требующих высокой пропускной способности и низкой задержки.
Часто ядра NPU/TPU используются с центральным процессором (CPU) для обеспечения дополнительной вычислительной мощности.
Китайские процессоры с интегрированными NPU/TPU ускорителями.
Процессоры ряда китайских производителей могут рассматриваться как альтернативы Nvidia для устройств в области обработки нейронных сетей, видеоаналитики и компьютерного зрения. Одними из самых популярных в России, являются процессоры компании RockChip.
RockChip – это китайский производитель процессоров, который предлагает широкий спектр чипов для встраиваемых систем, мобильных устройств и IoT-решений. Некоторые из их моделей, такие как RK3568, RK3576, RK3588, оснащены NPU для ускорения задач ИИ.
Среди процессоров RockChip можно выделить RK3588. Модули на базе данного ЦП могут представлять собой интересные альтернативы платформам Nvidia Jetson, особенно для задач, связанных с искусственным интеллектом и обработкой видеоданных.
Для облегчения оценки производительности, развертывания и выполнения моделей на аппаратных платформах Rockchip производитель предлагает набор инструментов и библиотек RKNN Toolkit2 – Rockchip Neural Network (рис 3). Программный стек RKNN помогает пользователям быстро развертывать модели ИИ на чипах Rockchip [3].
С помощью RKNN Toolkit2 модели Caffe, TensorFlow, TFLite ONNX, Darknet, Pytorch, преобразуется в модель RKNN, которая в последствии может быть загружена и использована на платформе Rockchip NPU. Этот инструмент обеспечивает возможность использования всех преимуществ аппаратного ускорения на NPU (Neural Processing Unit) компании Rockchip [4].
Примеры встраиваемых компьютерных модулей и блоков.
В настоящее время на российском рынке достаточно широко представлены встраиваемые вычислители на базе процессоров с континуального Китая. В качестве примера рассмотрим компьютерные модули [5] производства НПК «АТРОНИК».
В номенклатуре компании имеются встраиваемые компьютерные модули на ARM-процессорах с интегрированными ядрами NPU/TPU В табл. 1 приведен сравнительный анализ модулей стандарта SMARC 2.1 производства НПК «АТРОНИК» [6].
Таблица 1
Модуль | |||
Форм-фактор | |||
Центральный процессор | 4 ядра ARM Cortex-A55 1,4ГГц | 8 ядер (4×Cortex-A76+4×Cortex-A55), 2 ГГц. | 8 ядер Cortex-A53 1,6 ГГц |
Ускоритель | NPU, 0,8 Tops | NPU, 6 Tops | TPU, 16 Tops |
Объем ОЗУ | DDR4 4 Гб с ECC | LPDDR4 16 Гб | LPDDR4 16 Гб |
Объем ПЗУ (eMMC) | 32 Гб | 64 Гб | 64/128 Гб |
HDMI | v.2.0 | v.2.1 | v.2.1 |
Потребляемая мощность, Вт | до 7 | до 20 | до 20 |
Рабочий температурный диапазон | -40…+85°С | -40…+85°С | -40…+85°С |
Поддерживаемые операционные системы | Linux Ubuntu, AstraLinux, ЗОСРВ Нейтрино | Linux Debian, AltLinux, | Linux |
Дублированные коммуникационные интерфейсы (Ethernet, CAN, RS-232/422/485), система коррекции ошибок памяти (ECC), промышленный температурный диапазон эксплуатации обеспечивают эффективное использование модулей НПК «Атроник» при создании надежных компьютерных систем.
На рис.4 приведено сравнение производительности представленных компьютерных модулей Атроник с аналогами от Nvidia при работе с популярными наборами нейронных сетей.
Несмотря на относительно скромные результаты модуля МЦП1503, его производительности более чем достаточно для решения основных задач по ускорению нейронных сетей и видеоаналитики, особенно на борту беспилотных транспортных средств и робототехнических комплексов
Помимо описанных выше встраиваемых компьютерных модулей, на рынке представлен модуль SM9 16-ENC-A3 на базе китайского процессора с интегрированным TPU ускорителем (рис. 5).
Модуль SM9 16-ENC-A3 выполнен в форм-факторе Nvidia Jetson Orin Nano и обеспечивает высокую производительность. Благодаря специализированной архитектуре процессора, модуль SM9 обеспечивает параллельную работу нескольких нейронных сетей и обработку данных с нескольких датчиков высокого разрешения, что необходимо для систем ИИ.
Модуль отличается низким энергопотреблением, высокой вычислительной мощностью и богатым набором интерфейсов. SM9 поддерживает различные режимы вычислений INT4/INT8/FP16/BF16/FP32 и позволяет обрабатывать 16-каналов HD видео в реальном времени.
SM9 16-ENC-A3 можно применять для анализа изображений, голоса и естественного языка, а также интегрировать в такие продукты, как интеллектуальные вычислительные серверы, периферийные вычислительные блоки, промышленные управляющие компьютеры, дроны и устройства AIOT.
На базе представленных компьютерных модулей могут быть созданы ИИ-видеосерверы, интеллектуальные камеры видеонаблюдения, системы интеллектуального мониторинга и управления беспилотным транспортом и другие высокопроизводительные вычислительные устройства с низким энергопотреблением. Благодаря поддержке режима сопроцессора модули могут использоваться в качестве внешнего нейросетевого ускорителя или объединены в вычислительный кластер.
Далее показано несколько примеров вычислительных устройств разработанных на базе компьютерных модулей НПК «Атроник».
Бортовая Доверенная Вычислительная Платформа (БДВП), (рис. 6), представляет собой встраиваемый вычислитель для создания устройств видеоаналитики на основе нейронных сетей с возможностью криптографической защиты данных и каналов управления. Платформа может использоваться в качестве интеллектуального вычислителя различных робототехнических комплектов и беспилотных транспортных средств, а также на стационарных наземных объектах в составе интеллектуальных видеокамер и многопоточных AI EDGE серверов.
Бортовой компьютер (рис. 7) системы автономной (оптической) навигации. Система позволяет определять местоположение и ориентацию беспилотного воздушного судна (БВС) в пространстве, автономно осуществлять навигацию, выполнять миссии и задачи в условиях отсутствия сигналов ГНСС с помощью методов визуальной одометрии. Бортовой компьютер обрабатывает входящую информацию и выдает координаты расположения БВС на местности.
Интеллектуальные видеокамеры со встроенной аналитикой и средствами кибербезопасности (рис. 8). Камеры обеспечивает установку и исполнение нейронных сетей пользователя, непрерывное кибербезопасное видеонаблюдение (класс защиты КС3) за объектом в условиях размещения видеокамеры вне защищенного периметра и в условиях узкополосных или отсутсвия каналов связи. Фиксируют юридически значимые события и добавляют электронную цифровую подпись на зафиксированные кадры.
Заключение
Выбор между Nvidia Jetson или аналогом зависит от конкретных требований проекта, включая производительность, поддержку фреймворков, энергопотребление и бюджет. Если нужна высокая производительность для сложных AI-задач, Nvidia Jetson может быть лучшим выбором. Если же необходимо доступные решения для менее требовательных приложений, RockChip RK3588 и другие процессоры с интегрированными NPU/TPU ускорителями могут стать хорошими альтернативами.
Литература
1. NVIDIA Celebrates 1 Million Jetson Developers Worldwide at GTC. – URL: https://blogs.nvidia.com/blog/million-jetson-developers-gtc/
2. Introduction to the HIP programming model. – URL: https://rocm.docs.amd.com/projects/HIP/en/latest/understand/programming_model.html#hardware-differences-cpu-vs-gpu
3. rockchip-linux/rknn-toolkit2. – URL: https://github.com/rockchip-linux/rknn-toolkit2
4. Экспорт Rockchip RKNN для Ultralytics YOLO11 моделей. – URL: https://docs.ultralytics.com/ru/integrations/rockchip-rknn/#what-is-rockchip
5. Медведев А.В. «Компьютерные модули – преимущества применения и популярные стандарты на примерах продукции НПК «АТРОНИК» // Электроника НТБ. – 2024. - №3. – С.158-168.
6. Медведев А.В. «Компьютерные модули формата SMARC от НПК «Атроник» // CONTROL ENGINEERING Россия. – 2023. - №4. – С.32-36.