主要内容

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

此示例演示如何创建、编译和部署工作流程使用深度学习HDL工具箱,具有手写字符检测系列网络对象的对象™ 英特尔FPGA和SoC支持包。使用MATLAB®从目标设备检索预测结果。万博1manbetx

先决条件

  • 英特尔阿里亚酒店™ 10 SoC开发工具包

  • 深度学习HDL工具箱™ 英特尔FPGA和SoC支持包万博1manbetx

  • 深度学习HDL工具箱™

  • 深度学习工具箱™

加载预训练序列网络

要加载经过修改后的国家理工学院标准(MNIST)数据库培训的预培训系列网络,请输入:

snet=getDigitNetwork();

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

分析网络(snet)

创建目标对象

创建一个目标对象,该对象具有目标设备的自定义名称和将目标设备连接到主机的接口。接口选项为JTAG和以太网。若要使用JTAG,请安装Intel™ 夸脱™ Prime Standard Edition 18.1。设置已安装的“英特尔Quartus Prime”可执行文件的路径(如果尚未设置)。例如,要设置工具路径,请输入:

%hdlsetuptoolpath('ToolName','alteraquartus II','ToolPath','C:\Altera\18.1\Quartus\bin64');
hTarget=dlhdl.Target(“英特尔”)
hTarget=具有以下属性的目标:供应商:“英特尔”接口:JTAG

创建工作流对象

创建的对象工作流程类。创建对象时,指定网络和位流名称。指定保存的预训练MNIST神经网络snet作为网络。确保位流名称与数据类型和目标FPGA板匹配。在本例中,目标FPGA板是Intel Arria 10 SOC板,位流使用single数据类型。

hW=dlhdl.Workflow(“网络”,snet,“比特流”,“arria10soc_单人”,“目标”,hTarget)
hW=具有以下属性的工作流:网络:[1×1系列网络]位流:“arria10soc_single”处理器配置:[]目标:[1×1 dlhdl.Target]

编制MNIST系列网络

要编译MNIST系列网络,请运行工作流程对象

dn=hW.compile;
###优化系列网络:优化系列网络:优化系列网络:WeWeWeWeWeWenet.cnn.cnn.层。层。层。BaBaBaBa主要层。卷卷2层,层,卷积2层,层,层,层,层,卷积2层,层,层,层,层,卷积2层,层,层,层,层,层,层,层,层,层,层,卷积2层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,卷卷,层,层,层,层,层,卷,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,层,00000“28.0 MB”“指令数据偏移量”“0x02400000”“4.0 MB”“ConvWeightDataOffset”“0x02800000”“4.0 MB”“FCWeightDataOffset”“0x02c00000”“4.0 MB”“内偏移量”“0x03000000”“总计:48.0 MB”

将比特流编程到FPGA上并下载网络权重

要在Intel Arria 10 SoC硬件上部署网络,请运行工作流程对象此函数使用编译函数的输出,使用编程文件对FPGA板进行编程。它还下载网络权重和偏差。deploy函数开始对FPGA设备进行编程,显示进度消息以及部署网络所需的时间。

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

运行预测,例如图像

要加载示例图像,请执行工作流程对象,然后显示FPGA结果,输入:

inputImg=imread(‘五个28x28.pgm’); imshow(inputImg);

在配置文件“打开”的情况下运行预测,以查看延迟和吞吐量结果。

[预测,速度]=硬件预测(单个(输入),“个人资料”,“开”);
###已完成输入激活的编写运行单输入激活。深度学习处理器探查器性能结果LastLayerLatency(周期)LastLayerLatency(秒)FRAMESUM总延迟帧数/秒-------------------------网络49243 0.00033 1 49807 3011.6转换模块25983 0.00017转换模块16813 0.00005最大池容量14705 0.00003转换模块25205 0.00003最大池容量3839 0.00003转换模块35481 0.00004 fc转换模块23260 0.00016*DL处理器的时钟频率为:150MHz
[val,idx]=max(预测);fprintf('预测结果为%d\n',idx-1);
预测结果为5

              

相关话题