Архитектура процессора глубокого обучения

Программное обеспечение обеспечивает типовое ядро процессора IP глубокого обучения, которое независимо от цели и может быть развернуто на любой пользовательской платформе, которую вы задаете. Процессор может быть снова использован и совместно использован, чтобы вместить глубокие нейронные сети, которые имеют различные размеры слоя и параметры. Используйте этот процессор для глубоких нейронных сетей быстрого прототипирования из MATLAB®, и затем разверните сеть в FPGAs.

Этот рисунок показывает архитектуру процессора глубокого обучения.

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

Внешняя память DDR

Можно сохранить входные изображения, веса и выходные изображения во внешней памяти DDR. Процессор состоит из четырех Основных интерфейсов AXI4, которые связываются с внешней памятью. Используя один из Основных интерфейсов AXI4, можно загрузить входные изображения на Блок RAM (BRAM). Блок RAM предоставляет активации Generic Convolution Processor.

Типовой процессор свертки

Generic Convolution Processor выполняет эквивалентную операцию одного слоя свертки. Используя другой интерфейс AXI4 Master, веса для операции свертки предоставляются Generic Convolution Processor. Generic Convolution Processor затем выполняет операцию свертки на входном изображении и обеспечивает активации для Activation Normalization. Процессор является типовым, потому что он может поддержать тензоры и формы различных размеров.

Нормализация активации

На основе нейронной сети, которую вы обеспечиваете, Activation Normalization модуль служит цели добавить нелинейность ReLU, maxpool слой, или выполняет Локальную нормализацию ответа (LRN). Вы видите, что процессор имеет два Activation Normalization модули. Один модуль следует за Generic Convolution Processor. Другой модуль следует за Generic FC Processor.

Контроллер Conv (планирующий)

В зависимости от количества слоев свертки, которые вы имеете в своей предварительно обученной сети, Conv Controller (Scheduling) действия как буферы пинг-понга. Generic Convolution Processor и Activation Normalization может обработать один слой за один раз. Обработать следующий слой, Conv Controller (Scheduling) пятится к BRAM и затем выполняет свертку и операции нормализации активации для всех слоев свертки в сети.

Типовой процессор FC

Generic FC Processor выполняет эквивалентную операцию одного полносвязного слоя (FC). Используя другой интерфейс AXI4 Master, веса для полносвязного слоя предоставляются Generic FC Processor. Generic FC Processor затем выполняет операцию полносвязного слоя на входном изображении и обеспечивает активации для Activation Normalization модуль. Этот процессор является также типовым, потому что он может поддержать тензоры и формы различных размеров.

Контроллер FC (планирующий)

FC Controller (Scheduling) работает похожий на Conv Controller (Scheduling). FC Controller (Scheduling) координаты с FIFO действовать как пинг-понг буферизует для выполнения операции полносвязного слоя и Activation Normalization в зависимости от количества слоев FC, и ReLU, maxpool, или функций LRN, которые вы имеете в своей нейронной сети. После Generic FC Processor и Activation Normalization модули обрабатывают все кадры в изображении, предсказания или баллы передаются через интерфейс AXI4 Master и хранятся во внешней памяти DDR.

Приложения процессора глубокого обучения

Одно приложение пользовательского ядра процессора IP глубокого обучения является управляемым процессором глубокого обучения MATLAB. Чтобы создать этот процессор, интегрируйте процессор IP глубокого обучения с MATLAB HDL Verifier™ как Ведущий IP AXI при помощи ведомого интерфейса AXI4. Через JTAG или PCI описывают интерфейс, можно импортировать различные предварительно обученные нейронные сети из MATLAB, выполнить операции, заданные сетью в процессоре IP глубокого обучения и возвратить результаты классификации к MATLAB.

Для получения дополнительной информации смотрите MATLAB Управляемый Процессор Глубокого обучения.