Интерфейс с ядром IP процессора глубокого обучения

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

Создайте настройку процессора глубокого обучения

Чтобы сгенерировать ядро процессора IP глубокого обучения, которое имеет необходимые интерфейсы для обработки нескольких кадров данных, создайте настройку процессора глубокого обучения при помощи dlhdl.ProcessorConfig класс. В настройке процессора глубокого обучения:

  • Установите InputRunTimeControl и OutputRunTimeControlили к порту или к регистру.

  • Необходимо установить InputDataInterface и OutputDataInterface к ExternalMemory.

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

hPC = dlhdl.ProcessorConfig;
hPC.InputRunTimeControl = 'port';
hPC.OutputRunTimeControl = 'port'
hPC.InputDataInterface = 'External Memory';
hPC.OutputDataInterface = 'External Memory';
dlhdl.buildProcessor(hPC);

Выберите Data Processing Mode

Выберите между режимом пакетной обработки данных и потоковым режимом на основе ваших требований к ресурсам, доступности входных параметров и интерфейсной сложности. Эта таблица приводит различные критерии выбора и который режим выбрать на основе критериев выбора.

Критерии выбораРежим пакетной обработки данныхПотоковый режим
Доступность входных данныхВсе входные данные должны быть доступными, прежде чем вы инициируете ядро процессора IP глубокого обучения, чтобы начать обрабатывать данные.Данные о потоковом вводе как и когда данные доступны.
Требования к памятиТребует, чтобы ресурсы памяти большой емкости сохранили все входные данные и обработанные выходные данные, когда ядро процессора IP глубокого обучения обрабатывает все данные вместе.Требует минимальных ресурсов памяти. Наименьшая требуемая память является дважды размером одной системы координат входных данных.
Интерфейсная сложностьПростой протокол. Никакой протокол квитирования не требуется.Комплексный протокол. Необходимо реализовать протокол квитирования.

Спроектируйте сигналы интерфейса режима обработки

Можно сгруппировать интерфейсные сигналы в сигналы во время выполнения и квитирующие сигналы. Квитирующие сигналы используются только, когда режим обработки данных установлен в потоковый режим.

Сигналы во время выполнения

Эта таблица приводит сигналы во время выполнения, типы данных, интерфейсные типы и описание.

Имя сигналаТип данныхИнтерфейсный тип (Порт или регистр)Описание
DoneлогическийregisterСигнал, указывающий, что ядро процессора IP глубокого обучения обработало все входные данные и записало последний выход в память.
InputStartлогическийregisterСигнал от пользователя к ядру процессора IP глубокого обучения, чтобы начать обрабатывать данные.
FrameCountцелое числоregisterСигнал от пользователя к ядру процессора IP глубокого обучения определение количества систем координат входных данных.
StreamingModeлогическийregisterСигнал от пользователя к ядру процессора IP глубокого обучения определение режима обработки данных. false выбирает буферный режим и true выбирает потоковый режим.
StreamingDoneлогическийregisterСигнал протестировать потоковый режим. Во время тестирования сигнал становится верным, когда вы получаете последний выход.
InputStopлогическийregisterСигнал остановить непрерывный потоковый режим. Чтобы остановить непрерывный потоковый режим, установите этот сигнал на true.

Квитирование сигналов

Эта таблица приводит сигналы квитирования, типы данных, интерфейсные типы и описание. Эти сигналы используются для потокового режима. Интерфейсный тип зависит от InputRunTimeControl и OutputRunTimeControl настройки. Например, если InputRunTimeControl установлен в port, интерфейсным типом является port.

Имя сигналаТип данныхInputRunTimeControl или OutputRunTimeControlИнтерфейсный тип (Порт или регистр)Описание
InputAddruint32InputRunTimeControlport/registerСигнал, указывающий на местоположение адреса в памяти для загрузки входных данных. Используйте этот сигнал когда InputValid сигнал высок.
InputNextлогическийInputRunTimeControlport/registerСигнал к ядру процессора IP глубокого обучения, чтобы указать, что следующая система координат данных доступна для обработки. Используйте этот сигнал когда InputValid сигнал высок.
InputSizeuint32InputRunTimeControlport/registerСигнал, указывающий на размер следующей системы координат входных данных. Используйте этот сигнал когда InputValid сигнал высок.
InputValidлогическийInputRunTimeControlport/registerСигнал от ядра процессора IP глубокого обучения указание, что входные данные допустимы.
OutputAddruint32OutputRunTimeControlport/registerrСигнал, указывающий на местоположение адреса в памяти от того, где получить выходные данные. Используйте этот сигнал когда OutputValid сигнал высок.
OutputNextлогическийOutputRunTimeControlport/registerСигнал к ядру процессора IP глубокого обучения, чтобы указать, что вы считали систему координат данных о текущей производительности. Используйте этот сигнал когда OutputValid сигнал высок.
OutputSizeuint32OutputRunTimeControlport/registerСигнал, указывающий на размер следующей системы координат выходных данных. Используйте этот сигнал когда OutputValid сигнал высок.
OutputValidлогическийOutputRunTimeControlport/registerСигнал от ядра процессора IP глубокого обучения указание, что выходные данные допустимы.

Спроектируйте интерфейс режима пакетной обработки данных

Когда вы имеете в наличии все свои входные данные и доступ к большому пространству памяти двойной скорости передачи данных (DDR), обрабатываете несколько кадров при помощи режима пакетной обработки данных. Рисунок показывает сгенерированное ядро процессора IP глубокого обучения с интерфейсными сигналами для режима работы пакетной обработки данных. Вы используете MATLAB и dlhdl.Workflow возразите, чтобы запустить вашу нейронную сеть для глубокого обучения на ядре процессора IP глубокого обучения. Получите сетевое предсказание, следует из ядра процессора IP глубокого обучения.

Чтобы обработать один кадр данных устанавливает FrameCount укажите значение одному.

Deep Learning Processor IP core with buffer mode interface signals

Эта блок-схема показывает операцию режима пакетной обработки данных.

Flowchart detailing buffer mode of operation.

Эта схема синхронизации показывает операцию режима пакетной обработки данных.

Buffer mode timing diagram for three input data frames

Загрузите все системы координат данных в последовательные входные местоположения памяти DDR, переключите inputStart сигнал, ожидайте done предупредите, чтобы пойти высоко, и затем считать выходные данные из последовательных выходных местоположений памяти DDR. clientAction сигналы представляют ваши действия загрузки входных данных и чтения выходных данных в память DDR.

Спроектируйте интерфейс потокового режима

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

Дата может быть передана потоком к ядру процессора IP глубокого обучения в двух режимах:

  • Потоковые Данные до значения количества системы координат — В этом режиме процессор глубокого обучения обрабатывают кадры данных до значения, заданного в FrameCount. После обработки всех кадров базовые наборы процессора IP глубокого обучения Done предупредите к true.

    Чтобы обработать один кадр данных устанавливает FrameCount укажите значение одному.

  • Непрерывный потоковый режим — В этом режиме, ядро процессора IP глубокого обучения обрабатывает кадры данных, пока вы не устанавливаете InputStop значение к true.

Deep Learning Processor IP core with interface signals for streaming mode

Потоковый режим до количества Системы координат

Эта блок-схема показывает операцию режима обработки данных потокового режима. Операции чтения и операции записи происходят параллельно. Набор значений в InputFrameNumberLimit задает количество пробелов в DDR для кольцевых буферов ввода и вывода. Если вы используете больший кольцевой buffer size процессы ядра процессора IP глубокого обучения более входные изображения, прежде чем вы считаете первый выходной результат.

Эта блок-схема показывает операцию потокового режима до количества системы координат. Операции чтения и операции записи происходят параллельно.

Flowchart detailing streaming mode operation

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

Streaming up to a frame count mode timing diagram

  1. Установите InputFrameNumberLimit аргумент compile метод к значению, больше, чем два.

  2. Установите StreamingMode предупредите к true.

  3. Определите номер систем координат данных к процессу в FrameCount регистр.

  4. Пульсируйте inputStart сигнал. Эти следующие действия могут быть выполнены параллельно:

    1. Ожидайте inputValid предупредите, чтобы стать true и затем:

      • Используйте inputAddr и inputSize сигналы записать следующие входные данные структурируют к памяти DDR.

      • Пульсируйте inputNext сигнал.

    2. Ожидайте outputValid предупредите, чтобы стать true и затем:

      • Используйте outputAddr и outputSize сигналы считать обработанный кадр выходных данных.

      • Пульсируйте outputNext сигнал.

  5. Если ядро процессора IP глубокого обучения обработало все кадры, оно устанавливает done предупредите к true.

clientAction сигналы представляют ваши действия загрузки входных данных и чтения выходных данных в память DDR.

Непрерывный потоковый режим

Можно постоянно передавать данные потоком к процессору глубокого обучения в непрерывном потоковом режиме. Чтобы использовать непрерывный потоковый режим, установите FrameCount обнулять. Остановить устройство обработки данных InputStop предупредите к true.

Эта блок-схема показывает операцию непрерывного потокового режима. Операции чтения и операции записи происходят параллельно.

Flowchart detailing continuous streaming mode operation

Эта схема синхронизации показывает операцию непрерывного потокового режима.

Continuous streaming mode timing diagram

  1. Установите InputFrameNumberLimit аргумент compile метод к значению, больше, чем два.

  2. Установите StreamingMode предупредите к true.

  3. Определите номер систем координат данных к процессу в FrameCount укажите, чтобы обнулить.

  4. Пульсируйте inputStart сигнал. Эти следующие действия могут быть выполнены параллельно:

    1. Ожидайте inputValid предупредите, чтобы стать true и затем:

      • Используйте inputAddr и inputSize сигналы записать следующие входные данные структурируют к памяти DDR.

      • Пульсируйте inputNext сигнал.

    2. Ожидайте outputValid предупредите, чтобы стать true и затем:

      • Используйте outputAddr и outputSize сигналы считать обработанный кадр выходных данных.

      • Пульсируйте outputNext сигнал.

  5. Если вы записали все входные данные и читали, все выходные данные пульсируют InputStop сигнал.

Доступ к данным от DDR

Ядро IP глубокого обучения использует три Основных интерфейса AXI4, чтобы сохранить и обработать:

  • Данные об активации

  • Данные о весе

  • Отладочные данные

Процессор глубокого обучения читает и записывает данные от DDR на основе режима работы обработки данных при помощи этих Основных интерфейсов AXI4.

Смотрите также

| |