Обзор различных сред глубокого обучения, аппаратных процессоров и плат для разработки

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

Чтобы глубокие нейронные сети работали на периферии; оборудование, фреймворки и инструменты должны работать вместе. Поскольку периферийные приложения ИИ различаются в зависимости от варианта использования, эти требования необходимо продумать для каждого из сценариев. Необходимо выбрать правильное оборудование, фреймворки и инструменты, которые будут совместимы друг с другом и лучше всего подходят для варианта использования. Ниже мы кратко обсудим несколько фреймворков, аппаратных процессоров и плат разработки.

Структуры глубокого обучения:

Фреймворки глубокого обучения упрощают разработку и обучение моделей глубокого обучения. Фреймворк глубокого обучения — это любой инструмент, интерфейс или библиотека, которые помогают легко разрабатывать модели глубокого обучения, не вникая в сложность этих алгоритмов. Они предоставляют стандартные блоки и библиотеки для создания необходимой модели для различных приложений, таких как Computer Vision и NLP. Существует много фреймворков глубокого обучения, но некоторые из широко используемых фреймворков глубокого обучения — это PyTorch, TensorFlow, MXNet, ONNX, Caffe.

PyTorch
Это библиотека глубокого обучения с открытым исходным кодом, разработанная Facebook и основанная на библиотеке Torch. Он доступен на Python и имеет интерфейс C++. Молния PyTorch действует как интерфейс высокого уровня для PyTorch. Одной из особенностей этого фреймворка является то, что он использует динамические вычисления, что обеспечивает большую гибкость при построении сложных архитектур. Он использует императивное программирование, позволяющее выполнять вычисления по мере написания кода, а не ждать завершения всего кода. Распределенное обучение может быть выполнено с меньшим количеством кода, и поэтому с PyTorch это намного проще. Он используется в различных приложениях Computer Vision и NLP.

TensorFlow
Библиотека глубокого обучения с открытым исходным кодом, разработанная Google и основанная на Theano. Он написан на C++, Python и CUDA с оболочками на нескольких языках, таких как Python, Java. Keras предоставляет высокоуровневый интерфейс для TensorFlow. Статистически определенная обработка графики с помощью Tensorflow fold сделала возможным динамический ввод. Он использует символьное программирование, позволяющее строить графики перед вычислением. Распределенное обучение поддерживается, но требует больше усилий по кодированию по сравнению с PyTorch. Он также используется в различных приложениях Computer Vision и NLP. Это предпочтительный выбор в производственной среде.

MXNet
Среда глубокого обучения с открытым исходным кодом от Apache Software Foundation. Он поддерживает несколько языков, таких как Python, R, C++ и многие другие. Способен уместиться в очень маленьком объеме памяти. Масштабируйте до нескольких графических процессоров и машин с распределенным обучением. Он поддерживает как императивное, так и символьное программирование. Он подходит для задач компьютерного зрения, НЛП, временных рядов и многого другого.

Caffe
Он разработан Berkeley AI Research (BAIR) при участии сообщества. Он написан на C++, а интерфейс написан на Python. Обладает выразительной архитектурой. Переключение между процессором и графическим процессором можно легко выполнить, установив флаг. Модели определяются и оптимизируются конфигурацией. Скорость Caffe — одна из самых быстрых. Он может обрабатывать 60 миллионов изображений в день с помощью одного NVIDIA k40 GP. Он поддерживает как императивное, так и символьное программирование. Его можно использовать в зрении, речи и мультимедийных приложениях.

Оборудование

Аппаратное обеспечение играет важную роль в выполнении рабочих нагрузок ИИ, и требования к оборудованию для приложений будут различаться в зависимости от варианта использования. Аппаратное обеспечение состоит из различных процессоров, таких как CPU, GPU, FPGA и ASIC. Более мощное вычислительное оборудование может привести к более быстрому выводу и играет важную роль в выполнении рабочих нагрузок. Выбор оборудования является важной частью реализации Edge AI, но это не универсальный сценарий. Определенное аппаратное обеспечение может быть правильным выбором в определенных случаях использования и неправильным выбором в некоторых других случаях использования. При выборе правильного оборудования для любого сценария периферийного ИИ необходимо учитывать различные факторы, такие как энергопотребление, стоимость, выполняемая задача и другие факторы. Эти различные процессоры используются в комбинации для повышения производительности.

ЦП — центральный процессор
ЦП — это важный и стандартный процессор, используемый в большинстве устройств для приложений общего назначения и обычно известный как мозг компьютера. ЦП имеют ограниченное количество ядер, что ограничивает их способность эффективно запускать большие нейронные сети. Хотя процессоры стали мощными и поддерживают различные варианты использования, их использование зависит от многих различных факторов. Скорость устройств на базе ЦП может быть ниже по сравнению с другими процессорами, такими как ГП, ПЛИС, но ЦП оптимизированы по задержке. ЦП специализируются на последовательной обработке и экономичны.
Пример: Arm Cortex, x86 (Intel)

GPU — графические процессоры
GPU состоит из сотен ядер и специально разработан для обработки данных, относящихся к видео и изображениям. Но он не ограничивается конкретным вариантом использования и нашел применение в различных приложениях. Он поддерживает параллельную обработку и обеспечивает высокую пропускную способность. Он не может заменить ЦП, но работает вместе с ЦП. Одним из недостатков графического процессора является его высокое энергопотребление.
Пример: NVIDIA Tesla K80, NVIDIA Tesla V100, NVIDIA A100

FPGA — программируемые вентильные матрицы
FPGA состоит из нескольких блоков конфигурационной логики (CLB) и состоит из программируемого оборудования. Его можно запрограммировать и перепрограммировать в соответствии с требуемой функциональностью, что делает его одним из экономически эффективных вариантов аппаратного обеспечения. Это позволяет разработчику быстро тестировать новые и различные алгоритмы. Традиционно код пишется на языках VHDL или Verilog, которые могут быть сложными для программирования. Хотя более новые системы включают больше известных языков. Несколько функций могут выполняться параллельно, что повышает эффективность и снижает энергопотребление.
Пример: Intel Startix 10 NX FPGA, Xilinx Virtex UltraScale+ VU19p

ASIC —
интегральная схема для конкретного приложения. Как следует из названия, он предназначен для конкретного приложения и не может быть изменен. Основное различие между ASIC и FPGA заключается в том, что в случае ASIC схема, специфичная для приложения, постоянно нарисована на плате, и поэтому программа не может быть изменена. Он предназначен для конкретного приложения и может добавлять сторонние IP-ядра. Они также поддерживают параллельную обработку, обеспечивая лучшую производительность и меньшее энергопотребление. Они лучше подходят для приложений с большими объемами. Некоторые из ASIC:

VPU (блоки обработки изображений)
VPU — это тип ASIC на системных чипах с несколькими ядрами. VPU нацелены на ускорение приложений компьютерного зрения в периферийных и встроенных приложениях. Они отличаются от блоков обработки видео, поскольку обеспечивают лучшую поддержку алгоритмов машинного обучения, таких как CNN. Они обеспечивают высокую производительность при низком энергопотреблении.
Пример — Intel Movidius, Pixel Visual Core

TPU (Tensor Processing Units)
TPU — это ASIC, специально созданный Google специально для задач глубокого обучения. Он оптимизирован для TensorFlow. Облачный TPU подходит для обучения сложных моделей, тогда как Edge TPU специально предназначен для запуска ИИ на периферии. Это помогает достичь высокой производительности при низком энергопотреблении. Его можно использовать для различных вариантов использования в различных отраслях, таких как робототехника, обнаружение аномалий, профилактическое обслуживание и т. д. Edge TPU поддерживает только платформу TensorFlow Lite.
Ссылка: https://cloud.google. com/edge-tpu

Доски для разработки

В зависимости от варианта использования для реализации приложений Edge AI можно использовать различные платы разработки. Они будут иметь разные процессоры, поддерживать разные платформы и языки и использоваться в разных случаях. Мы кратко рассмотрим несколько популярных плат для разработки, хотя есть много других доступных плат. Немногие платы разработки для запуска Edge AI
платы разработки Raspberry Pi

Это одноплатные компьютеры размером с кредитную карту (построенные на одной печатной плате), разработанные Raspberry Pi Foundation. Они обеспечивают среду Linux и могут быть запрограммированы на разных языках, таких как Python, C, C++ и многих других. Они поддерживают различные платформы машинного обучения, такие как TensorFlow и PyTorch. Они используются для различных вариантов использования, таких как робототехника, игры и домашняя автоматизация.
Различные платы: Raspberry Pi Pico, Raspberry Pi 400, Raspberry Pi Compute Module 4, Raspberry Pi 4 B, Raspberry Pi 3 B+.

1. Серия NVIDIA Jetson
Модули NVIDIA Jetson включают в себя большое количество оборудования, позволяющего запускать приложения, требующие глубокого обучения на периферии. Все варианты представляют собой систему на модуле (SoM) и используют программное обеспечение NVIDIA CUDA-X. Существует ряд плат, подходящих для различных приложений от начального уровня до промышленных приложений. Они поддерживают популярные платформы машинного обучения, такие как TensorFlow, Keras, Caffe, и программные библиотеки, такие как CUDA, cuDNN и TensorRT. Эти устройства можно использовать для различных задач ИИ, таких как компьютерное зрение, задачи NLP, такие как классификация, обнаружение, обработка речи и многие другие. Доступны следующие модули:

а. Jetson Nano
Экономичный SBC, который можно использовать для запуска моделей ИИ. Этот малогабаритный модуль обеспечивает высокую производительность по низкой цене. Он может запускать современные рабочие нагрузки ИИ, параллельно запускать несколько нейронных сетей и одновременно обрабатывать данные датчиков с высоким разрешением. Его можно использовать для различных задач компьютерного зрения, НЛП, таких как классификация, обнаружение, обработка речи и многих других.
Технические характеристики:
ЦП — четырехъядерный процессор Arm Cortex-A57 MPCore
ГП — 128-ядерный графический процессор NVIDIA Maxwell
ОЗУ — 4 ГБ 64-разрядной LPDDR4

б. Jetson TX2
Серия Jetson Tx2 включает ряд модулей, которые можно использовать в самых разных случаях. Они построены на основе семейства графических процессоров NVIDIA Pascal и обеспечивают высокую производительность и в то же время энергоэффективность.
Технические характеристики:
ЦП — двухъядерный 64-разрядный процессор NVIDIA Denver 2 и четырехъядерный процессор Arm Cortex. -Процессор A57 MPCore
Графический процессор — 256-ядерный графический процессор NVIDIA Pascal
ОЗУ — 8 ГБ 128-битной LPDDR4
Другие устройства серии Jetson TX2 — TX2 NX, TX2 4 ГБ, TX2i, TX2

в. Jetson Xavier NX
Компактный модуль для реализации искусственного интеллекта на периферии с поддержкой облачных технологий. Его можно использовать для реализации искусственного интеллекта на периферии, который требует высокой производительности и ограничен определенными ограничениями, такими как размер, вес, мощность.
Технические характеристики:
ЦП — 6-ядерный NVIDIA Carmel Arm v8.2 64- бит ЦП 6 МБ L2 + 4 МБ L3
Графический процессор — 384-ядерный графический процессор NVIDIA Volta с 48 тензорными ядрами
ОЗУ — 8 ГБ 128-битной LPDDR4x

д. Jetson AGX Xavier
Может использоваться в автономных машинах и обеспечивает до 32 TOP при мощности всего 10 Вт. AGX Industrial имеет функции функциональной безопасности и защиты, что делает их пригодными для использования в сложных случаях использования.
Характеристики:
ЦП — 8-ядерный NVIDIA Carmel Arm v8.2 64-разрядный ЦП 8 МБ L2 + 4 МБ L3
GPU — 512-ядерный GPU NVIDIA Volta с 64 тензорными ядрами
RAM — 32 ГБ 256-бит LPDDR4x
Другие устройства — Jetson AGX Xavier Industrial

2. Coral Dev Board
Coral Dev Board — это одноплатный компьютер от Google. Уникальность этой платы — сопроцессор Google Edge TPU. Этот Edge TPU представляет собой ASIC, разработанный Google, который обеспечивает высокую производительность и низкое энергопотребление на периферии. Он способен выполнять 4 триллиона операций в секунду, используя 0,5 Вт на каждый TOPS. Он поддерживает только модель машинного обучения TensorFlow Lite. Он широко используется для различных вариантов использования задач компьютерного зрения, таких как обнаружение объектов, оценка позы, сегментация изображений. M4F)
Графический процессор: встроенная графика GC7000 Lite
ОЗУ: 1 ГБ LPDDR4, 2 ГБ LPDDR4, 4 ГБ LPDDR4

3. Xilinx Kria
Xilinx является изобретателем FPGA, программируемых SoC и ACAP. Они представили портфолио Kria; система на модульных встроенных платах для ускорения ИИ, машинного обучения и машинного зрения на периферии. Он совместим с собственными платформами искусственного интеллекта, такими как TensorFlow, PyTorch, Caffe, а также с такими языками, как Python, C++ и OpenCL. Он предлагает более высокую производительность при меньшей задержке и энергопотреблении. Он используется в таких случаях, как компьютерное зрение и приложения для обработки естественного языка.
Различные платы — Xilinx Versal AI Core Series, Xilinx Kria K26 SOM

Xilinx Kria K26
Характеристики:
Процессор приложений: четырехъядерный Arm® Cortex®-A53 MPCore™ с тактовой частотой до 1,5 ГГц
Графический процессор: Mali™ -400 MP2 до 667 МГц
Встроенная память — 26,6 МБ встроенной SRAM

— — — — — — — — — — — — — — — — — — — — — — — — — — — — EDGENeural.ai разработала платформу ENAP Studio, которая поможет вам управлять всем процессом. завершающий рабочий процесс для переноса модели ИИ на периферию. Его можно использовать для обучения модели, оптимизации модели для целевого оборудования и развертывания модели для сценариев использования периферийного ИИ.

Вы разработчик, исследователь, энтузиаст ИИ, которому интересно изучать и исследовать новые инструменты? Вскоре мы выпустим бета-версию ENAP Studio.

Зарегистрируйтесь по адресу: https://edgeneural.ai/model_zoo/.