主要内容

在Intel Arria 10 SoC上开始深入学习FPGA部署

此示例显示如何创建,编译和部署adlhdl.workflow.具有手写的字符检测系列网络对象的对象通过使用深度学习HDL Toolbox™支持包,用于英特尔FPGA和SoC。金宝app使用MATLAB®从目标设备检索预测结果。

先决条件

  • Intel Arria™10 SoC开发套件

  • 用于Intel FPGA和SoC的深度学习HDL工具箱金宝app™支持包

  • 深度学习HDL Toolbox™

  • 深度学习工具箱™

加载预制级系列网络

要加载预用的系列网络,已在修改的国家工业技术标准(MNIST)数据库上培训,输入:

snet = getdigitsnetwork();

要查看预磨料系列网络的图层,请输入:

分析(SNET)

创建目标对象

创建一个目标对象,该对象具有目标设备的自定义名称和连接目标设备到主机的接口。接口选项有JTAG和Ethernet。要使用JTAG,请安装Intel™Quartus™Prime Standard Edition 18.1。如果尚未设置已安装的Intel Quartus Prime可执行文件,则设置其路径。例如,设置工具路径,输入:

%hdl setuptoolpath('toolname','Altera Quartus II','ToolPath','C:\ Altera \ 18.1 \ Quartus \ Bin64');
htarget = dlhdl.target('英特尔'
htarget =具有属性的目标:供应商:'英特尔'界面:JTAG

创建工作流对象

创建一个对象dlhdl.workflow.班级。创建对象时,请指定网络和比特流名称。指定已保存的佩带Mnist神经网络,SNET作为网络。确保比特流名称与您所定位的数据类型和FPGA板匹配。在此示例中,目标FPGA板是英特尔Arria 10 SoC板,比特流使用单个数据类型。

hW = dlhdl。工作流('网络',斯内特,'比特流'“arria10soc_single”'目标',htarget)
HW =具有属性的工作流程:网络:[1×1系列网络]比特流:'ARRIA10SOC_SINGLE'ProcessOrconfig:[]目标:[1×1 dlhdl.target]

编译Mnist系列网络

要编译Mnist系列网络,请运行编译功能dlhdl.workflow.目的。

dn = hw.compile;
###优化系列网络:融合'nnet.cnn.layer.batchnormalizationlayer'进入'nnet.cnn.layer.convolut2dlayer'offset_name offset_address allocated_space ____________________________________________________________________________________________________________00000000“”0x00400000“”0x00400000“”0x00400000“”4.0 MB“SystemBufferOffset”“0x00800000”“28.0 MB”“NightsDataOffset”“0x02400000”“4.0 MB”“0x02800000”“4.0 MB”“FCWeightDataOffsoffs”“0x02C00000”“4.0 MB”“Endoffset”“0x03000000”“”0x03000000“”总计:48.0 MB“

将比特流程到FPGA和下载网络权重

要在Intel Arria 10 SoC硬件上部署网络,请运行Deploy功能dlhdl.workflow.目的。此功能使用编译功能的Compile函数的输出来使用编程文件编程FPGA板。它还下载网络权重和偏见。Deploy函数开始编程FPGA设备,显示进度消息,以及部署网络所需的时间。

hW.deploy
### FPGA位流编程已经被跳过,因为相同的位流已经加载到目标FPGA上。###加载权重到FC处理器。### FC权重已加载。当前时间为2020年6月28日13:45:47

运行预测映像

要加载示例图像,请执行dlhdl.workflow.对象,然后显示FPGA结果,输入:

Inputimg = imread('five_28x28.pgm');imshow (inputImg);

使用“on”的配置文件运行预测以查看延迟和吞吐量结果。

[预测,速度] = HW.PREDICT(单(Inputimg),'轮廓''在');
###完成写入输入激活。###运行单输入激活。深度学习处理器分析器性能结果LastLayerLatency(cycles) LastLayerLatency(seconds) FramesNum总时延Frames/s ------------- ------------- --------- --------- --------- Network 49243 0.00033 1 49807 3011.6 conv_module 25983 0.00017 conv_1 6813 0.00005 maxpool_1 4705 0.00003 conv_2 5205 0.00003 maxpool_2 3839 0.00003 conv_3 .日志含义5481 0.00004 fc_module 23260 0.00016 fc 23260 0.00016 * The clock frequency of the DL processor is: 150MHz
[val,Idx] = max(预测);fprintf('预测结果是%d \ n', idx-1);
预测结果是5

              

相关的话题