Используйте выход компилятора для системной интеграции

compile метод:

  • Генерирует таблицу адресов внешней памяти.

  • Оптимизирует сети для развертывания.

  • Сети разделений в участки для развертывания.

Чтобы интегрировать сгенерированное ядро процессора IP глубокого обучения в ваш системный исходный проект, используйте compile метод выходные параметры.

Таблица адресов внешней памяти

Когда вы создаете dlhdl.Workflow возразите и используйте compile метод, таблица адресов внешней памяти сгенерирована. compile метод генерирует эти смещения адреса на основе нейронной сети для глубокого обучения и требуемой платы: Используйте таблицу адресов для:

  • Загрузите сетевые входные параметры.

  • Загрузите инструкции по ядру процессора IP глубокого обучения.

  • Загрузите сетевые веса и смещения.

  • Получите выходные результаты.

compile метод генерирует эти смещения адреса:

  • InputDataOffset — Смещение адреса, где входные изображения загружаются.

  • OutputResultOffset — Выведите результаты, записаны, начав при этом смещении адреса.

  • SchedulerDataOffset — Смещение адреса, где данные об активации времени выполнения планировщика записаны. Данные об активации во время выполнения включают информацию те, которые передают между различными ядрами процессора глубокого обучения, инструкциями для различных ядер процессора глубокого обучения, и так далее.

  • SystemBufferOffset — Не используйте адрес памяти, запускающийся при этом смещении и заканчивающийся в начале InstructionDataOffset.

  • InstructionDataOffset — Все инструкции по настройке слоя (LC) записаны, начав при этом смещении адреса.

  • ConvWeightDataOffset — Все conv обработка весов модуля записаны, начав при этом смещении адреса.

  • FCWeightDataOffset — Весь полностью соединенный (FC), обрабатывающий веса модуля, записан, начав при этом смещении адреса.

  • EndOffset — Конец памяти DDR возмещен для сгенерированного процессора IP глубокого обучения.

Пример отображает карту внешней памяти, сгенерированную для сети распознавания ResNet-18, которая использует zcu102_single поток битов. Смотрите, Компиляция dagnet сетевой объект.

Оптимизация компилятора

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

  • Слой нормализации партии. (batchNormalizationLayer) и 2D слой свертки (convolution2dLayer).

  • 2D нулевой дополнительный слой (nnet.keras.layer.ZeroPadding2dLayer) и 2D слой свертки (convolution2dLayer).

  • 2D нулевой дополнительный слой (nnet.keras.layer.ZeroPadding2dLayer) и 2D макс. слой опроса (maxPooling2dLayer).

Этот код выход является компиляторной оптимизацией в качестве примера в журнале компилятора.

Optimizing series network: Fused 'nnet.cnn.layer.BatchNormalizationLayer' into 'nnet.cnn.layer.Convolution2DLayer'

Компиляции уровня участка

compile функционируйте разделяет сеть в участки во время компиляции. Участок является подмножеством сети, которую можно преобразовать в серийную сеть. compile функциональные группы участки на основе выходного формата слоев. Выходной формат слоя задан как формат данных процессорного модуля глубокого обучения, это обрабатывает тот слой. Выходной формат слоя является conv, ФК или сумматором. Например, в этом изображении, compile функциональные группы все слои в Leg 2 вместе, потому что у них есть conv выходной формат. Чтобы узнать о выходных форматах слоя, смотрите Поддерживаемые Слои.

ResNet-18 leg grouping

Это изображение показывает участки сети ResNet-18, созданной compile функционируйте и те участки, подсвеченные на архитектуре слоя ResNet-18.

ResNet-18 architecture and compiler legs

Похожие темы