English
version
Задать вопрос

Новости

Все теги
Подписаться на новости

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

Вы успешно подписались!

Мы отправили вам на указанный адрес письмо со ссылкой-подтверждением.

Закрыть
30 апреля 2021

Использование вычислений с сокращенным набором операций ROSC для процессов инференции на примере многоядерного NNA семейства IMG Series4

30 апреля 2021 года — На сайте компании Imagination опубликована статья Джеймса Имбера (James Imber), члена группы исследований искусственного интеллекта компании Imagination, где он работает над ускорителями нейронных сетей, компиляторами и низкоточной инференцией во встроенных системах. Статья Джеймса Имбера посвящена использованию вычислений с сокращенным набором операций (Reduced Operation Set Computing, ROSC) для организации гибких, инновационных и высокопроизводительных процессов инференции. Краткий перевод статьи вы найдете ниже.

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

Перед разработчиками IP-блоков ускорителей нейронных сетей (NNA) стоит титаническая задача: убедиться в том, что их продукт достаточно универсален, чтобы его можно было применять в очень широком диапазоне текущих и будущих приложений, и при этом обеспечить высокую производительность. В таких сегментах, как мобильные устройства, автомобильная электроника, центры обработки данных и встраиваемые системы, на которые ориентированы новейшие ускорители нейронных сетей семейства IMG Series4 компании Imagination, существуют строгие ограничения по полосе пропускания, площади и потребляемой мощности.

Инженеры Imagination нашли инновационные способы решения этих сложных задач и придумали, как создать IP-блоки, позволяющие получить сверхвысокую производительность и при этом соответствовать требованиям завтрашнего дня. В основе каждого многоядерного NNA семейства IMG Series4 находится ведущий в отрасли массив модулей свёрточных сетей, способный выполнять 10 триллионов операций в секунду. Четырехъядерный ускоритель Series4 способен выполнять вычисления на ошеломляющей скорости 40 триллионов операций в секунду или 40 TOPS.

Эффективность — отличительная черта архитектуры ускорителя Series4: обрабатываемые данные упаковываются как можно плотнее на входах в модули свертки, и это позволяет использовать их по максимуму, а значит площадь микросхемы сведена к минимуму. Ускорители семейства Series4 содержат несколько таких высокооптимизированных, быстро конфигурируемых аппаратных модулей для таких операций, как группирование, нормализация и активация. Такая степень специализации приносит огромные дивиденды там, где сеть хорошо сочетается с оборудованием — то есть когда она состоит из «обычных» уровней, таких как свертки, группировки и активации. Но как можно расширить эту архитектуру для поддержки более сложных операций, таких как механизмы внимания и немаксимальное подавление?

Есть два очевидных варианта: добавить к оборудованию новые специализированные блоки или сделать оборудование легко программируемым и универсальным.

Основная проблема с первым из предложенных вариантов заключается в том, что он приводит к увеличению аппаратной части или вынуждает использовать дополнительные со-процессоры, такие как ГПУ, процессоры ЦОС или ЦПУ. В результате увеличиваются и площадь на кристалле, и требования к полосе пропускания, и энергопотребление и сложность устройства. Кроме того, добавление модулей с фиксированным функционалом будет означать, что оборудование не выдержит проверку временем, его применимость будет ограничена теми типами операций, с которыми уже сталкивались разработчики NNA.

Поэтому большинство специалистов, занимающихся разработкой NNA, выбирают второй вариант. Его примерами являются векторные АЛУ и конструкции на основе систолических  массивов. Сложность переносится с аппаратной части на программное обеспечение, что соответствует проверенной временем философии компьютерной архитектуры RISC (вычислитель с сокращенным набором команд). При этом, однако, снижается плотность вычислений. Чтобы достичь цели в 40 TOPS, архитекторам ускорителей семейства Series4 пришлось бы допустить значительное увеличение параметров площади микросхемы и энергопотребления.

Инженеры Imagination решили найти третий способ. Их стратегия заключается в том, чтобы обменять утилитарность на гибкость за счет использования новых методов компиляции и новой философии проектирования, которую они называли вычислениями с сокращенным  набором операций (Reduced Operation Set Computing, ROSC). Ускоритель Series4 обладает огромной вычислительной плотностью для выполнения стандартных слоев, таких как свертка, группировка, активация, а также имеет полносвязные слои, на которые приходится большая часть вычислений в нейронных сетях.

Проще говоря, суть ROSC заключается в том, чтобы за счет реконфигурации и рекомбинирования операций из сокращенного набора создать очень широкий диапазон других операций, которые, как может показаться на первый взгляд, трудно реализовать с помощью этих базовых операций. Такое перераспределение задач обычно приводит к более низкому уровню утилизации вычислительной мощности, поскольку аппаратные модули не используются для своих основных целей. Однако, поскольку Series4 обладает такой большой вычислительной мощностью, даже при использовании, например, 1% (400 гига-операций в секунду), зачастую выполнить на этом ускорителе сложную операцию получается гораздо быстрее, чем «вне кристалла», например на ЦПУ или ГПУ. Обработка данных на ускорителе таким образом экономит ценные системные ресурсы, включая время ЦПУ/ГПУ, энергопотребление и полосу пропускания.

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

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

Ускоритель Series4 имеет пять основных конфигурируемых типов вычислительных аппаратных элементов:

  • Модуль свертки
  • Блок группировки
  • Блок нормализации
  • Блок поэлементных операций
  • Блок активации

Отдельные аппаратные модули можно настроить для выполнения самого широкого круга задач

Каждый из этих конфигурируемых аппаратных модулей способен делать больше, чем может показаться возможным на первый взгляд. Например, модули свертки ускорителя Series4 могут быть настроены для выполнения операций, показанных на рисунке выше (и помимо этого многих других), без обращения к другим вычислительным аппаратным блокам. Еще более широкий спектр операций можно реализовать, используя комбинацию нескольких таких блоков. Фактически получается, что Series4 может быть настроен с помощью расширенных методов компилятора с понижением графа таким образом, чтобы охватить почти все операции, встречающиеся в современных нейронных сетях.

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

Softmax

Логическая функция Softmax — обычная операция в нейронных сетях, часто используемая там, где нужна дискретная вероятность. Она также используется в некоторых случаях для нормализации тензора, чтобы все элементы вдоль определенной оси или осей находились в диапазоне [0,1] и в сумме равнялись 1.

Softmax обычно занимает небольшую долю вычислительных ресурсов в сети. Например, в большинстве классификационных сетей базы данных ImageNet на функцию softmax приходится менее 0,01% вычислений. В соответствии со стратегией ROSC — не тратить впустую площадь на кристалле на «темный» кремний — в ускорителе Series4 нет специального оборудования для реализации softmax. Вместо этого эта функция реализована с помощью других доступных операций. По сути, стратегия состоит в том, чтобы заменить softmax серией операций («вычислительный подграф»), которые математически идентичны, но состоят из операций, напрямую поддерживаемых аппаратным обеспечением.

Функция softmax — сложная операция, реализуемая в пять этапов, как показано на рисунке ниже. Четырем из этих этапов — редукция максимума в кросс-каналах (cross-channel max reduction), показательное распределение (exponential), редукция суммы в кросс-каналах (cross-channel sum reduction) и деление (division) — специальное оборудование на ускорителе Series4 не выделено. Тем не менее, придуманы оригинальные способы, которыми можно запустить эти этапы на Series4, как описано ниже.

Разложение функции softmax на составные части
  • Свертка 1×1 с тензором весов при одном фильтре, полностью состоящем из единиц, может использоваться для реализации кросс-канального суммирования. 
  • Деление может быть реализовано как умножение одного тензора на величину, обратную другому. Модуль LRN (Local Response Normalization — нормализация локальной реакции) ускорителя Series4 может быть настроен для вычисления обратных значений. 
  • Редукция максимума в кросс-каналах может быть выполнена путем транспонирования каналов на пространственную ось и выполнения ряда операций пространственной группировки максимума. Затем значение снова переносится на ось канала.
  • Поскольку показательное распределение ограничено отрицательными и нулевыми входными значениями, таблица перекодировки (LUT) активации может быть сконфигурирована с функцией экспоненциального затухания. 

В целом это приводит к замене подграфа, содержащего от 10 до 15 операций (в зависимости от размера входного тензора), выполняемых за несколько аппаратных проходов. Смысл ROSC заключается в том, что данный граф быстрее и намного проще в исполнении, чем альтернативный вариант выполнения на ЦПУ или со-процессоре. В этом случаем мы избегаем обеих крайностей полностью программируемого и специализированного оборудования с фиксированными функциями, а вся сложность концентрируется на процессе компиляции, которым легче всего управлять.

Более того, подменные операции, используемые для выполнения функции softmax, можно повторно использовать для других высокоуровневых функций. После реализации нескольких таких высокоуровневых операций легко понять, как можно создавать библиотеку многоразовых замен операций, и это упрощает перенос будущих операций на ускоритель Series4. Таким образом ROSC обеспечивает соответствие требованиям завтрашнего дня.

3D свертка

Механизмы свертки и связанные с ними операции ввода и вывода данных в ускорителе Series4 очень хорошо оптимизированы под 1D и 2D свертку — это оправдывает себя, потому что на эти операции приходится подавляющее большинство вычислений в большинстве сверточных нейронных сетей (CNN).

Трехмерная свертка реализована в виде двумерных сверток и поэлементного суммирования

Однако трехмерные и многомерные свертки изначально не поддерживаются в аппаратной части ускорителя Series4. Трехмерная свертка — это конкретный пример сложной операции, которая может быть перенесена в Series4 с использованием методов уменьшения графа. В этом случае подграф строится из двумерных сверток и поэлементных операций сложения. Когда компилятор «видит» трехмерную свертку в исходном графе, он заменяет ее эквивалентной версией этого подграфа перед тем, как генерировать машинный код, исполняемый ускорителем Series4.

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

Заключение

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

Инженеры Imagination разработали инновационный подход, сочетающий в себе лучшее из обоих вариантов. Ускоритель Series4 не содержит ничего похожего на АЛУ, требуемого для программируемости устройства. Вместо этого он имеет несколько очень эффективных аппаратных модулей, предназначенных для выполнения вычислений по конкретным, часто встречающимся операциям. Высокая гибкость достигается за счет использования новых методов компиляции, с помощью которых можно построить очень широкий диапазон операций из сокращенного набора базовых операций. Такой подход описывается новым кодовым обозначением «Вычисления с сокращенным набором операций» (сокращенно ROSC). Благодаря подобной координации разработки аппаратной и программной части, ускоритель Series4, не жертвуя гибкостью, демонстрирует отличную производительность и вычислительную плотность, и соответствует требованиям завтрашнего дня.

Источник

Задать вопрос




    ×