Применение принципов ПЛИС в искусственном интеллекте от Flex Logic

Реконфигурируемый нейронный ускоритель NMAX не является ПЛИС, но сочетает гибкость с высокопроизводительным ускорением машинного обучения
813
В избранное

Реконфигурируемый нейронный ускоритель NMAX не является ПЛИС, но сочетает гибкость с высокопроизводительным ускорением машинного обучения

Компания Flex Logix известна как производитель встроенных ПЛИС (eFPGA), например, EFLX GP14LPP. Эта ПЛИС может выполнять такую рутинную работу как моделирование глубоких нейронных сетей (DNN) и сверточно-нейронных сетей (CNN). Однако, как и в случае со многими другими FPGA, такое решение неоптимально по сравнению с выделенным ускорителем машинного обучения (ML). Использование ПЛИС имеет преимущества, когда они выступают в связке с обычной логикой, а сами при этом обеспечивают высокий уровень гибкости и производительности, который не может дать программное обеспечение.

Тем не менее, компоненты ПЛИС могут быть полезны для разработчиков ML - на самом деле существует много общего между выделенным ускорителем ML и ПЛИС. Именно на этом этапе вступает в игру NMAX производства Flex Logix (рис. 1). Как и eFPGA, NMAX имеет стандартную масштабируемую топологию, но ячейки здесь намного больше. Они вмещают дополнительную логику и связи, необходимые для приложений ML. Также здесь есть встроенный IP, как и в eFPGA производства компании Flex Logix.

Flex Logix NMAX – масштабируемый для работы с объемными приложениями матричный ускоритель машинного обучения

Рис. 1. Flex Logix NMAX – масштабируемый для работы с объемными приложениями матричный ускоритель машинного обучения 

Перевод к тексту рис. 1:

SoC/PCIe connection- SOC/PCIе-соединение
NMAX TILE – ячейка NMAX

Каждая ячейка, являясь программируемым аппаратным блоком, предназначена для обработки подмножества модели ML или аналогичного приложения. Связь между соседними ячейками осуществляется через соединение ArrayLINX.

Масштабируемая SRAM L2 представляет собой увеличенную и более медленную альтернативу SRAM, содержащейся в ячейках NMAX. SRAM L2 обычно содержит все весовые коэффициенты для каждого слоя в модели ML, в то время как весовые коэффициенты для текущих активных вычислений находятся в памяти блока. Такой подход сводит к минимуму трафик памяти, необходимый для обновления весовых коэффициентов во время вычислений модели, что обычно является слабым местом в других ускорителях ML, использующих внешнюю DRAM. Способность хранить весовые коэффициенты ближе к вычислительному модулю имеет решающее значение для общей эффективности системы, но об этом позже.

Каждая ячейка содержит логику EFLX, логику FPGA Flex Logic и кластеры NMAX, окруженные соединениями XFLX (рис. 2). Последние выполнены подобно логике маршрутизации у ПЛИС, но оптимизированы для NMAX. В совокупности они составляют систему межъячеечной коммуникации ArrayLINX. Данные могут перемещаться через массив в любом направлении. Логика EFLX используется для настройки системы и обычно включает в себя конечный автомат для управления обработкой и связью ML. SRAM L1 является ключевым элементом эффективности системы, поскольку ее можно масштабировать для обработки весовых коэффициентов и информации об активации в зависимости от приложения.

Flex Logix NMAX – масштабируемый для работы с объемными приложениями матричный ускоритель машинного обучения

Рис. 2. Каждая ячейка NMAX включает в себя несколько вычислительных кластеров NMAX, логику EFLX FPGA, соединения XFLX и локальную SRAM

Перевод к тексту рис. 2:

DDR, PCIe, SoC connections – DDR, PCIe, SoC-соединения
ArrayLINX to adjacent tiles – Соединение ArrayLINX между соседними ячейками
L2 SRAM via RAMLINX – L2 SRAM через RAMLINX
EFLIX Logic – EFLIX-логика
NMAX Cluster – NMAX-кластер
XFLX Interconnect – XFLX-соединение

Доступ к SRAM L2 осуществляется через соединения RAMLINX, доступные для логики EFLX FPGA, а не через ArrayLINX. Это позволяет логике управления быстро перемещать новые конфигурации активации и весовых коэффициентов в RAM L1 и, в конечном итоге, в кластеры NMAX, где выполняется 8- и 16-разрядная матричная манипуляция.

Ячейка выполняет 1 триллион операций в секунду (TOPS). При таком уровне производительности требуется примерно десятая часть мощности, потребляемой конкурирующими системами с аналогичным ограничением по стоимости. Любопытно, не правда ли? Некоторые системы ML предоставляют результаты тестов для таких моделей как, например,  ResNet-50. Многие результаты будут включать размер пакета, и это является ключом к пониманию того, как выполняются подобные тесты. Размер пакета показывает, каким образом элементы представлены в системе до того как данные весовых коэффициентов и активации подвергаются необходимому изменению.

Пакетирование на самом деле имеет большой смысл для обучения и помещаемого в облако логического заключения, когда используется несколько потоков данных. Однако большой размер пакета бесполезен с точки зрения логического заключения, когда обрабатывается отдельный элемент, например, текущий кадр с камеры. В этом случае требуется информация о высокой частоте кадров с использованием пакета весом в единицу или иного малого значения, например, для четырех камер с круговым обзором. Именно в таких случаях выделяется NMAX (рис. 3).

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

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

Перевод к тексту рис. 3:

NMAX with only SRAM, no DDR bath = NMAX только с SRAM, без DDR, размер пакета = 1
NMAX x32 DDR batch = NMAX x32 DDR размер пакета = 1
NMAX x64 DDR batch = NMAX x64 DDR размер пакета = 1
ResNet-50 Throughput (Frames/s) – Пропускная способность ResNet-50 кадров/с
Weights stored in DRAM – Весовые коэффициенты, хранящиеся в DRAM
NVIDLA Batch = NVIDLA размер пакета = ?
DRAM Bandwidth (GB/sec) – Пропускная способность DRAM, ГБ/с

NMAX может выдавать более 1200 кадров/с, если модель подходит только для SRAM L1 и L2. Примечание на графике об одном или двух DRAM связано с тем, что два DRAM обеспечат дополнительную пропускную способность. Конечно, для памяти DRAM доступен гораздо больший объем хранилища данных и там может храниться множество моделей, но это редко требуется в граничных приложениях. В этих случаях используется фактически лишь часть объема наименьшей доступной DRAM.

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

При обсуждении эффективности ускорителя ML необходимо учитывать эффективность MAC, поскольку КПД данных систем редко достигает 100%. Например, MAC может работать только в том случае, если доступны весовые коэффициенты для вычислений и входящие данные, а также есть место для хранения результатов. Использование MAC даже с нулевыми служебными издержками не избавит от замедления работы системы, если издержки других факторов велики. Вот почему нахождение весовых коэффициентов в локальной памяти так важно для высокой эффективности системы.

Показатели производительности NMAX впечатляют. Массив ячеек 6 х 6 обеспечивает производительность на уровне NVIDIA Tesla T4 (рис. 4). И это – крошечный, по сравнению с довольно большой картой PCI Express, чип. С другой стороны, T4 показывает превосходный результат в решении задач, где NMAX не обладает такими преимуществами, какими он обладает в задачах с логическим выводом. MAC Tesla T4 работает с КПД 58% при пропускной способности 34 Гбайт/с благодаря SRAM и задержке 32 мс. Массив 12 х 12 ячеек обеспечивает почти 100 TOPS с 67% загрузки MAC и задержкой всего 8 мс. Результаты приведены для тестов с использованием модели YOLOv3 с потоком изображения 2048 х 1024 пикселя, единичным размером пакета и парой 4-гигабайтных LPDDR4 DRAM. Верхний предел почти в 10 раз быстрее, чем у графического процессора, и при этом – конфигурируемая аппаратная часть.

Массив NMAX 6 х 6 обеспечивает производительность, превосходящую Tensor Core GPU NVIDIA Tesla T4

Рис. 4. Массив NMAX 6 х 6 обеспечивает производительность, превосходящую Tensor Core GPU NVIDIA Tesla T4

Перевод к тексту рис. 4:

NMAX 512 array size – Размер массива NMAX 512
SRAM size (MB) – Размер SRAM, Мбайт
TOPS Peack – Пик TOPS
Throughput (@1GHz)(fps) – Пропускная способность (@ 1 ГГц), кадр/с
Latency(ms) – Задержка, мс
Avg. DRAM BW(GB/s) – В среднем DRAM BW, Гбайт/с
XFLX & ArrayLINX BW(TB/s) – XFLX & ArrayLINX BW, Тбайт/с
MAC Efficiency (max useable DRAM BW: 25GB/s) – Эффективность MAC (максимально используемая DRAM BW: 25 Гбайт/с)
TOPS Throughput - Пропускная способность TOPS
T4-class performance - Производительность класса Т4

В наши дни модели ML для логического вывода похожи на модель YOLOv3, которая отслеживает до 80 классов объектов. Многим приложениям требуется единичный размер пакета с одной камеры и с частотой не менее 30 кадров/с. С этим легко справится система-на-кристалле (SoC, СнК) с массивом NMAX. Единственной платформой с похожими характеристиками является Habana’s Goya, также используемая для приложений логического вывода.

Компилятор нейронной сети Flex Logix NMAX берет модели из фреймворков, таких как Caffe и TensorFlow, и отображает их в массив, разделяя по мере необходимости, чтобы уместить в выделенную память и вычислительные массивы.

 

Журнал: www.electronicdesign.com

Сравнение позиций

  • ()