NVIDIA Jetson — ИИ-платформа для автономных систем

Опубликовано в номере:
PDF версия
Искусственный интеллект привлекает современных разработчиков множеством новых возможностей, которые помогают решать сложные и ранее не выполнимые задачи в самых разных сферах. Например, он может повысить производительность и существенно расширить функционал автономных систем, использующихся для анализа изображений. Программно-аппаратная платформа NVIDIA Jetson позволяет ускорить работу алгоритмов глубокого обучения и сделать автономные устройства интеллектуальными.

Тема искусственного интеллекта (ИИ) и машинного обучения сегодня одна из самых горячих. С ней тесно связаны голосовые помощники, различные роботы, создание картин и музыки. И если до универсального интеллекта, соизмеримого с человеческим, дело еще не дошло, то многие отдельные задачи уже успешно выполняются ИИ, в том числе при помощи нейросетей и алгоритмов глубокого обучения.

Один из очевидных примеров — анализ изображений: определение и идентификация объектов, поз и жестов, предсказание траектории, вычисление расстояния и т. д. Эти задачи машинного зрения активно применяются в автономных роботах, дронах и беспилотных автомобилях.

В таких случаях отлично показывают себя современные программно-аппаратные решения, в том числе и сравнительно небольших размеров. В компактных автономных системах часто применяют Raspberry Pi — недорогой одноплатный компьютер, работающий на Linux и поддерживающий Python. Если подключить к устройству камеру, то можно использовать это решение и для создания автономных систем компьютерного зрения. Это один из самых простых способов изготовления аппаратных устройств, управляемых программно, и данный компьютер применяется миллионами людей.

При всех достоинствах Raspberry Pi его мощности недостаточно для задач глубокого обучения (поскольку изначально устройство не было для этого предназначено). Если необходима более высокая мощность, можно использовать семейство программно-определяемых автономных устройств NVIDIA Jetson. Калифорнийская компания NVIDIA давно работает с ускорением машинного и глубокого обучения и предлагает модели разной производительности и ценовых категорий, подходящие для создания самых разных интеллектуальных автономных систем.

 

Семейство автономных решений NVIDIA Jetson

Сначала на рынке появились компактные Jetson TX1/TX2, затем заметно более мощный Jetson AGX Xavier, созданный специально для интеллектуальных автономных устройств, а весной NVIDIA выпустила самое компактное и недорогое устройство — Jetson Nano (рис. 1).

Jetson Nano

Рис. 1. Jetson Nano

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

Модули Jetson предназначены для приложений с разными требованиями к производительности и себестоимости, они обеспечивают применение современных алгоритмов ИИ, глубокого обучения и инференса в конечных устройствах, а также высокую энергоэффективность таких устройств.

Все модели поддерживаются единым программным стеком. Платформа оснащается набором инструментов для разработчиков Jetpack, включающим библиотеки для глубокого обучения, компьютерного зрения, ускоренных вычислений и мультимедиа, а также драйверы для разных типов датчиков. Даже Jetson Nano обладает достаточной производительностью для современных задач ИИ при параллельной работе нескольких нейронных сетей и обработке данных с датчиков высокого разрешения. В основном это устройство используется во встроенных IoT-приложениях, видеорегистраторах начального уровня, домашних роботах и интеллектуальных шлюзах с возможностями аналитики.

Jetson Nano — это недорогое расширение семейства Jetson (табл.), концептуально схожее с Raspberry Pi — компактным одноплатным компьютером под управлением Linux с близкими размерами и энерго­потреблением. Однако модуль от NVIDIA содержит не только мощный центральный процессор (CPU) из четырех ядер Cortex-A57, но и графический процессор (GPU) семейства Maxwell, который состоит из 128 вычислительных ядер, обеспечивающих производительность почти в 0,5 терафлопса при вычислениях с половинной (FP16) точностью, чего вполне достаточно для многих моделей глубокого обучения

Таблица. Основные характеристики линейки устройств NVIDIA Jetson

 

Jetson Nano

Jetson TX1

Jetson TX2

Jetson AGX Xavier

Графический процессор

128 ядер Maxwell

0,5 терафлопс (FP16)

256 ядер Maxwell

1 терафлопс (FP16)

256 ядер Pascal

1,3 терафлопс (FP16)

512 ядер Volta + NVDLA

10 терафлопс (FP16)

32 тераопс (INT8)

Центральный процессор

4 ядра ARM Cortex-A57

(1,5 ГГц)

4 ядра ARM Cortex-A57

(1,5 / 1,7 ГГц)

6 ядер Denver и A57

2 ГГц (2 ×) 2 Мбайт L2

8 ядер Carmel

2,26 ГГц

(4 ×) 2 Мбайт L2 + 4 Мбайт L3

ОЗУ

4 Гбайт 64-бит LPDDR4

25,6 Гбайт/с

4 Гбайт 64-бит LPDDR4

25,6 Гбайт/с

4 Гбайт 128-бит LPDDR4

51 Гбайт/с

8 Гбайт 128-бит LPDDR4

58 Гбайт/с

16 Гбайт 256-бит LPDDR4х

2133 МГц

137 Гбайт/с

ПЗУ

16 Гбайт eMMC

16 Гбайт eMMC

16 Гбайт eMMC

32 Гбайт eMMC

32 Гбайт eMMC

Декодирование видео

4К при 30 (Н.264/Н.265)

4К при 30 (Н.264/Н.265)

2 × 4К при 30 (HEVC)

8 × 4К при 60 (HEVC)

Кодирование видео

4К при 60 (Н.264/Н.265)

4К при 60 (Н.264/Н.265)

2 × 4К при 30 (12-бит)

12 × 4К при 30 (12-бит)

Интерфейс камер

12 линий MIPI CSI-2 DPHY 1.1 (1,5 Гбит/с)

12 линий MIPI CSI-2 DPHY 1.1 (1,5 Гбит/с)

12 линий MIPI CSI-2 DPHY 1.2 (30 Гбит/с)

16 линий MIPI CSI-2 | 8 линий SLVS-EC

D-PHY (40 Гбит/с)

C-PHY (109 Гбит/с)

Модуль

69,6 × 45 мм

260-контактный разъем

87 × 50 мм

400-контактный разъем

87 × 50 мм

400-контактный разъем

100 × 87 мм

699-контактный разъем

ПО

Jetpack SDK — единый пакет ПО для всех моделей Jetson

Модель Nano имеет 4 Гбайт оперативной памяти, а также 16 Гбайт постоянной — этого объема хватает в большинстве применений, на которые рассчитано устройство. Встроенный блок обработки видеоданных умеет аппаратно декодировать один видеопоток в 4K-разрешении при 60 FPS или сразу восемь Full HD-потоков, а сжатие видеоданных осуществляется с вдвое меньшей производительностью. Выводить изображение с Nano можно сразу на два устройства по разъемам HDMI или DisplayPort, также устройством поддерживается один порт PCI-Express x4 и один USB 3.0. Nano можно сконфигурировать для работы в двух режимах, выбрав ограничение энергопотребления на уровне 5 или 10 Вт.

Чтобы четко понимать разницу в возможностях разных модулей Jetson, сравним Nano с AGX Xavier. В состав самого мощного решения линейки входит уже 512-ядерный GPU семейства Volta с аппаратным ускорением глубокого обучения на тензорных ядрах и производительностью в 10 терафлопс для FP16-точности и 32 триллиона операций в секунду для целочисленных операций. Также Xavier содержит восемь вычислительных ядер собственной разработки компании, а объем ОЗУ составляет 16 Гбайт при очень высокой пропускной способности.

Модель Jetson TX2 поставляется в двух версиях, которые отличаются объемом ОЗУ и ПЗУ. Также, если Jetson TX1 основан на GPU архитектуры Maxwell и CPU-ядрах Cortex-A57, то модель TX2 имеет видеоядро Pascal и шесть CPU-ядер: собственного дизайна Denver и A57. Значения остальных характеристик у TX2 примерно вдвое выше. Если сравнивать Nano и TX2, то при схожем физическом размере модулей цена Jetson TX2 значительно выше. Поэтому Jetson Nano вполне можно назвать входным билетом в мир автономных ИИ-решений.

Важное достоинство всех Jetson: как и другие современные устройства компании NVIDIA, они поддерживают те же библиотеки CUDA для ускорения, которые используются большим количеством фреймворков глубокого обучения на основе Python. Можно просто взять ранее разработанное приложение глубокого обучения на Python и с минимальными изменениями запустить его на Jetson Nano, получив очень приличную для такого маленького устройства производительность в задачах машинного зрения.

 

Производительность Jetson Nano

Как можно увидеть на диаграмме (рис. 2), многие задачи инференса нейронных сетей на устройствах конкурентов или не работают совсем, или делают это со значительно меньшей производительностью. Очевидно, Jetson Nano подходит не для всех задач, но позволяет добавить элементы интеллектуальности к устройствам доступного ценового сегмента.

Производительность Jetson Nano в задачах инференса нейронных сетей по сравнению с другими решениями

Рис. 2. Производительность Jetson Nano в задачах инференса нейронных сетей по сравнению с другими решениями

Это выгодно отличает Jetson Nano от попыток использования глубокого обучения на аналогичных компактных устройствах типа Raspberry Pi, даже с добавлением нейроускорителя от Intel. Решения семейства Jetson могут обеспечивать различные уровни производительности и энерго­потребления в зависимости от требований. Они уже применяются в самых разных областях человеческой деятельности: медицине, авиации, производстве, строительстве, складах, магазинах и т. д. (рис. 3).

Сферы применения модулей NVIDIA Jetson

Рис. 3. Сферы применения модулей NVIDIA Jetson

 

Сферы применения модулей семейства Jetson

Сельское хозяйство — одна из самых консервативных сфер, но применение средств ИИ в ней имеет огромный потенциал. Одна из компаний, Blue River, уже давно представила свою технологию для точечной доставки удобрений строго на те растения, которые необходимо опрыскивать. К примеру, нужно избавиться от сорняков, не тронув культурные растения, — для этого система See & Spray, имеющая вид прицепного устройства к трактору, при проходе по полю снимает его поверхность, а ИИ-система на основе Jetson определяет участки для опрыскивания и прицельно наносит на них удобрения. Химикатов в почву при таком подходе заносится минимальное количество, и делается это исключительно адресно — маленькими дозами и прямо по сорнякам.

Системы на базе Jetson применяются и в других сферах. В частности, их используют российские производители камер видеофиксации нарушений ПДД. Такие камеры, благодаря расширению возможностей решений NVIDIA, уже «научились» не только быстро распознавать номера автомобилей, но и отслеживать гораздо большее количество нарушений, связанных с дорожной разметкой и знаками.

Еще один пример использования систем с ИИ — «умные» сетевые видео­регистраторы, требующие обработки потоков информации с многочисленных камер. Сейчас они чаще всего просто записывают данные с камер и, как максимум, улавливают появление движения в кадре. Особого интеллекта в таких видеорегистраторах нет, хотя это и востребовано клиентами, но до последнего времени внедрять ИИ в такие устройства было слишком дорого. Jetson Nano за счет низкой цены и миниатюрности хорошо подходит для таких решений.

Самый простой и бюджетный вариант видеорегистратора на основе Nano способен одновременно обрабатывать изображения с восьми камер в Full HD-разрешении при 30 FPS, распознавая заданные объекты (людей, автомобили и др.), а также обеспечивать скорость обработки более 40 изображений в секунду при распознавании обученной нейросетью ResNet50. Система подороже — на Jetson TX2 — обрабатывает уже 16 таких потоков, при этом скорость распознавания объектов составляет под 100 изображений в секунду. В свою очередь, самый продвинутый регистратор на Jetson AGX Xavier справится уже с 64 видеопотоками в Full HD или 16 потоками 4K-разрешения, а распознавание изображений нейросетью ResNet50 будет осуществляться на скорости почти в 2000 изображений в секунду.

Аналогичные задачи стоят и перед системами «умных городов»: распознаванием лиц, пола, возраста и даже человеческих эмоций в ближайшие годы займутся сотни тысяч «умных» камер, и для внедрения таких технологий решения семейства Jetson и предназначены.

В целом, применять модули компании можно в самых разных устройствах, вплоть до сложных промышленных роботов. Сама NVIDIA разработала Jetbot — платформу для создания роботов с открытым кодом, использующую Jetson Nano в качестве аппаратной части. Она позволяет собрать действующего робота, который программируется через браузер. На github выложен список составных частей, которые нужно приобрести дополнительно (камера, мотор, батарея, SD-карта и т. п.), и чертежи для создания тележки для печати на 3D-принтере. Даже человек, мало что знающий про ИИ, может собрать за несколько дней автономного робота, который будет интеллектуальнее всех «умных» роботов-пылесосов, продающихся на рынке. Также у NVIDIA есть краткий вебинар по созданию программного стека для работы Jetbot. Эта открытая инициатива компании хорошо подойдет начинающим разработчикам, студентам и школьникам. Работать с Jetson достаточно просто, нужно приобрести комплект разработчика и скачать с сайта компании программную часть. Даже инженер без особого опыта работы с глубоким обучением в итоге сможет получить рабочую нейросеть.

Затем можно продолжать изучение темы по лабораторным работам Deep Learning Institute и конференциям GTC, экспериментировать с устройством, превратив свою конструкцию в нечто совершенно иное, хоть даже и передвижное мусорное ведро, следующее за своим хозяином (это, конечно, шутка, а вот «умные» селфи-дроны — нет). И все это — за пару десятков тысяч рублей и несколько строчек кода. Если же конструкции не требуется возможность автономного передвижения, то за те же деньги можно сделать полноценную систему распознавания лиц для своей квартиры или анализ поведения покупателей в магазине. Простейшие системы, отслеживающие и запоминающие людей, не потребуют даже написания сложного кода — можно воспользоваться имеющимися примерами.

 

Преимущества платформы NVIDIA для ИИ

Платформа NVIDIA покрывает все решения компании, от суперкомпьютеров для дата-центров до автономных устройств Jetson. Открытой платформой для разработки уже пользуется несколько сотен тысяч разработчиков: инструментарий для компактных Jetson мало отличается от того, что есть для привычных настольных GPU. Однако преимущество решений NVIDIA в том, что все они поддерживают CUDA и перенос кода или части вычислений с одного устройства на другое не вызовет никаких трудностей. Можно обучать модели в высокопроизводительных дата-центрах на Tesla, а внедрять их на компактных Jetson.

Миграция задачи с устройства на устройство происходит очень просто и бесшовно, поскольку базовая архитектура CUDA используется во всех продуктах компании, от Tesla/DGX для дата-центров до Jetson в компактных автономных устройствах. Все эти устройства различаются по производительности и функциональности, но с точки зрения программирования и удобства работы между ними разницы нет. И если у разработчика есть опыт работы с GPU, то он сможет заниматься и дата-центрами, и автономными устройствами.

Хотя NVIDIA традиционно считается компанией, производящей аппаратное обеспечение, она создает и программную часть. Специалисты компании разработали полноценный программный стек для автономных решений (рис. 4): в низкоуровневой его части лежит поддержка CUDA и Jetpack SDK для тех, кто хочет иметь прямой доступ к вычислениям, графическим ядрам, сенсорам и т. п., а за более высокий уровень отвечают модули, разработанные как самой компанией, так и ее партнерами. Эти модули помогают решать задачи тем, кто не хочет или не может заниматься низкоуровневым программированием, — им доступны такие аппаратно-ускоренные возможности, как определение глубины сцены, распознавание объектов, поз и жестов, планирование траекторий, распознавание голосового ввода и др.

Единый программный стек для решений на базе модулей NVIDIA Jetson

Рис. 4. Единый программный стек для решений на базе модулей NVIDIA Jetson

NVIDIA поощряет разработку сторонних модулей, не имеющих к компании никакого отношения. В качестве примера можно привести компанию Fastvideo, известную обработкой изображений. Они работают с низкоуровневым слоем экосистемы NVIDIA, а сторонние компании могут использовать готовые библиотеки их разработки, оптимизированные для аппаратной части NVIDIA.

Среди ПО NVIDIA существует также Deepstream SDK — часть программной платформы для анализа данных с камер и сенсоров в реальном времени, использующая аппаратное ускорение. SDK создан не только для Jetson, но и для других решений NVIDIA: он позволяет реализовать рабочий процесс, связанный с видео­аналитикой, — захват изображения, распознавание образов, накопление и хранение видео и т. д. Программная инфраструктура постоянно развивается, и за последние три года поддерживаемая Jetpack версия CUDA изменилась с 7.0 до 10, TensorRT — с 1.0 до 5.0, Deepstream — до 3.0, а Ubuntu — с 14.04 до 18.04. В более новом ПО не только исправляют ошибки и улучшают производительность, но и добавляют новую функциональность.

В этом заключается основное преимущество линейки NVIDIA Jetson — они позволяют создавать программно определяемые системы, использующие модели глубокого обучения с аппаратным ускорением. Специалисты NVIDIA считают, что все устройства должны быть не узкоспециализированными, а настраиваемыми — чтобы изменением лишь программной части можно было дополнить и улучшить функциональность устройства в целом. При этом разработчики могут ориентироваться на разный бюджет: если Xavier потребуется для решения самых сложных задач, то тот же Nano позволит недорого получить производительность, вполне достаточную для анализа нескольких видеопотоков одновременно. Все эти устройства используют одно и то же ПО, и только за счет смены аппаратного решения можно получить прирост производительности и расширение возможностей, без необходимости переделывать программный код.

 

Перспективы применения автономных решений NVIDIA

Универсальную платформу NVIDIA можно использовать в разнообразных отраслях: несмотря на то что сама компания в некоторых из них глубокой экспертизой не обладает, она предоставляет свой программный и аппаратный инструментарий для разработки подходящих устройств. Уже сейчас большое количество компаний разрабатывает готовые решения на модулях Jetson, подготавливает инструменты и библиотеки, занимается созданием программно-аппаратных комплексов на заказ.

Большинство из применений Jetson связано с видеоаналитикой, но ею дело не ограничивается. Перспективная сфера использования — промышленные дроны для инспекции строительных опор, трубопроводов, сложных технических сооружений и других конструкций. Раньше подобные устройства относились в основном к очень дорогим решениям за несколько тысяч долларов, но из-за бурного роста производительности современных процессоров, когда миниатюрные системы появились в продаже по сравнительно невысокой цене, стало возможным создание и недорогих устройств.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *