Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Использование нескольких микросхем вывода требует тщательного планирования

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

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

Мы прошли долгий путь с тех первых дней. Компании постепенно пришли к выводу, что при измерении производительности микросхем логического вывода на самом деле имеет значение 1) высокая степень использования MAC, 2) низкое энергопотребление и 3) вам нужно, чтобы все было маленьким.

Мы знаем, как измерить - что дальше?

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

Ясно, что каждая компания хочет иметь четырехполосное шоссе, поэтому теперь возникает вопрос:«Как мы можем построить это четырехполосное шоссе, не создавая движения и узких мест?» Ответ зависит от выбора правильного логического чипа. Чтобы объяснить, давайте взглянем на модель нейронной сети.

Нейронные сети разбиты на слои. Слои, такие как ResNet-50, имеют 50 слоев, YOLOv3 - более 100, и каждый уровень принимает активацию от предыдущего уровня. Таким образом, в слое N выходом является активация, которая переходит в слой N + 1. Он ждет, пока этот слой войдет, вычисление выполнено, и на выходе будут активации, которые переходят на слой n + 2. Это продолжается по всей длине слоев, пока вы, наконец, не получите результат. Имейте в виду, что исходным вводом в этом примере является изображение или любой другой набор данных, который обрабатывается моделью.

Когда разница между несколькими фишками

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

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

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

Чтобы убедиться, что модель может работать на двух или более микросхемах, важно послойно посмотреть как на размер активации, так и на количество MAC-адресов. Обычно происходит то, что самые большие активации происходят на самых ранних уровнях. Это означает, что размеры активации постепенно уменьшаются по мере увеличения количества слоев.

Также важно смотреть на количество MAC и сколько MAC выполняется в каждом цикле. В большинстве моделей количество MAC, выполненных в каждом цикле, обычно коррелирует с размерами активации. Это важно, потому что если у вас есть два чипа и вы хотите работать с максимальной частотой, вам нужно предоставить равные рабочие нагрузки на каждый чип. Если один чип выполняет большую часть модели, а другой - лишь небольшую часть модели, вы будете ограничены пропускной способностью первого чипа.

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

На приведенной ниже диаграмме показаны для изображений YOLOv3, Winograd, 2 мегапикселей размер выходных данных активации и совокупные операции Mac слой за слоем (слои свертки нанесены на график). Чтобы сбалансировать рабочую нагрузку между двумя чипами, модель будет сокращена примерно на 50% кумулятивных операций MAC - на этом этапе активации для передачи от одного чипа к другому составляют 1 МБ или 2 МБ. Для разделения на 4 стружки разрезы составляют примерно 25%, 50% и 75%; обратите внимание, что размеры активации являются самыми большими в начале, поэтому для точки отсечения 25% нужно пройти 4 или 8 МБ активаций.

Щелкните здесь, чтобы увеличить изображение
Размер выходных данных активации (синие полосы) и совокупные операции MAC слой за слоем (красная линия) для изображений YOLOv3 / Winograd / 2Mpixel , показывающий, как рабочая нагрузка распределяется между несколькими микросхемами (Изображение:Flex Logix)

Инструменты для повышения производительности

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

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

Заключение

Использование нескольких микросхем логического вывода может обеспечить значительное повышение производительности, но только в том случае, если нейронная сеть спроектирована правильно, как описано выше. Если мы вернемся к аналогии с шоссе, есть много возможностей позволить трафику увеличиваться за счет использования неправильного чипа и неправильной модели нейронной сети. Если вы начнете с правильного чипа, вы на правильном пути. Просто помните, что важнее всего пропускная способность, а не тесты TOPS или Res-Net50. Затем, выбрав правильный чип логического вывода, можно разработать столь же мощную модель нейронной сети, которая обеспечивает максимальную производительность для нужд вашего приложения.

- Джефф Тейт - генеральный директор Flex Logix


Встроенный

  1. Использование SaaS и облака требует осторожного обращения с данными
  2. С# с использованием
  3. RISC-V International и CHIPS Alliance сотрудничают в OmniXtend
  4. Крошечный модуль объединяет несколько биосенсоров
  5. Пакет проектирования печатной платы переносится в облако
  6. Планирование движения в реальном времени для автономного автомобиля в различных ситуациях , в смоделированн…
  7. Инициативы цифровых магазинов получают выгоду от тщательного планирования
  8. ИИ предсказывает, насколько быстро компьютерные чипы выполнят код
  9. Беспроводное питание нескольких носимых устройств от одного источника
  10. Как вызвать функциональный блок из клиента OPC UA с помощью информационной модели