Тема: АППАРАТНАЯ РЕАЛИЗАЦИЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ НА ПЛИС
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 5
1 Искусственные нейронные сети 8
1.1 Устройство искусственных нейронных сетей 8
1.2 Применение искусственных нейронных сетей 14
1.3 Вычисление искусственных нейронных сетей 16
1.4 Оптимизация вычисления искусственных нейронных сетей 18
2 Аппаратная реализация искусственных нейронных сетей 21
2.1 Особенности аппаратной реализации вычислительных устройств 21
2.2 Квантование параметров 22
2.3 Реализация полносвязного слоя 23
2.4 Сравнение реализации полносвязного слоя 28
2.5 Реализация сверточного слоя 35
Заключение 41
Список использованных источников и литературы 42
📖 Введение
С развитием Интернета вещей (IoT) возрос интерес к использованию искусственных нейронных сетей во встраиваемых системах (embedded systems) [4]. Стандартные решения на основе центральных процессоров (CPU) и графических процессоров (GPU), обычно используемые для вычисления искусственных нейронных сетей, не применимы в случае встраиваемых систем из-за жестких ограничений по потребляемой и выделяемой мощности и естественных ограничений на габариты используемых компонентов. Часто применяемые во встраиваемых системах 32-битные процессоры архитектуры ARM, как правило, не могут предоставить достаточно вычислительной мощности для использования искусственных нейронных сетей, что вынуждает изыскивать иные решения проблемы: полностью отказываться от использования нейронных сетей, использовать простые, но менее точные архитектуры нейронных сетей (например, SqueezeNet [5]), применять более производительные вычислительные устройства.
Структура искусственных нейронных сетей предполагает легкое распараллеливание вычислений. Этот факт обусловлен тем, что нейронные сети представляют собой композицию матричных умножений, матричных сверток и поэлементных нелинейных функций. Известно, что каждый элемент в результирующей матрице может быть вычислен отдельно от других, потому до некоторого предела с ростом числа потоков, в которых производится вычисления, время вычисления результата матричной операции сокращается. Программируемые логические интегральные схемы (ПЛИС), в силу своей внутренней структуры, могут быть эффективно применены при распараллеливании вычислений. Также эти интегральные микросхемы как правило имеют сравнительно небольшое энергопотребление и маленький размер, благодаря чему часто применяются во встраиваемых системах, в том числе и в составе систем на кристалле (SoC). В отличие от процессоров общего назначения и графических процессоров у ПЛИС нет вычислительных ядер, а потому максимальное число потоков, в которых производятся вычисления, ограничено лишь количеством логических элементов на кристалле. Эти факты спровоцировали рост интереса к применению ПЛИС для ускорения нейронных сетей.
Следует отметить, что глубокое обучение является сравнительно новой областью науки. К примеру, активное применение нейронных сетей для решения реальных задач науки и промышленности, связанных с компьютерным зрением, приходится на вторую декаду XXI века, и связано с работами, в которых были предложены архитектуры AlexNet [1], ResNet [6] и другие. Помимо этого, глубокое обучение является динамичной и постоянно развивающейся прикладной наукой: разработанные подходы, методы и архитектуры непрерывно появляются, совершенствуются и сменяются новыми. Указанные две особенности области приводят к тому, что в глубоком обучении, как и в области ускорения искусственных нейронных сетей, в настоящий момент не существует классических и общепризнанных учебников и монографий. Исследователи и разработчики, связанные с данной областью, в своей работе опираются главным образом на новые научные публикации, подкрепленные воспроизводимыми примерами кода.
Разработка аппаратной реализации искусственных нейронных сетей является сложной задачей, требующей комплексного подхода. Настоящая работа посвящена разработке аппаратной реализации полносвязного и сверточного слоев искусственных нейронных сетей на ПЛИС; сравнению реализации с существующими альтернативами.
✅ Заключение
Сравнение производительности разработанного полносвязного слоя с широко используемой программной реализацией из программного пакета PyTorch, запущенной на системе на кристалле Nvidia Jetson Nano, показало, что разработанная аппаратная реализация превосходит на порядок по скорости вычислений указанную систему на кристалле и может использоваться при ускорении искусственных нейронных сетей, применяемых во встраиваемых системах.
Сравнение производительности разработанного сверточного слоя с широко используемой программной реализацией из программного пакета PyTorch, запущенной на системе на кристалле Nvidia Jetson Nano, показало, что разработанная архитектура позволяет достичь сопоставимого времени выполнения свертки для входных матриц, высота и ширина которых не превышает 1024. Данный факт подтверждает наличие потенциала у исследуемого подхода и, с учетом соответствия ПЛИС всем требованиям для использования во встраиваемых системах, возможность его использования для встраиваемых решений.





