цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Использование ПЛИС FPGA в создании нейронных сетей

Использование ПЛИС FPGA в создании нейронных сетей

Автор: Mike(admin) от 25-10-2017, 19:25

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


Использование ПЛИС FPGA в создании нейронных сетей

Большая часть сегодняшних массовых вычислений использует графические процессоры, потому что закон Мура за последние несколько десятилетий сохранился, однако мы приближаемся к тому времени, когда развитие графических процессоров (GPU) не будет соответствовать требованиям алгоритмов ИИ. В дополнение к вычислительной мощности, эти GPU-системы также потребляют большое количество энергии. Итак, как можно увеличить вычислительную мощность при одновременном снижении энергопотребления в процессе выполнения этих алгоритмов глубокого обучения?


Дуг Бюргер, директор по развитию клиентских и облачных приложений в Microsoft, и его команда проявили интерес к решению этой дилеммы. Microsoft развернула различные крупные глобальные центры обработки данных, которые выполняют чрезвычайно важные рабочие вычисления за счет использования сверточных нейронных сетей (СНС или CNN). CNN – это тип машинного обучения, который анализирует изображение таким образом, чтобы изучать функции, которые могут помочь компьютеру идентифицировать шаблоны в изображении. Д-р Бюргер объясняет, что для того, чтобы лучше понять, что такое CNN, «алгоритмы применяют набор фильтров к «пространству» входного изображения. При центрировании вокруг множества пикселей на входном изображении используется функция для анализа набора пикселей, сбора результата и определения параметров заданного одного пикселя». Далее он поясняет, что с увеличением повторений процесса, результирующая матрица уменьшает размер исходной матрицы. Процесс выполняется по многим функциям, что приводит к трехмерной матрице узнанных значений. Доктор Бюргер указывает, что его команда применяет набор весов к исходному изображению на основе предшествующей обработки и использует это для извлечения функций из изображений. Результаты CNN затем могут быть помещены в полностью подключенный уровень или в глубокую сеть, где система может изучать концепции более высокого уровня.


Этот процесс использования CNN для глубокого обучения чрезвычайно интенсивен. Центры данных Microsoft испытывали трудности с развертыванием графических процессоров в больших масштабах в качестве единственного вычислительного средства, поскольку они имели ограниченную применимость и большое энергопотребление. Было также обнаружено до тестирования CNN, что серверы были неэффективны при обработке ранжирования Bing. В 2014 году проект Catapult от Microsoft подтвердил наличие этого препятствия, добавив процессоры и протестировав FPGA Altera Stratix 5 для обработки алгоритмов ранжирования поиска Bing. Результаты показали увеличение производительности почти в 2 раза, поэтому команда решила использовать эту инфраструктуру для тестирования ускорителя CNN.


Altera Stratix 5

Ускоритель на основе программируемых логических интегральных схем (ПЛИС) FPGA был разработан для эффективного расчета прямого распространения сверточных слоев. Таким образом, ускоритель CNN должен иметь возможность принимать входное изображение и обрабатывать несколько сверточных слоев подряд. При разработке архитектура должна включать несколько факторов. Поскольку система должна обрабатывать несколько уровней, вычислительный движок системы должен быть настроен для поддержки этих слоев. Управление памятью имеет решающее значение, поэтому проект должен включать эффективную схему буферизации данных и сеть повторного распространения на кристалле. Наконец, архитектура проекта должна иметь возможность содержать пространственно распределенный массив элементов обработки, которые можно легко масштабировать до тысяч единиц. Это позволяет ускорителю CNN принять входное изображение, а затем выполнить анализ многочисленных сверточных слоев подряд. Метод, в котором система обрабатывает сверточные слои, сильно зависит от используемого оборудования. ПЛИС FPGA стали явным выбором для достижения большей эффективности обработки.


Если рассматривать ндивидуально, то производительность отдельных FPGA хуже производительности графических процессоров. ПЛИС, используемые в архитектуре ускорителя CNN, представляют собой Altera Arria 10. Использование одной FPGA Altera Arria 10 обрабатывает 233 изображения в секунду при использовании около 25 Вт. Графический процессор NVIDIA Tesla K40 может обрабатывать от 500 до 824 изображений в секунду. Но графический процессор NVIDIA Tesla K40 потребляет мощность 235 Вт для обработки изображений с такой скоростью. Таким образом, FPGA немного медленнее, но она также потребляет значительно меньше энергии. Но вся прелесть здесь состоит в том, что системы с FPGA являются масштабируемыми. Как минимум три FPGA могут быть соединены вместе, чтобы обеспечить такую же мощность обработки, что и Tesla K40, при одновременном снижении выходной мощности примерно на 30%.


Altera Arria 10

FPGA Arria 10 обеспечивает до 40 GFLOPS на ватт. Arria 10 использует OpenCL, разнвидность VHDL, для кодирования своих блоков обработки цифрового сигнала с плавающей точкой IEEE754. Arria 10 имеет гибкий путь передачи данных, который обходит внешнюю память и позволяет ядрам OpenCL передавать данные напрямую друг другу. В дополнение к гибкому пути данных, Arria 10 поддерживает аппаратные операции с фиксированной плавающей точкой как для умножения, так и для сложения. Это позволяет FPGA содержать больше логики и обеспечивать более высокую тактовую частоту. Благодаря этим улучшениям в функциональности аппаратного и программного обеспечения, Arria 10 способна превзойти существующие платформы на основе графических процессоров. В тестах, выполненных Microsoft с использованием массива Arria 10s для вычисления функций CNN, команда наблюдала значительный прирост производительности (примерно 30-кратный).


Выполнение более быстрых и эффективных вычислений позволяет разрабатывать передовые приложения. Глубокое обучение и другие приложения, интенсивно использующие вычислительные ресурсы, находятся на переднем крае исследований. Поскольку графические процессоры смогли удовлетворить спрос, они зачастую используются в центрах обработки данных. Но с улучшением производительности ПЛИС FPGA центры обработки данных могут использовать и их для удовлетворения потребностей в вычислительных возможностях и энергопотреблении. Это позволяет эмулировать глубокое обучение путем последовательной обработки нескольких слоев сверточных нейронных сетей.




© digitrode.ru



Теги: ПЛИС, FPGA, нейронная сеть, искусственный интеллект




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

Комментарии:

Оставить комментарий