Пользовательская генерация процессора глубокого обучения, чтобы соответствовать требованиям к производительности

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

Загрузите предварительно обученную серийную сеть

Загружать предварительно обученную серийную сеть LogoNet, введите:

snet = getLogoNetwork;

Создайте пользовательскую настройку процессора

Чтобы создать пользовательскую настройку процессора, используйте dlhdl.ProcessorConfig объект. Для получения дополнительной информации смотрите dlhdl.ProcessorConfig. Чтобы узнать о модифицируемых параметрах настройки процессора, смотрите getModuleProperty и setModuleProperty.

hPC = dlhdl.ProcessorConfig;
hPC.TargetFrequency = 220;

Создайте объект рабочего процесса

Создайте dlhdl.Workflow объект. Задайте snet как сеть и hPC как ProcessorConfig.

hW = dlhdl.Workflow('Network',snet,'ProcessorConfig',hPC)

Оцените эффективность LogoNet

К estimate эффективность сети серии LogoNet, используйте estimate функция dlhdl.Workflow объект. Функция возвращает предполагаемую задержку слоя, сетевую задержку и производительность сети в кадрах в секунду (Frames/s).

hW.estimate('Performance')

Выход estimate функция:

Предполагаемые кадры в секунду являются 5,6 системами координат/с. Чтобы улучшать производительность сети, измените пользовательский тип данных ядра модуля свертки процессора, номер потока процессора свертки, полностью связанный тип данных ядра модуля, и полностью соединил номер потока модуля. Для получения дополнительной информации об этих параметрах процессора, смотрите getModuleProperty и setModuleProperty.

Создайте модифицированную пользовательскую настройку процессора

Чтобы создать пользовательскую настройку процессора, используйте dlhdl.ProcessorConfig объект. Для получения дополнительной информации смотрите dlhdl.ProcessorConfig. Чтобы узнать о модифицируемых параметрах настройки процессора, смотрите getModuleProperty и setModuleProperty.

hPCNew = dlhdl.ProcessorConfig;
hPC.TargetFrequency = 300;
hPCNew.setModuleProperty('conv', 'KernelDataType',   'int8');
hPCNew.setModuleProperty('conv', 'ConvThreadNumber', 64);
hPCNew.setModuleProperty('fc', 'KernelDataType',   'int8');
hPCNew.setModuleProperty('fc', 'FCThreadNumber',   16);

Квантуйте серийную сеть LogoNet

Чтобы оценить эффективность сети серии LogoNet при помощи новой пользовательской настройки процессора, квантуйте сеть LogoNet. Для получения дополнительной информации смотрите Оценочную Эффективность Квантованного LogoNet, Работающего на Потоке битов ZCU102. Используйте квантованный сетевой объект dlquantObj оценить эффективность при помощи новой пользовательской настройки процессора.

Создайте объект рабочего процесса

Создайте dlhdl.Workflow объект. Задайте dlQuantObj как сеть и hPC как ProcessorConfig.

hW = dlhdl.Workflow('Network',dlquantObj,'ProcessorConfig',hPCNew)

Оцените эффективность LogoNet

Чтобы оценить эффективность сети серии LogoNet, используйте estimate функция dlhdl.Workflow объект. Функция возвращает предполагаемую задержку слоя, сетевую задержку и производительность сети в кадрах в секунду (Frames/s).

hW.estimate('Performance')

Выход estimate функция:

Предполагаемые кадры в секунду являются 21,5 системами координат/с.

Сгенерируйте пользовательский процессор и поток битов

Используйте новую пользовательскую настройку процессора, чтобы создать и сгенерировать пользовательский процессор и поток битов. Используйте пользовательский поток битов, чтобы развернуть сеть LogoNet в вашу целевую плату FPGA.

hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
dlhdl.buildProcessor(hPCNew);

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

Сгенерированный поток битов в этом примере похож на zcu102_int8 поток битов. Развернуть квантованную сеть LogoNet с помощью zcu102_int8 передайте поток битов, смотрите, Получают Результаты Предсказания для Квантованной Сети LogoNet.

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