Нейронные ускорители часто характеризуются характеристикой производительности «TOPS» — триллион операций в секунду. Но одного этого недостаточно. Важно знать, как работают эти ускорители и что еще следует учитывать при сравнении.

Список контента

Введение
Что такое TOPS?
Универсальные или специализированные? Сравнение
–Измерения
–Сравнение
Когда мне нужно много TOPS?
Резюме
Приложение

Введение

Аппаратные ускорители для искусственного интеллекта имеют много названий. Они известны под такими именами, как Neural Accelerator, AI Accelerator, Deep Learning Accelerator, Neural Processing Unit (NPU), Tensor Processing Unit (TPU), Neural Compute Unit (NCU) и т. д. Все они обозначают одно и то же: электроника, оптимизированная для матрицы. операций, которые необходимы для особенно эффективного вычисления искусственных нейронных сетей. В следующем блоге мы будем придерживаться объявления имени NXP «NPU». В предыдущие годы именно графические процессоры Nvidia доминировали в области искусственного интеллекта (ИИ). В связи с растущим распространением области ИИ на периферию (мобильные устройства, конечное промышленное оборудование и т. д.) уже несколько лет разрабатываются специальные аппаратные компоненты для периферийных продуктов. Они ориентированы в первую очередь на вычисления с низкой точностью (в основном целые числа), современные архитектуры потоков данных и оптимальное подключение к памяти.

Что такое ТОПЫ?

Чтобы иметь возможность сравнивать различные архитектуры NPU простым способом, был создан показатель «триллион операций в секунду» (TOPS). Среди экспертов метрика не считается оптимальной метрикой, но она фиксирует сложный вопрос в понятной и сопоставимой цифре: сколько математических операций мой чип может выполнить за одну секунду? Это число можно использовать для быстрого сравнения различных чипов. Качество операций или даже то, какие операции задействованы более подробно, не принимается во внимание. Во многих случаях чипы также ориентированы на конкретную задачу, где они могут затем добиться максимальной производительности. Поэтому прямое сравнение не всегда оправдано.

В большинстве случаев TOPS измеряются с классической архитектурой «ResNet50», а иногда и с архитектурой «MobileNet». В приложениях ResNet50 теперь часто заменяется более современными сетями. Тем не менее, это дает хорошую базу для сравнения.

Универсальный или специализированный? Сравнение

В этом разделе мы хотим сравнить два NPU друг с другом, чтобы продемонстрировать, на что обращать внимание. Один с широким акцентом на промышленное использование и «низкий TOPS», а другой — на высокоскоростной анализ изображений с «высоким TOPS». Сначала мы покажем некоторые измерения, а затем обсудим некоторые «за» и «против».

— Измерения

Одноплатный компьютер phyBOARD-Pollux (рис. 1) представляет собой промышленную плату на базе процессора NXP i.MX 8M Plus Quad. NPU i.MX 8M Plus указан NXP как 2,3 TOPS. Однако одно это мало говорит о времени вывода, которое может быть достигнуто. Тест обработки изображений этого NPU с ResNet50 привел к обработке более 60 кадров в секунду (fps) со средним временем вывода 16 мс на изображение (224 × 224 пикселя);
И 159 кадров в секунду при среднем 6 мс на изображение с MobileNetV1 (рис. 2) при том же разрешении. Тесты самой NXP показали, что время вывода для архитектуры MobilNet составляет около 3 мс.

Есть и другие нейронные ускорители, отмеченные номинальным более высоким значением TOPS. Мы рассмотрим Gyrfalcon’s Lightspeeur 2803 (рис. 3), который может обеспечить пиковое значение до 16,8 TOPS. Это приводит к скорости более 100 кадров в секунду при использовании MobilNet с разрешением входного изображения 448 x 448 пикселей (с их веб-сайта). Если мы предположим, что размер входных данных линейно зависит от времени вывода с 200,704 пикселя против 50,176 пикселя, мы получим прямое сравнение около 40 кадров в секунду для i.mx8 M Plus против 100 кадров в секунду для кречета, в результате чего разница составит примерно 60 кадров в секунду. . Таким образом, разница в TOPS в 7,3 раза приводит здесь к коэффициенту 2,5 в fps.

Для кречета собственные измерения на момент написания были невозможны (*см. приложение)

Далее мы обсудим различия обоих чипов.

- Сравнение

Сравнивая i.MX 8M Plus от NXP с Lightspeeur 2803 от Gyrfalcon, кажется очевидным, что Lightspeeur явно превосходит 8M Plus по TOPS. Однако при рассмотрении деталей становится ясно, что чипы не следует сравнивать только на основе TOPS и что оба имеют свою оправданную область применения.

TOPS в fps
Первое, что бросается в глаза, это то, что скорость логического вывода всего в 2,5 раза выше, а TOPS в 7,3 раза выше. Хотя, мы не можем сказать наверняка, но, похоже, это связано с интеграцией чипа в модуль и/или кодом измерительного приложения. Короткое соединение между чипом и встроенной памятью важно, чтобы избежать узких мест при передаче данных.

Интеграция модели NPU
Как правило, большим плюсом i.MX 8M Plus является библиотека eIQ, предоставляемая NXP. eIQобеспечивает непрерывное соединение между моделью и NPU. Библиотека eIQ поддерживает модели TensorFlow Lite и ONNX, обеспечивая плавную прямую реализацию моделей на встроенном оборудовании. Для eIQ достаточно простого преобразования и квантования, например, в TensorFlow Lite, чтобы передать модель NPU.

Gyrfalcon использует для реализации модели MDK и SDK (Model and Software Development Kit), что немного сложнее (*см. приложение). Не следует недооценивать простую реализацию, поскольку простая адаптация модели дает больше времени для разработки приложения и модели, что позволяет быстрее выполнять итерации в гибком режиме.
Проблема, возникающая при предоставлении специальных SDK/MDK для преобразования модели, заключается в том, что клиент зависит от распределения и приверженности разработчиков программного обеспечения. Каждый цикл обновления зависит от них; каждое устранение неполадок должно быть обработано ими. К сожалению, трупы SDK появляются снова и снова. Таким образом, чем ближе программное обеспечение приближается к решению с открытым исходным кодом/сообществу, тем меньше зависимость от отдельных разработчиков. Это преимущество библиотеки eIQ от NXP, которая очень тесно связана с Google NNAPI и напрямую использует форматы моделей TF-Lite и ONNX.

Стандартная или собственная архитектура модели?
Другое отличие заключается в том, что i.MX 8M Plus поддерживает почти все текущие типы моделей и архитектуры моделей. С другой стороны, Lightspeeur 2803s фокусируется на сверточных нейронных сетях (CNN), используемых для обработки изображений. Lightspeeur 2803s также поддерживает только три наиболее важные архитектуры моделей: VGG, ResNet и MobileNet. Это три часто используемые базовые архитектуры, но здесь не учитываются адаптированные модели, современные архитектуры, а также другие типы сетей (например, рекуррентные нейронные сети). Этот акцент на CNN позволяет Lightspeeur 2803 достигать большого количества TOPS.

Интегрированный или PCIe?
Преимуществом i.mx8 M Plus также является его интеграция в качестве системы на кристалле (SOC), что создает решение «все в одном». Таким образом, все аппаратные компоненты совместно используют память напрямую (прямой доступ к памяти), и не требуется дополнительной передачи данных между, например, ЦП и NPU. Это особенно интересно, поскольку i.mx8M Plus SOC имеет несколько других встроенных специальных аппаратных компонентов, таких как аппаратная предварительная обработка изображений, сжатие изображений и видео, обработка необработанных изображений с датчиков и т. д. Они могут быть напрямую интегрированы в данные. конвейер без необходимости дополнительной передачи данных.
Gyrfalcon, конечно, также может быть разработан как SOC, однако для этого требуется много работы и специальных знаний. Gyrfalcon классически добавляется через PCIe в качестве внешнего чипа. Это требует интеграции на этапе разработки и дополнительной передачи данных между аппаратными компонентами во время логического вывода.

Каков целевой рынок?
Решающим фактором для многих промышленных приложений является долгосрочная доступность i.MX 8M Plus. Часто ожидается, что периферийные устройства на промышленных предприятиях будут работать годами при минимальном обслуживании и в особых условиях. Здесь Lightspeeur 2803s больше подходит для приложений в потребительском секторе, где можно предположить, что время работы устройства от двух до трех лет при нормальном коммерческом использовании. В настоящее время Gyrfalcon не гарантирует доступность более двух лет. Для нового i.MX 8M Plus предполагается долгосрочная доступность более 10 лет.

Потребляемая мощность
Потребляемая мощность для обоих чипов сравнима с 700 мВт для Lightspeeur 2803s и около 900 мВт для i.mx8 M Plus (только NPU). В этом случае энергопотребление не отдает предпочтение одному перед другим, однако энергопотребление, как правило, является важной характеристикой при сравнении микросхем для встраиваемых устройств.

По описанным пунктам видно, что оба чипа имеют разную направленность и целевую группу. Чистое сравнение TOPS здесь может ввести в заблуждение. i.MX 8M Plus — это скорее чип общего назначения, который можно использовать по-разному, тогда как Gyrfalcon подходит для узко определенных приложений с высокими требованиями к производительности.

Когда мне нужно много TOPS?

Этот вопрос возникает, когда Lightspeeur 2803s превосходит i.MX 8M Plus? Быстро приходит на ум высокая частота кадров, когда предпочтение отдается больше, чем меньше TOPS. Однако следует помнить, что большинство камер могут обеспечивать только от 30 до 60 кадров в секунду. Здесь i.MX 8M Plus, даже с несколько тяжелым ResNet50, все равно будет вполне адекватным.

Пакетная обработка, при которой обрабатывается поток изображений, также часто ассоциируется с TOPS. Однако пакетная обработка чаще используется при обучении нейронных сетей. В классическом выводе за раз обрабатывается одно изображение, т. Е. Пакет из одного изображения.

Где действительно необходимо много TOPS, так это в критичных в реальном времени приложениях. Особенно в области автономного вождения. Огромная вычислительная мощность в виде TOPS требуется, если, например, вы хотите в течение миллисекунды обнаружить, что ребенок выбегает на дорогу, используя многопоточный ввод на 360 градусов с точностью до пикселя. Для этой задачи чип с высоким TOPS, такой как Lightspeeur 2803s, является правильным выбором.

Важно помнить, что чистый вывод — не единственная задача в приложении ИИ. Во многих случаях по крайней мере один или несколько шагов предварительной обработки данных выполняются до и после вычисления. Результаты будут использоваться для управления дальнейшими процессами. Чрезмерное количество TOPS не имеет значения, если NPU не получает достаточно данных. Хорошо запрограммированное и экономичное приложение на данный момент стоит больше, чем тщательно настроенный NPU.
Конечно, сочетание этих двух технологий снимет любые барьеры технических характеристик.

Резюме — другая задача, другое оборудование!

Оба чипа, которые мы сравнивали, очень хороши в своей области. Однако TOPS не дает полного представления о том, подходит ли NPU для планируемого применения. Поддержка различных моделей и, прежде всего, плавная реализация моделей на чипе не менее важны, чем чистая производительность.

Следует также учитывать, что аппаратное обеспечение, а также окружающее программное приложение могут вообще использовать или обслуживать производительность NPU. Неоптимизированное программное приложение не может быть компенсировано большим количеством TOPS. В принципе, НПУ должен вписываться в общую концепцию. TOPS — это только один из многих параметров.

Для получения более ясной картины можно задать следующий вопрос:

  • Каковы тип и размер моих входных данных?
     – Данные датчика, видеопоток, смешанный поток данных,…?
  • Как быстро мне нужны результаты?
    – Критично по времени или производительности?
  • Какую вычислительную сложность мы рассматриваем?
    - «классическое» машинное обучение, глубокое обучение, классификация, сегментация…
  • Каков ваш целевой рынок?
     – Промышленный и потребительский рынки предъявляют разные требования.
  • Критично ли энергопотребление?
     – Портативное устройство, много устройств накапливается или одно подключенное устройство…

Нужен ли мне NPU?
Нужен ли NPU, может основываться на следующем: есть ли задача, которую можно решить с помощью «классического машинного обучения» (машина опорных векторов, дерево учащийся, …), во многих случаях достаточно использования процессора. Как только используются архитектуры глубокого обучения, мы рекомендуем использовать NPU.

Вопрос о том, сколько TOPS требуется, может быть примерно основан на следующем руководстве: если у нас есть большой объем входных данных (например, приложение для обработки изображений с HD-изображениями в качестве входных данных) и нам нужны результаты менее 1 мс, мы должны выбрать чип с 5+ TOPS. Если, например, достаточно 10 мс, достаточно чипа с 2 TOPS. Точно так же важна точная задача, например, классификация или сегментация, где требуются разные вычислительные усилия. Кроме того, на решение может повлиять рассмотрение того, насколько сложна сеть/модель. Список в Таблице 1 предназначен для того, чтобы дать приблизительное представление о том, сколько TOPS необходимо с учетом различных соображений. Помните о различных аспектах, упомянутых в этой статье, которые влияют на полезность чипов в зависимости от варианта использования.

Как всегда в науке о данных, к каждой проблеме нужен индивидуальный подход.

Исследования основаны на наборе PHYTEC AI:



и Gyrfalcon’s Lightspeeur 2803s:



Приложение

Сильнее было бы показать собственные результаты измерений с чипа Gyrfalcon. Однако, несмотря на то, что у нас есть Plai Plug 2803 от Gyrfalcon, ввод в эксплуатацию был сопряжен с трудностями, из-за которых мы не смогли произвести собственные измерения.

То, что мы делаем в этой статье о зависимости клиента от времени разработчиков, самоотверженности и сосредоточенности на проекте, было прекрасно продемонстрировано в наших усилиях по использованию чипа Gyrfalcon. После завершения черновика статей мы попытались обновить результаты Кречета собственными данными. Когда мы столкнулись с ошибкой, которую не смогли решить самостоятельно, мы связались с разработчиками Gyrfalcon через их sdk-форум. На момент написания прошло 12 дней (8 рабочих дней), и мы не получили никакого ответа.
Это не критика кречета, так как есть много возможных оправданий этой задержки, однако оно довольно хорошо отображает описанные явления. Представьте, что у вас плотный график проекта, и теперь вам приходится полагаться на этот ответ. 8/12 дней без указания, будет ли на него вообще дан ответ, не обнадеживает. Как уже было сказано, проблема в том, что мы могли бы задать вопрос только небольшому сообществу, так как SDK не получил широкого распространения. Мы также задали вопрос на Stackoverflow пару дней спустя и также не получили ответа из-за его уникальности.
Напротив, у нас также были проблемы с i.mx8M Plus, пытающимся запустить наши облегченные модели TensorFlow, , сообщество TFlite огромно, и мы получили наше решение не от NXP, а от сообщества почти мгновенно.

Пожалуйста, проверьте сами, был ли ответ на наш вопрос до сих пор и сколько времени потребовалось, чтобы ответить:



Тема с очень похожим вопросом была опубликована в январе 2020 г., и на момент написания (26.04.2021 г.) ответа на нее не было: