主要内容

深度学习网络性能评估

为了减少设计满足性能要求的自定义深度学习网络所需的时间,在部署网络之前,请分析层级延迟。将深度学习网络在自定义比特流处理器配置上的性能与参考(运输)比特流处理器配置上的性能进行比较。

要了解如何使用表中数据中的信息estimatePerformance函数计算网络性能,请参见轮廓推断运行

自定义处理器配置的自定义深度学习网络性能评估

这个例子展示了如何为自定义处理器配置计算深度学习网络的性能。

  1. 在当前工作文件夹中创建一个名为getLogoNetwork.m.在文件中输入:

    函数net = getLogoNetwork()如果~ isfile (“LogoNet.mat”) url =“//www.tatmou.com/金宝appsupportfiles/gpucoder/cnn_models/logo_detection/LogoNet.mat”;websave (“LogoNet.mat”url);结束数据=负载(“LogoNet.mat”);Net = data.convnet;结束

    调用该函数并将结果保存在snet

    snet = getLogoNetwork;
  2. 创建一个dlhdl。ProcessorConfig对象。

    hPC = dlhdl.ProcessorConfig;
  3. 调用estimatePerformancesnet检索LogoNet网络的层级延迟和性能。

    hPC.estimatePerformance (snet)
    3已创建内存区域。深度学习处理器估计性能结果LastFrameLatency(cycles) LastFrameLatency(seconds) FramesNum总时延帧/秒------------- ------------- --------- --------- --------- Network 39853460 0.19927 1 39853460 5.0 conv_1 6825287 0.03413 maxpool_1 3755088 0.01878 conv_2 10440701 0.05220 maxpool_2 1447840 0.00724 conv_3 9393397 0.04697 maxpool_3 1765856 0.00883 conv_4 1770484 0.00885 maxpool_4 28098 0.00014 fc_1 2644884 0.01322 fc_2 1692532 0.00846 fc_3 89293 0.00045 *DL处理器的时钟频率为:200MHz

    方法返回的参数和值estimatePerformance看。

基于自定义处理器配置的深度学习网络性能评估

通过将自定义比特流配置的性能与参考(运输)比特流配置的性能进行比较,对深度学习网络在自定义比特流配置上的性能进行基准测试。使用比较结果调整自定义深度学习处理器参数,以实现最佳性能。

在本例中,比较ResNet-18网络的性能zcu102_single位流配置到默认自定义位流配置上的性能。

先决条件

  • 深度学习HDL工具箱™支持包Xilinx FPGA和S金宝appoC

  • 深度学习工具箱™

  • 深度学习HDL工具箱™

  • ResNet-18网络的深度学习工具箱模型

负荷预训练网络

加载预训练的网络。

Snet = resnet18;

检索zcu102_single比特流配置

检索zcu102_single位流配置,使用dlhdl。ProcessorConfig对象。有关更多信息,请参见dlhdl。ProcessorConfig.要了解处理器配置的可修改参数,请参见getModuleProperty而且setModuleProperty

hPC_shipping = dlhdl。ProcessorConfig (“比特流”“zcu102_single”
hPC_shipping =处理模块”conv“ModuleGeneration:‘“LRNBlockGeneration:”“ConvThreadNumber: 16 InputMemorySize: [227 227 3] OutputMemorySize: [227 227 3] FeatureSizeLimit: 2048处理模块“俱乐部”ModuleGeneration:”“SoftmaxBlockGeneration:‘off’FCThreadNumber: 4 InputMemorySize: 25088 OutputMemorySize: 4096处理模块”加法器“ModuleGeneration:”“InputMemorySize: 40 OutputMemorySize: 40处理器RunTimeControl顶级属性:“注册”InputDataInterface:“外部内存”outputdatinterface:“外部内存”ProcessorDataType:“单一”系统级属性TargetPlatform:“Xilinx Zynq UltraScale+ MPSoC ZCU102评估工具包”TargetFrequency: 220 SynthesisTool:“Xilinx Vivado”ReferenceDesign:“axis - stream DDR内存访问:3-AXIM”SynthesisToolChipFamily:“Zynq UltraScale+”SynthesisToolDeviceName:“xczu9egffvb1116 -2-e”SynthesisToolPackageName:“SynthesisToolSpeedValue:”

估计ResNet-18性能zcu102_single比特流的配置

估计性能的ResNet-18 DAG网络,使用estimatePerformance的功能dlhdl。ProcessorConfig对象。该函数返回估计的层延迟、网络延迟和网络性能,单位是帧/秒(frames /s)。

hPC_shipping.estimatePerformance (snet)
###系列网络优化:将“nnet.cnn.layer.BatchNormalizationLayer”融合为“nnet.cnn.layer.Convolution2DLayer”注意:“nnet.cnn.layer.ImageInputLayer”类型的层“data”是在软件中实现的。注意:层'ClassificationLayer_predictions'类型为'nnet.cnn.layer.ClassificationOutputLayer'是在软件中实现的。深度学习处理器估计性能结果LastFrameLatency(cycles) LastFrameLatency(seconds) FramesNum总时延帧/秒————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————网络23634966 0.10743 1 23634966 9.3 ____conv1 2165372 0.00984 ____pool1 646226 0.00294 ____res2a_branch2a 966221 0.00439 ____res2a_branch2b 966221 0.00439 ____res2b_branch2b 966221 0.00439 ____res2b_branch2b 966221 0.00439 ____res2b_branch2b 210750 0.000221 0.00439 ____ res2b_branch1 5407490.00246 _____ 3a_branch2a 763860 0.00347 _____ 3a_branch2b 919117 0.00418 _____ res3b_branch2b 919117 0.00418 _____ res3b_branch1 509261 0.00231 _____ res4a_branch2a 905421 0.00412 _____ res4b_branch2b 905421 0.00412 _____ res4b_branch2a 1046605 0.00476 _____ res5a_branch2a 1046605 0.00476 _____ res5a_branch2b2005197 0.00911 ____res5a 26368 0.00012 ____res5b_branch2a 2005197 0.00911 ____res5b_branch2b 2005197 0.00911 ____res5b 26368 0.00012 ____pool5 54594 0.00025 ____fc1000 207852 0.00094 * DL处理器的时钟频率为:220MHz

创建自定义处理器配置

属性可以创建自定义处理器配置dlhdl。ProcessorConfig对象。有关更多信息,请参见dlhdl。ProcessorConfig.要了解处理器配置的可修改参数,请参见getModuleProperty而且setModuleProperty

hPC_custom = dlhdl。ProcessorConfig
hPC_custom =处理模块”conv“ModuleGeneration:‘“LRNBlockGeneration:”“ConvThreadNumber: 16 InputMemorySize: [227 227 3] OutputMemorySize: [227 227 3] FeatureSizeLimit: 2048处理模块“俱乐部”ModuleGeneration:”“SoftmaxBlockGeneration:‘off’FCThreadNumber: 4 InputMemorySize: 25088 OutputMemorySize: 4096处理模块”加法器“ModuleGeneration:”“InputMemorySize: 40 OutputMemorySize: 40处理器RunTimeControl顶级属性:“注册”InputDataInterface:“外部内存”outputdatinterface:“外部内存”ProcessorDataType:“单一”系统级属性TargetPlatform:“Xilinx Zynq UltraScale+ MPSoC ZCU102评估工具包”TargetFrequency: 200 SynthesisTool:“Xilinx Vivado”ReferenceDesign:“axis - stream DDR内存访问:3-AXIM”SynthesisToolChipFamily:“Zynq UltraScale+”SynthesisToolDeviceName:“xczu9egffvb1116 -2-e”SynthesisToolPackageName:“SynthesisToolSpeedValue:”

估计ResNet-18性能自定义比特流配置

估计性能的ResNet-18 DAG网络,使用estimatePerformance的功能dlhdl。ProcessorConfig对象。该函数返回估计的层延迟、网络延迟和网络性能,单位是帧/秒(frames /s)。

hPC_custom.estimatePerformance (snet)
###系列网络优化:将“nnet.cnn.layer.BatchNormalizationLayer”融合为“nnet.cnn.layer.Convolution2DLayer”注意:“nnet.cnn.layer.ImageInputLayer”类型的层“data”是在软件中实现的。注意:层'ClassificationLayer_predictions'类型为'nnet.cnn.layer.ClassificationOutputLayer'是在软件中实现的。深度学习处理器估计性能结果LastFrameLatency(cycles) LastFrameLatency(seconds) FramesNum总时延帧/秒——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————网络21219873 0.10610 1 21219873 9.4 ____conv1 2165372 0.01083 ____pool1 646226 0.00323 ____res2a_branch2a 966221 0.00483 ____res2a_branch2b 966221 0.00483 ____res2b_branch2b 210750 0.00105 ____res2b_branch2a 966221 0.00483 ____res2b_branch2b 966221 0.00483 ____res2b_branch2b 210750 0.00105 ____res3a_branch1 5407490.00270 _____ 3a_branch2a 708564 0.00354 _____ 3a_branch2b 919117 0.00460 _____ 3_branch2a 919117 0.00460 _____ 3_branch2b 105404 _____ 3_branch2b 919117 0.00460 _____ 4a_branch1 509261 0.00255 _____ 4a_branch2a 509261 0.00255 _____ 4a_branch2b 905421 0.00453 _____ 4_branch2b 905421 0.00453 _____ 4_branch2b 905421 0.00453 _____ 4_branch2a 751693 0.00376 _____ res5a_branch2a 751693 0.00376 _____ res5a_branch2a1415373 0.00708 ____res5a 26368 0.00013 ____res5b_branch2a 1415373 0.00708 ____res5b_branch2b 1415373 0.00708 ____res5b 26368 0.00013 ____pool5 54594 0.00027 ____fc1000 207351 0.00104 * DL处理器的时钟频率为:200MHz

ResNet-18网络自定义比特流配置的性能低于zcu102_single比特流配置。自定义位流配置与zcu102_single比特流配置是目标频率。

修改自定义处理器配置

修改自定义处理器配置以增加目标频率。要了解处理器配置的可修改参数,请参见dlhdl。ProcessorConfig

hPC_custom。TargetFrequency = 220;hPC_custom
hPC_custom =处理模块”conv“ModuleGeneration:‘“LRNBlockGeneration:”“ConvThreadNumber: 16 InputMemorySize: [227 227 3] OutputMemorySize: [227 227 3] FeatureSizeLimit: 2048处理模块“俱乐部”ModuleGeneration:”“SoftmaxBlockGeneration:‘off’FCThreadNumber: 4 InputMemorySize: 25088 OutputMemorySize: 4096处理模块”加法器“ModuleGeneration:”“InputMemorySize: 40 OutputMemorySize: 40处理器RunTimeControl顶级属性:“注册”InputDataInterface:“外部内存”outputdatinterface:“外部内存”ProcessorDataType:“单一”系统级属性TargetPlatform:“Xilinx Zynq UltraScale+ MPSoC ZCU102评估工具包”TargetFrequency: 220 SynthesisTool:“Xilinx Vivado”ReferenceDesign:“axis - stream DDR内存访问:3-AXIM”SynthesisToolChipFamily:“Zynq UltraScale+”SynthesisToolDeviceName:“xczu9egffvb1116 -2-e”SynthesisToolPackageName:“SynthesisToolSpeedValue:”

重新评估ResNet-18性能修改自定义比特流配置

在修改后的自定义比特流配置上评估ResNet-18 DAG网络的性能。

hPC_custom.estimatePerformance (snet)
###系列网络优化:将“nnet.cnn.layer.BatchNormalizationLayer”融合为“nnet.cnn.layer.Convolution2DLayer”注意:“nnet.cnn.layer.ImageInputLayer”类型的层“data”是在软件中实现的。注意:层'ClassificationLayer_predictions'类型为'nnet.cnn.layer.ClassificationOutputLayer'是在软件中实现的。深度学习处理器估计性能结果LastFrameLatency(cycles) LastFrameLatency(seconds) FramesNum总时延帧/秒————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————网络23634966 0.10743 1 23634966 9.3 ____conv1 2165372 0.00984 ____pool1 646226 0.00294 ____res2a_branch2a 966221 0.00439 ____res2a_branch2b 966221 0.00439 ____res2b_branch2b 966221 0.00439 ____res2b_branch2b 966221 0.00439 ____res2b_branch2b 210750 0.000221 0.00439 ____ res2b_branch1 5407490.00246 _____ 3a_branch2a 763860 0.00347 _____ 3a_branch2b 919117 0.00418 _____ res3b_branch2b 919117 0.00418 _____ res3b_branch1 509261 0.00231 _____ res4a_branch2a 905421 0.00412 _____ res4b_branch2b 905421 0.00412 _____ res4b_branch2a 1046605 0.00476 _____ res5a_branch2a 1046605 0.00476 _____ res5a_branch2b2005197 0.00911 ____res5a 26368 0.00012 ____res5b_branch2a 2005197 0.00911 ____res5b_branch2b 2005197 0.00911 ____res5b 26368 0.00012 ____pool5 54594 0.00025 ____fc1000 207852 0.00094 * DL处理器的时钟频率为:220MHz

另请参阅

||||

相关的话题