查看: 1751|回复: 0

[原创] MYD-C7Z010/20测评(二)xilinx 深度学习资料研读和软件安装(...

[复制链接]

该用户从未签到

发表于 2019-11-23 14:46:40 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 lebment 于 2019-12-3 08:59 编辑

  本部分延续上的未完成部分,主要内容基本上是DPU IP资料学习、petalinux安装。边缘AI工具下载
   1.png 这个图,即是工作流程,需要DPU IP,vivado,DNNDK,上部分已经安装了Vivado vitis。DPU导入到vivado生成对应硬件平台比特流,这部分具体看看DPU是什么、怎么用,对应于深度学习模型的参数解释。
   2.png 这个框图展示了一个硬件平台的例子,我的计划与该框图不同的是不使用MIPI cam而是USB 接口的Webcam,暂时不知可行。CSI接口的摄像头也是备用方案。DPU需要用到AXI内接互联,很明显需要使用DDR内一部分空间。

   3.png 启动后,DPU从片外存储器中获取指令以控制计算引擎的操作。 指令由DNNC生成,其中已进行了实质性的优化。 片上存储器用于缓冲输入,中间和输出数据,以实现高吞吐量和效率。 尽可能重用数据以减少内存带宽。 深度流水线设计用于计算引擎。 处理元件(PE)充分利用了Xilinx器件中的细粒度构建块,例如乘法器,加法器和累加器。
  内部原理大概是以上官方叙述的那样,DPU还包括寄存器和中断,怎么用会比较啰嗦,参数过多,下面分解来看。
   4.png 这个图是支持的卷积层类型,其实已经覆盖了很多常见的网络,普通卷积即convolution,已经可以使用很多分类器深度学习模型,深度可分离卷积主要是mobileNet在使用,计划实现的功能中采用的即是Mobilenet SSD ,caffe 深度学习模型。其实DPU使用不需要考虑上表的数据。但是如果部分算子是自行开发的,部署到硬件平台上时需要仔细检查,不然DPU就要自行实现了。

   5.png 首先DPU的第一个参数栏------架构。
1.设置DPU核的个数,最多三个,越多性能越强,PL资源消耗越大。
2.设置DPU核架构,即卷积架构, 6.png ,表中列出选项的具体参数对应的并行性能,像素并行、输入通道并行、输出通道并行和单时钟操作峰值。同样值越大消耗PL资源更多。我选择了B1024.
3.RAM使用,选择High性能强消耗片上BRAM URAM也越多,ZYNQ资源不多80k,还是选low比较好。
4.通道增强,通道增强是一项可选功能,用于在处理输入通道远低于可用通道并行度时提高DPU的效率。 例如,在大多数CNN中,第一层的输入通道为3(也就是RGB,CNN大多应用在图像中),无法完全利用所有可用的硬件通道。 但是,当输入通道的数量大于通道并行度时,启用通道扩展将没有任何区别。 总之,信道扩展可以提高大多数CNN的总效率,但是会花费额外的逻辑资源。计划使用Mobilenet SSD 所以此选项有必要打开,通道并行效率高。
5.Depthwiseconv,Mobilenet,上述已经解释过,故必须打开。
6.AveragePool,不打开,池化层主要使用最大池化操作。
7.卷积,当然选择Relu 和 Relu6 SSD使用了这两个。
8.softmax层,不支持ZYNQ7020,所以强制关闭。

第二栏,高级。 7.png 主要是设置DPU的时钟和DSP等。
1.S-AXI 时钟模式,s_axi_aclk是S-AXI接口时钟。 选择“与M-AXI时钟共用”时,s_axi_aclk将与m_axi_aclk共享相同的时钟,并且s_axi_aclk端口将被隐藏。 选择“独立”时,可以提供不同于m_axi_aclk的时钟。我选的是独立。
2.dpu_2x Clock Gating,不支持ZYNQ7000系列。
3.DSP Cascade,不支持ZYNQ7000系列。
4.DSP Usage,不过多赘述。
5.UltraRAM,zynq7000没有。
6.Timestamp,时间戳。我选择关闭,没有不影响实现功能,简化我demo设计。


第三栏,前两栏设置好了,这里显示详细参数。 8.png
ZYNQ7020有些许不一样,暂时无法贴出我的图后续补上。
DPU性能对比。 9.png


petalinux安装,
ubuntu16.04,我安装在和上部分一样的路径即/xilinx/。 10.png ,PC配置要求,我的PC刚好达标。
Ubuntu需要运行以下程序进行环境设置。
sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupgwget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential -devzlib1g:i386 screen pax gzip   

下载好, ./petalinux-v2019.1-final-installer.run /xilinx/petalinux

source /settings.sh


然后echo $PETALINUX  检查是否配置好。


安装完成,后面开发还需要DNNDK等。


本部分简要的介绍了DPU,如需对应自己的应用,那么参考DPU手册修改即可。







回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

手机版|小黑屋|与非网

GMT+8, 2024-11-26 07:39 , Processed in 0.127351 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.