Обзор Nvidia Jetson Xavier NX: переосмысление ускоренного машинного обучения на GPU
В конце прошлого года Nvidia выпустила встраиваемую систему на модуле (SoM) Jetson Xavier NX. Он совместим по выводам с Jetson Nano SoM и включает в себя CPU, GPU, PMIC, DRAM и флэш-память. Тем не менее, ему не хватало важного аксессуара, своего собственного набора для разработки. Так как SoM – это встроенная плата, состоящая всего из нескольких соединительных штырьков, ее трудно использовать «из коробки». Плата разработки соединяет все контакты модуля с такими портами, как HDMI, Ethernet и USB. Модуль Jetson в сочетании с платой разработки выглядит аналогично Raspberry Pi или другим одноплатным компьютерам (SBC). Но не обманывайте себя, это не низкое, низкоэффективное устройство.
Как и Jetson Nano, комплект разработчика Jetson Xavier NX является платформой машинного обучения ; в отличие от Jetson Nano, это не устройство начального уровня. Xavier разработан для приложений, которым требуется серьезная вычислительная мощность ИИ.
На борту SoM вы получаете процессор с шестигранным ядром, использующий собственные ядра Nvidia Carmel ARM, 384-ядерный GPU на базе Volta и 8 ГБ LPDDR4x RAM со скоростью 51,2 ГБ / с. Плата для разработки добавляет HDMI, DisplayPort, Gigabit Ethernet, 4 порта USB 3.1, Wi-Fi, Bluetooth, 2 разъема для камеры, 40 контактов GPIO и слот M.2 для SSD!
8 ГБ ОЗУ и поддержка M.2 NVMe делают это значительным обновлением до Jetson Nano, но реальное обновление заключается в вычислительной мощности. По сравнению с Jetson Nano, Xavier NX где-то в два-семь раз быстрее, в зависимости от приложения.
Это связано с улучшенным процессором, шестигранным ядром Nvidia Carmel (ARM v8.2 64-bit с 6 МБ кэш-памяти L2 + 4 МБ L3), обновленным с четырехъядерного Cortex-A57; лучший графический процессор, 384-ядерный Voltra по сравнению с 128-ядерным Maxwell; плюс включение 48 тензорных ядер и двух двигателей Deep Learning Accelerator (DLA).
Подробнее: Искусственный интеллект против машинного обучения: в чем разница?
Модули Nvidia Jetson предназначены в основном для встраиваемых приложений, то есть SoM будет встроен в конкретный продукт. Все, от роботов, дронов, систем машинного зрения, сенсорных массивов высокого разрешения, видеоаналитики и автономных машин, может выиграть от производительности машинного обучения, малого форм-фактора и более низких требований к мощности Xavier NX.
Основной целью Nvidia является продажа SoM производителям устройств. Тем не менее, набор для разработки необходим для проектирования и разработки продукта, а также для тех, кто хочет попробовать продвинутое машинное обучение дома.
Производительность и форм-фактор важны для встраиваемых проектов, как и энергопотребление. Jetson Xavier NX обеспечивает до 21 триллиона операций в секунду (TOPS) при энергопотреблении до 15 Вт. При необходимости плату можно установить в режим 10 Вт. Оба режима питания могут быть настроены в зависимости от того, сколько производительности процессора вам нужно по сравнению с производительностью графического процессора. Например, вы можете использовать только два ядра процессора с частотой 1,9 ГГц и графический процессор с частотой 1,1 ГГц, или же вы можете использовать четыре ядра процессора с частотой 1,2 ГГц и тактировать частоту процессора на частоте 800 МГц. Уровень контроля исключительный.
Расскажите мне о GPU
Когда вы думаете о Nvidia, вы, вероятно, думаете о видеокартах и графических процессорах, и это правильно. Хотя графические процессоры отлично подходят для трехмерных игр, оказалось, что они хорошо работают с алгоритмами машинного обучения. У Nvidia есть целая программная экосистема, основанная на модели параллельных вычислений и программирования CUDA. Набор инструментов CUDA дает вам все необходимое для разработки приложений с GPU-ускорением и включает библиотеки с GPU-ускорением, компилятор, инструменты разработки и среду выполнения CUDA.
Я смог собрать Doom 3 для Xavier NX и запустить его на 4K!
Jetson Xavier NX имеет 384-ядерный графический процессор на основе архитектуры Volta. Каждое поколение графических процессоров от Nvidia основано на новом дизайне микроархитектуры. Этот центральный дизайн затем используется для создания разных графических процессоров (с разным количеством ядер и т.д.) Для этого поколения. Архитектура Volta нацелена на центр обработки данных и приложения AI. Его можно найти в графических картах для ПК, таких как Nvidia Titan V.
Потенциал для быстрых и плавных 3D-игр, подобных тем, которые основаны на различных 3D-движках, выпущенных с открытым исходным кодом от программного обеспечения ID, хороший. Я смог собрать Doom 3 для Xavier NX и запустить его на 4K! При сверхвысоком качестве плата показала 41 кадр / с. Неплохо для 15 ватт!
Nvidia предлагает универсальное программное обеспечение, охватывающее все свои платы Jetson, включая Jetson Nano и Jetson Xavier NX, которое называется JetPack. Он основан на Ubuntu Linux и поставляется с предварительно установленным инструментарием CUDA и другими соответствующими ускоренными пакетами разработки на GPU, такими как TensorRT и DeepStream. Существует также большая коллекция демонстраций CUDA от симуляции частиц дыма до рендеринга Мандельброта со здоровой дозой размытия по Гауссу, jpeg-кодированием и имитацией тумана.
Подробнее: Обзор Jetson Nano: ИИ для масс?
Заставь мою машину учиться
Хорошо иметь хороший графический процессор для вычислений на основе CUDA и для игр, но настоящая сила Jetson Nano заключается в том, что вы начинаете использовать его для машинного обучения (или ИИ, как любят его называть маркетологи ). Jetson Xavier NX поддерживает все популярные фреймворки AI, включая TensorFlow, PyTorch, MxNet, Keras и Caffe.
Все доски Nvidia Jetson поставляются с отличной документацией и примерами проектов. Поскольку все они используют одну и ту же экосистему и программное обеспечение (JetPack и т.д. ), Примеры одинаково хорошо работают на Jetson Nano или Jetson Xavier NX. Отличное место для начала – пример Hello AI World. Его легко загрузить и скомпилировать, и всего через несколько минут у вас будет демонстрационная версия AI, работающая для классификации изображений, обнаружения объектов и семантической сегментации, все с использованием предварительно обученных моделей.
Я нашел изображение медузы (каламбур) во время моего посещения аквариума Монтерей-Бей в 2018 году и попросил классификатор изображений обозначить его.
Почему предварительно обучен? Самым сложным в машинном обучении является то, что вы можете представить данные модели и получить результат. До этого модель нуждается в обучении, а тренировка моделей ИИ – не тривиальное усилие. Чтобы помочь, Nvidia предоставляет предварительно обученные модели, а также комплект Transfer Learning ToolKit (TLT), который позволяет разработчикам брать предварительно обученные модели и переучивать их своими собственными данными.
Демонстрация Hello AI World предоставляет вам набор инструментов для работы, включая классификатор изображений и программу обнаружения объектов. Эти инструменты могут обрабатывать фотографии или использовать прямую трансляцию с камеры. Я нашел изображение медузы (каламбур) во время моего посещения аквариума Монтерей-Бей в 2018 году и попросил классификатор изображений обозначить его.
Но это только верхушка айсберга. Чтобы продемонстрировать мощь платы Xavier NX, в Nvidia есть настройка, которая показывает, что Xavier NX выполняет параллельные задачи машинного обучения, включая обнаружение взгляда, обнаружение позы, обнаружение голоса и обнаружение людей, одновременно с помощью видеопотоков. Служебному роботу в розничной среде потребуются все эти функции, чтобы он мог определить, когда на него смотрит человек (обнаружение взгляда), что он говорит (обнаружение голоса) и куда указывает человек (обнаружение позы).
Облако стало родным
Одной из основных технологий «облака» является контейнеризация. Возможность запуска автономных микро-сервисов в заранее определенной среде. Однако эта концепция не ограничивается огромными серверами в центре обработки данных, она также может применяться к небольшим устройствам. Контейнерное программное обеспечение, такое как Docker, работает на системах на базе Arm, включая Raspberry Pi и Xavier NX. Демонстрация машинного обучения выше – это фактически четыре отдельных контейнера, работающих параллельно на плате разработки.
Это означает, что разработчики могут отказаться от монолитных образов микропрограммы, которые включают базовую операционную систему вместе со встроенными приложениями и включают в себя микросервисы и контейнеры. Поскольку разработка автономной службы может выполняться без необходимости обновления и обновления всех других приложений, обновления программного обеспечения становятся проще, а возможности масштабирования увеличиваются.
Xavier NX полностью поддерживает Docker, и контейнеры имеют полный доступ к возможностям машинного обучения платы, включая графический процессор, тензорные ядра и механизмы DLA.
Как быстро Nvidia Jetson Xavier NX?
Для тех, кто интересуется некоторыми фактическими показателями производительности. Используя мой «threadtesttool» (здесь, на GitHub) с восемью потоками, каждый из которых вычислял первые 12 500 000 простых чисел, Jetson Xavier смог выполнить тест за 15 секунд. Это сопоставимо с 46 секундами на Jetson Nano и 92 секундами на Raspberry Pi 4.
Инструмент также может тестировать одноядерную производительность, предлагая использовать только один поток. Это займет 10 секунд на Jetson Xavier NX и 46 секунд на Raspberry Pi 4. Если вы установите Xavier NX в режим 2x ядра 15 Вт, где тактовая частота процессора выше, тогда выполнение того же теста займет всего семь секунд!
Вот некоторые показатели производительности CUDA, сравнивающие Jetson Nano с Jetson Xavier:
Jetson Nano | Джетсон Ксавье NX | |
---|---|---|
СверткаFFT2D (в секундах) | 15.1 | 8.4 |
fastWalshTransform (в секундах) | 12.2 | 3.5 |
matrixMul (в GFlop / s) | 30.2 | 215.25 |
sortingNetworks | 21.2 | 5.0 |
Даже беглый взгляд на эти цифры показывает, насколько быстрее Xavier NX по сравнению с Nano.
Если учесть поддержку дисплея 4K, 8 ГБ ОЗУ и доступ к хранилищу NVMe, использовать плату разработки Xavier NX очень приятно.
Есть ли что-то хорошее для разработки?
Как среда разработки Arm, Jetson Nano превосходен. Вы получаете доступ ко всем стандартным языкам программирования, таким как C, C ++, Python, Java, Javascript, Go и Rust. Плюс есть все библиотеки Nvidia и SDK, такие как CUDA, cuDNN и TensorRT. Вы даже можете установить IDE, такие как Microsoft Visual Code!
Как я упоминал ранее, я смог взять программное обеспечение для движка Doom 3 и довольно легко собрать игру. Кроме того, я смог попробовать разные инструменты машинного обучения, такие как PyTorch и Numba. Если учесть поддержку дисплея 4K, 8 ГБ ОЗУ и доступ к хранилищу NVMe, использовать плату разработки Xavier NX очень приятно.
Подходит ли вам Nvidia Jetson Xavier NX?
Если вы только начинаете с машинного обучения, то Xavier NX, вероятно, не подходит для ваших первых инвестиций. Вы можете изучить основы ML и AI практически на всем, включая Raspberry Pi. Если вы хотите получить выгоду от аппаратного ускорения, то настоятельно рекомендуется Jetson Nano.
Но если вы переросли Jetson Nano или хотите создать профессиональный продукт, требующий большей вычислительной мощности, то Xavier NX просто необходим. Кроме того, если вы просто ищете подходящую машину для разработки на базе Arm, для удаленных сборок или в качестве настольного компьютера, то Xavier NX является потенциальным победителем.
Суть в следующем: если Raspberry Pi 4 достаточно хорош для вас, придерживайтесь его. Если вам нужна более высокая общая производительность, аппаратное обучение с аппаратным ускорением и доступ к экосистеме Jetson, то приобретите Jetson Nano. Если вам нужно больше, тогда приобретите комплект разработчика Xavier NX.
Источник записи: https://www.androidauthority.com