Nvidia jetson nano android

NVIDIA Jetson Nano: тесты и первые впечатления

Относительно недавно, в этом, 2019 году, NVIDIA анонсировала одноплатный компьютер совместимого с Raspberry Pi форм-фактора, ориентированный на AI и ресурсоемкие расчеты.

После его появления в продаже, стало интересно посмотреть, как это работает и что на нем можно делать. Стандартные бенчмарки использовать не так интересно, так что придумаем свои, для всех тестов в тексте приведены исходники. Для тех, кому интересно что получилось, продолжение под катом.

Hardware

Для начала, технические характеристики с сайта NVIDIA:

Из интересного, здесь можно отметить несколько моментов.

Первое — это GPU, имеющий 128 ядер, соответственно, на плате можно запускать GPU-ориентированные задачи, вроде CUDA (поддерживается и установлен из «коробки») или Tensorflow. Основной процессор 4х ядерный, и как будет показано ниже, вполне неплохой. Память 4Гб, общая между CPU и GPU.

Второе — это совместимость с Raspberry Pi. Плата имеет 40-пиновый разъем с различными интерфейсами (I2C, SPI и пр), также имеется разъем камеры, который тоже совместим с Raspberry Pi. Можно предположить, что большое количество уже имеющихся аксессуаров (экраны, платы управления моторами и пр) будут работать (возможно, придется использовать удлиннительный кабель, т.к. Jetson Nano все же отличается по габаритам).

Третье — на плате имеется 2 видеовыхода, Gigabit-Ethernet и USB 3.0, т.е. Jetson Nano в целом даже чуть более функциональна чем «прообраз». Питание 5В, может браться как по Micro USB, так и через отдельный разъем, который рекомендуется для майнинга биткоинов ресурсоемких задач. Так же как и в Raspberry Pi, софт грузится с SD-карты, образ которой нужно предварительно записать. В целом, по идеологии, плата вполне похоже на Raspberry Pi, что видимо и задумывалось в NVIDIA. Но вот WiFi на плате нет, что есть определенный минус, желающим придется использовать USB-WiFi модуль.

Если присмотреться внимательно, то можно увидеть, что конструктивно устройство состоит из двух модулей — собственно модуля Jetson Nano, и нижней платы с коннекторами, соединение осуществляется через разъем.

Т.е. плату можно отсоединить и использовать отдельно, это может быть удобно для встраиваемых решений.

Кстати о цене. Оригинальная цена Jetson Nano в США 99$, цена в Европе с наценкой в местных магазинах порядка 130Евро (если ловить скидки, наверно можно найти и дешевле). Сколько стоит Nano в России, неизвестно.

Software

Как упоминалось выше, загрузка и установка мало отличается от Raspberry Pi. Загружаем образ на SD-карту через Etcher или Win32DiskImager, попадаем в Linux, ставим необходимые библиотеки. Отличное по подробности пошаговое руководство есть здесь, я пользовался им. Перейдем сразу к тестам — попробуем запустить разные программы под Nano, и посмотрим как они работают. Для сравнения я использовал три компьютера — свой рабочий ноутбук (Core I7-6500U 2.5ГГц), Raspberry Pi 3B+ и Jetson Nano.

Для начала, скриншот команды lscpu.

Raspberry Pi 3B+:

Для расчетов начнем с чего-нибудь простого, но требующего процессорного времени. Например, с вычисления числа Пи. Я взял несложную программу на Python со stackoverflow.

Не знаю, является ли она оптимальной или нет, но нам это и не важно — нам интересно относительное время.

Как и ожидалось, программа работает не быстро. Результат для Jetson Nano: 0.8c.

Raspberry Pi 3B+ показал заметно большее время: 3.06c. «Образцовый» ноутбук выполнил задачу за 0.27с. В общем, даже без использования GPU, основной процессор в Nano вполне неплох для своего форм-фактора. Желающие могут проверить на Raspberry Pi 4, у меня ее в наличии нет.

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

Перейдем к более интересному, расчетам с помощью GPU, для чего разумеется (плата ведь от NVIDIA), будем использовать CUDA. Библиотека PyCUDA потребовала некоторого шаманства при установке, она не находила cuda.h, помогло использование команды «sudo env „PATH=$PATH“ pip install pycuda», возможно есть другой способ (еще варианты обсуждались на форуме devtalk.nvidia.com).

Читайте также:  Что такое swap для андроид

Для теста я взял несложную программу SimpleSpeedTest для PyCUDA, которая просто в цикле считает синусы, ничего полезного такой тест не делает, но время оценить им вполне можно, и его код простой и понятный.

Как можно видеть, вычисление делается с помощью GPU через CUDA и с помощью CPU, через numpy.

Результаты:
Jetson nano — 0.67c GPU, 13.3c CPU.
Raspberry Pi 3B+ — 41.85c CPU, GPU — данных нет, CUDA на RPi не работает.
Ноутбук — 0.05с GPU, 3.08c CPU.

Все вполне ожидаемо. Расчеты на GPU гораздо быстрее расчетов на CPU (все же 128 ядер), Raspberry Pi отстает весьма значительно. Ну и разумеется, сколько волка не корми, у слона все равно больше ноутбучная видеокарта гораздо быстрее карты в Jetson Nano — вполне вероятно, что вычислительных ядер в ней гораздо больше.

Заключение

Как можно видеть, плата у NVIDIA получилась вполне интересной и весьма производительной. Она немного больше по размеру и дороже, чем Raspberry Pi, но если кому-то нужна большая вычислительная мощность при компактном размере, то оно вполне стоит того. Разумеется, нужно это не всегда — чтобы например, отправлять температуру на narodmon, хватит и Raspberry Pi Zero, причем с многократным запасом. Так что Jetson Nano не претендует на замену Raspberry и клонов, но для ресурсоемких задач она весьма интересна (это могут быть не только дроны или мобильные роботы, но и например, камера для дверного звонка с распознаванием лиц).

В одну часть все задуманное не уместилось. Во второй части будут тесты AI-части — тесты Keras/Tensorflow и задач по классификации и распознаванию изображений.

Источник

Running Android on Antmicro’s open source NVIDIA® Jetson Nano and Xavier NX baseboard

Published: Aug 7 2020

Topics: Open OS, Open hardware

With considerable deep-learning compute in a small form factor, NVIDIA’s Jetson SoMs are often Antmiro’s choice for a broad scope of advanced computing solutions that we build for customers. The Jetson platform uses Linux (in a flavor dubbed Linux for Tegra, or L4T) as the default OS provided by NVIDIA, and some of the most common themes in our projects involving Jetson modules include customizing this OS, building custom drivers, kernels, OpenEmbedded distributions, gstreamer pipelines, over-the-air update systems, robust A/B rescue systems, AI frameworks and applications.

But Linux is not the only operating system we work with. Now, for those who are looking to combine the Jetson platform’s AI powers with beautiful and familiar user interfaces, well-known mobile APIs and standard applications, we are happy to announce Android for our open source Jetson Nano™ and Xavier NX™ baseboard.

Android on Jetson — a natural consequence

A few years ago we wrote a blog note about choosing Android for embedded applications, where we described how various industrial and consumer-facing systems can benefit from this OS. Today, we are bringing those benefits over to our open source Jetson Nano / Xavier NX platform.

Antmicro was early to embrace Android in embedded systems — porting and implementing Android on a range of architectures including x86, Arm and MIPS since 2013, on SoCs from NXP through Qualcomm, Rockchip and even the Xilinx Zynq. This is not our first foray into Android on NVIDIA platforms — last year we released Android for the Apalis TK1 SoM from Toradex, so finding a way to run Android on the TK1’s younger siblings was just a matter of time.

Android feels like a natural fit for the extremely popular Jetson platforms, given its powerful graphics capabilities and an increasing number of screen-enabled devices that we are building around our open source baseboard and its custom variants, and projects which combine a Jetson SoM with a separate Android-capable device — just for the sake of a nice UI.

New territory, familiar feel

Touchscreen GUIs have been making their way beyond purely consumer products and into a broad spectrum of industrial devices. A standard that lots of users and developers are familiar with (based on a daily usage in their smartphone or tablet among billions of people worldwide, and millions of apps in the Google Play store), Android can be a perfect match for various applications where operators and users need to interact with a screen without having to spend a long time figuring out the user experience of an arcane (and unfortunately often ugly) industrial UI.

Читайте также:  Как заставить андроид говорит

Coming with a unified GUI framework, well-defined APIs and a variety of interesting programming paradigms and development environments for apps — Java, Kotlin and Dart being some of them, Android can be used for example in control and measurement panels, smart dashboards, panel computers as well as infotainment and retail screens. It is gaining popularity in white goods, sports and training equipment as well as, of course, smart vehicles. In our work with Android, we have touched nearly all of those areas, in some really interesting applications that sometimes surprised us with their creative potential.

UX and UI are notoriously hard to get right, so instead of investing in a from-scratch design of a separate industrial device UI, in applications which already have a dedicated app — perhaps a smart warehouse, or transport application, or retail screen — you can use our services to get an industrialized Android BSP for a product that will share a significant part of the codebase and “feel” with your existing solution.

Let us design your next Android product around our open source platform

We have just released the Android 10 port for our open source carrier board. At Antmicro, we have been working on a large number of edge AI projects based on this highly popular platform, developing a rich software service offering and an open source hardware ecosystem with numerous accessories to enable rapid prototyping of smart products for our customers. We can integrate the elements of your early proof of concept into a fully custom product, over which you will have full control.

Источник

Встраиваемые системы машинного обучения на базе Nvidia Jetson

Аппаратные платформы для машинного обучения быстро развиваются и дешевеют. Модули Nvidia Jetson позволяют создавать эффективные и доступные решения для Edge Computing. Сегодня стало возможным уместить высокопроизводительную систему с 256 графическими ядрами Nvidia Cuda в компьютер, умещающийся на ладони.

В статье мы разберем что такое Edge Computing, расскажем о модулях Nvidia Jetson и покажем решения, которые нам удалось разработать на их основе.

Edge Computing


Концепция Edge Computing предполагает экономию ресурсов с помощью переноса вычислительных мощностей максимально близко к конечному оборудованию.

Рассмотрим один пример из реального проекта: заказчику требуется распознавать номер автомобиля, подъезжающего к воротам на удаленном объекте. Над воротами установлена цифровая камера высокого разрешения. Единственная связь с объектом — дорогой канал мобильного интернета. Раньше заказчику приходилось обрабатывать любое движение на видео и пересылать кадры с камеры на сервер для распознавания. Большая часть пересылаемых кадров содержала ложные срабатывания: движение людей, животных, погодных явлений. Это приводило к повышенному расходу мобильного трафика. С появлением доступных решений Еdge Сomputing стало возможным обрабатывать видеопоток локально на объекте, с помощью машинного обучения отличать подъезжающий автомобиль от других явлений и даже распознавать его номер. В результате пересылка данных на сервер по дорогому интернет-каналу сводилась только к отправке текстовой строки с номером автомобиля. Это позволило сократить расходы на мобильный трафик в разы.

Что такое Nvidia Jetson

Nvidia Jetson — семейство встраиваемых вычислительных модулей в формфакторе SoM (System On Module), ориентированное на создание компактных и энергоэффективных систем машинного обучения. Модули Nvidia Jetson это компактные платы, содержащие на борту все компоненты полноценного компьютера: процессор, видеоядра, оперативную память, USB-контроллеры и т.д. Они предназначены для встраивания в другие платы (carrier board), разработанные под конкретные задачи.

Использования SoM значительно упрощает разработку встраиваемых систем, так как производителю специфического решения требуется разработать только плату с обвязкой (carrier board) для периферии и вставить готовый вычислительный модуль. Это позволяет снизить затраты на разработку сложных материнских плат и сфокусироваться на качестве сборки и дополнительных опциях. Также это проще для разработчиков, так как они могут использовать тот же самый модуль SoM в виде Evaluation Kit, пока финальное устройство еще не готово. В итоге разработчик ПО получает предсказуемое аппаратное окружение и может быть уверен, что при переносе программ на финальное устройство он получит ровно такую же производительность. Это особенно важно при разработке систем машинного обучения, когда результат сильно зависит от характеристик железа.

Jetson Nano

Nvidia Jetson Nano — младший модуль линейки Jetson, предназначенный для встраивания в конечные устройства вроде камер, видеорегистраторов, роботов, интерактивных терминалов и потребительской электроники. Выполнен в формфакторе SO-DIMM как платы оперативной памяти для ноутбуков.

Характеристики

Процессор: четырёхъядерный ARM Cortex-A57 MPCore @ 1.4 GHz
Графический процессор: Maxwell со 128 ядрами CUDA
Аппаратный кодек видео: кодирование 4K@30fps (кодек H.264/H.265) и декодирование 4K@60fps
Видеовыход: HDMI 2.0 или DP1.2 | eDP 1.4 | DSI (1×2), два одновременно
RAM: 4 ГБ LPDDR4 64-бит; 25,6 ГБ/с
Флэш-память: 16 ГБ eMMC (для операционной системы)
Интерфейсы: 1×1/2/4 PCIE, 1×USB 3.0, 3×USB 2.0, Gigabit Ethernet
Ввод-вывод: 1×SDIO / 2×SPI / 6×I2C / 2×I2S / пины GPIO
Операционные системы: Linux
Размеры: 69,5×45 мм
Подключение: 260-пиновый коннектор SO-DIMM DDR4

Читайте также:  Android как поставить apk

Благодаря низкой стоимости модуля Jetson Nano, множество разработчиков успели попробовать его в работе. Даже на хабре уже есть несколько статей о применении его для машинного зрения и распознавания образов: Демо Jetson Nano — распознавание котиков. Это наиболее доступный и популярный модуль для разворачивания систем машинного обучения.

Видеорегистратор MIC-710IVA на базе Nvidia Jetson Nano


Мы представляем решение для интеллектуального видеонаблюдения «все в одном» — цифровой 8-канальный видеорегистратор MIC-710IVA на базе Nvidia Jetson Nano. Он позволяет интегрировать системы машинного зрения без построения сложного комплекса из нескольких устройств.

  • Цифровой видеорегистратор с системой хранения данных
  • Вычислительный модуль из 128 ядер CUDA для обработки видео в реальном времени
  • 8-портовый PoE коммутатор для подключения камер напрямую
  • Блок цифровых входов/выходов для управления реле, герконами, сигнализациями и т.д.

Машинное обучение быстро стало трендом в видеонаблюдении. Оно позволяет автоматизировать то, что раньше приходилось делать человеку, например, выявлять аномальное поведение людей, автомобилей, природных явлений, обнаруживать аварии, анализировать загруженность объектов и т.д. Больше не нужно полагаться на внимательность диспетчера. Такие системы востребованы в ритейле, охранных комплексах, транспортных узлах.

Технические характеристики MIC-710IVA

  • Построен на базе NVIDIA Jetson Nano
  • 8 портов PoE для видеокамер
  • Возможность установки двух 3.5″ HDD
  • ОС Linux
  • Низкое энергопотребление
  • Поддержка видео-кодеков H.264 / H.265
  • Интерфейс RS-485 и 8-битные цифровые входы/выходы

Задняя панель видеорегистратора MIC-710IVA

Видеорегистратор MIC-710IVA позволяет выполнять первичную обработку видеоданных в реальном времени, без необходимости транслировать весь поток в удаленные центры обработки данных. Это позволяет снизить нагрузку на сеть и избавиться от необходимости передавать чувствительные данные третьим лицам.

Jetson Tegra X2


Jetson Tegra — более старший модуль в линейке, почти втрое производительнее чем Jetson Nano. Выполнен в формфакторе мезонинной платы, то есть вставляется в другую плату через специальный 400-контактный разъем. Существует также версия TX2i с расширенным диапазоном рабочих температур.

Характеристики

Процессор: Четырёхъядерный ARM Cortex-A57 MPCore + Двухъядерный NVIDIA Denver 2 64-Bit CPU
Графический процессор: 256 ядер NVIDIA Pascal + 256 ядер NVIDIA CUDA
RAM: 8 или 4 ГБ LPDDR4 64-бит; 59.7 ГБ/с
Подключение: 400-контактный разъем

Данный модуль ориентирован на профессиональных разработчиков и стоит в четыре раза дороже Jetson Nano. Модуль Jetson TX2 предназначен для более производительных вычислений. Применяется в робототехнике, промышленности, летательных аппаратах и т.д.

Компактный промышленный компьютер MIC-720AI

MIC-720AI построен на базе платформы Jetson TX2 с полностью пассивным охлаждением и предназначен для установки в промышленные системы машинного зрения, на производстве и в подвижных объектах. Безвентиляторная конструкция обеспечивает полную бесшумность в работе и позволяет использовать компьютер в пыльных помещениях без необходимости обслуживания.

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

Технические характеристики MIC-720AI

  • Основан на Nvidia Tegra X2
  • Полностью пассивное охлаждение
  • Два USB 3.0, один USB 2.0 OTG/Host
  • Ethernet-порт c поддержкой 802.3af PoE
  • ОС Linux
  • Широкий диапазон рабочих температур

На задней панели компьютера находится USB 2.0 порт с возможностью переключения режимов работы между OTG и Host. В режиме OTG компьютер можно подключить как USB-накопитель к другому компьютеру для передачи данных и обновления ПО.

MIC-720AI подходит для построения систем контроля производства и высокоточного анализа видеопотока.

Jetson Xavier


Jetson Xavier — самый производительный модуль в линейке. Предназначен для установки в автомобили, летательные аппараты и другие системы с большим потоком видеоданных. Выполнен в формфакторе мезонинной платы. Jetson Xavier в 20 раз производительнее Jetson TX2 и имеет на борту 512 ядер Nvidia Volta. При этом модуль потребляет до 30W.

Высокопроизводительный промышленный компьютер MIC-730AI

Компьютер MIC-730AI построен на базе Jetson Xavier и предназначен для установки в высокопроизводительные системы производства, где требуется обработка большого объема данных. Также как и в модели MIC-720AI, система охлаждения выполнена полностью на пассивных компонентах и не использует вентиляторы. Конфигурация компьютера может быть расширена с помощью подключения двух PCIe x8/x4 плат через модуль расширения iModule MIC-75M20.

Технические характеристики MIC-730AI
Основан на Nvidia Xavier
Пассивное охлаждение
Два USB 3.0, два USB 2.0
2 Ethernet-порта
Возможность подключения двух PCIe-плат (через модуль iModule MIC-75M20)
Возможность подключения 1х MiniPCIe и 1x M.2 (PCIex4 NVMe)
Два последовательных порта RS-485/232
Предустановленная ОС Linux Ubuntu 18.04
Низкое энергопотребление

Источник

Оцените статью