Оцените использование ресурса для пользовательского Совета и исходного проекта

Быстрое прототипирование развертывание нейронных сетей для глубокого обучения к вашей пользовательской плате при помощи estimateResources функция. Оцените использование ресурса настройки процессора глубокого обучения для вашей пользовательской платы. Оптимизируйте интегрирование пользовательских ядер IP и исходного проекта в вашу систему при помощи estimateResources функционируйте, чтобы оценить использование ресурса вашего исходного проекта. Инструмент синтеза, который вы используете, должен быть в списке инструментов, поддержанных SynthesisTool свойство dlhdl.ProcessorConfig объект. Для списка поддерживаемых инструментов и семейств устройств, смотрите SynthesisTool и SynthesisToolChipFamily.

В этом примере оцените использование ресурса для своей пользовательской платы, которая имеет Kintex® Ultrascale +™ серия ИС. Также оцените использование ресурса исходного проекта для Xilinx® Zynq® Ultrascale +™ плата MPSoC ZCU102.

Необходимые условия

  • Deep Learning HDL Toolbox™

  • Пакет поддержки Deep Learning HDL Toolbox™ для FPGA Xilinx и SoC

  • HDL Coder™

Оцените использование ресурса для Kintex® Ultrascale +™ Совет

Чтобы оценить использование ресурса для вашей пользовательской платы, которая имеет Kintex® Ultrascale +™ серия ИС, используйте estimateResource функция dlhdl.ProcessorConfig объект.

  1. Добавьте dlhdl_device_registration.m файл к пути поиска файлов MATLAB®.

  2. Создайте dlhdl.ProcessorConfig объект.

  3. Обновите SynthesisToolChipFamily и SynthesisToolDevicename свойства dlhdl.ProcessorConfig объект.

  4. Используйте estimateResources функция, чтобы получить использование ресурса для вашей пользовательской платы.

Deep Learning HDL Toolbox™ не поддерживает интерполяционную таблицу (LUT) оценка для пользовательских плат.

hPC = dlhdl.ProcessorConfig;
hPC.SynthesisToolChipFamily = 'Kintex Ultrascale+';
hPC.SynthesisToolDeviceName = 'xcku11p-ffva1156-1-e';
hPC.estimateResources
Warning: Device family "Kintex Ultrascale+" is not currently supported for LUT Estimation. Supported families are Zynq, Zynq UltraScale+ and Arria 10.
              Deep Learning Processor Estimator Resource Results

                             DSPs          Block RAM*     LUTs(CLB/ALUT)  
                        -------------    -------------    ------------- 
Available                    2928              600           298560
                        -------------    -------------    ------------- 
DL_Processor                377( 13%)        508( 85%)          0(  0%)
* Block RAM represents Block RAM tiles in Xilinx devices and Block RAM bits in Intel devices

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

Оцените использование ресурса для исходного проекта, который вы хотите интегрировать в свою систему, которая имеет Xilinx® Zynq® Ultrascale +™ плата MPSoC ZCU102. Используйте estimateResource функция с IncludeReferenceDesign аргумент значения имени. estimateResources функционируйте использует ResourcesUsed.LogicElements, ResourcesUsed.DSP, и ResourcesUsed.RAM информация в файле плагина исходного проекта, чтобы выполнить оценку ресурса. Чтобы оценить использование ресурса для вашего пользовательского исходного проекта, необходимо заполнить файл исходного проекта со значениями для ResourcesUsed.LogicElements, ResourcesUsed.DSP, и ResourcesUsed.RAM. Смотрите ResourcesUsed. Исходный проект, используемый в этом коде, расположен в $supportpackageinstallationfolder/Xilinx/boards/+DLZCU102/+matlab_libiio_3axi4_master_2019_1/plugin_rd.m.

hPC_referencedesign = dlhdl.ProcessorConfig;
hPC_referencedesign.estimateResources('IncludeReferenceDesign',true)
              Deep Learning Processor Estimator Resource Results

                             DSPs          Block RAM*     LUTs(CLB/ALUT)  
                        -------------    -------------    ------------- 
Available                    2520              912           274080
                        -------------    -------------    ------------- 
Total                       380( 16%)        586( 65%)     269176( 99%)
ReferenceDesign               3(  1%)         78(  9%)      35000( 13%)
DL_Processor                377( 15%)        508( 56%)     234175( 86%)
* Block RAM represents Block RAM tiles in Xilinx devices and Block RAM bits in Intel devices

estimateResources функция возвращает использование ресурса для исходного проекта и для настройки процессора глубокого обучения.

Вспомогательные файлы

Регистрационный файл устройства

Используйте dlhdl_device_registration.m файл, чтобы указать семейство отдельных устройств. Оцените использование ресурса отдельного устройства при помощи estimateResources функция.

type dlhdl_device_registration.m
function hFPGADeviceFamily = dlhdl_device_registration
% Register a new device family by providing the following details:
% 1. Device Family Name 
% 2. Vendor(Intel/Xilinx) 
% 3. DSP Width 
% 4. RAM Width 
% 5. RAM Depth 
% 6. SplitDSP Width(Optional) - alternative DSP Width supported by the DSP macro
% 7. SplitRAM Width(Optional) - alternative RAM Width supported by the RAM macro 

hFPGADeviceFamily = { ...
    kintex_ultrascale();...
    };
end

function hFPGADeviceFamily = kintex_ultrascale()
    % Datasheets :
    % https://www.xilinx.com/support/documentation/user_guides/ug579-ultrascale-dsp.pdf
    % https://www.xilinx.com/support/documentation/user_guides/ug573-ultrascale-memory-resources.pdf
    hFPGADeviceFamily = hdlcoder.FPGADeviceInfo('Name', 'Kintex Ultrascale+');
    hFPGADeviceFamily.Vendor = 'Xilinx';
    hFPGADeviceFamily.DSPWidth = [27, 18];
    hFPGADeviceFamily.RAMWidth = 36;
    hFPGADeviceFamily.SplitRAMWidth = 18;
    hFPGADeviceFamily.RAMDepth = 1024;
end