使用黑金AXU9EG进行深度学习模型部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

目录

一.准备工作 

软件安装 

  前言:软件列表 

1.使用虚拟机安装Ubuntu18.04并进行相关配置 

2.安装vitis 

3.安装petalinux 

4.安装vitis ai2.0

一.安装docker

 二.在docker中添加vitis ai2.0的镜像

5.安装交叉编译链环境

6.环境配置

二.配置加速平台

1.vivado 

(注意事项):1.如果在编译时出现以下错误,请添加fpga的license

2.petalinux

(注意事项):1.在修改设备树配置文件时注意修改系统启动位置

(注意事项):2. 在添加和启用用户包的时候注意添加vitis ai库       

3.vivado

(注意事项 ):出现如下报错的解决方法

 三.上板验证

1.准备上板文件  

1.resnet50.xmodel

2.resnet50可执行程序 

3.包含类别的word.txt 

4.找张图片

二 .启动系统

总结rt

总结




一.准备工作 

软件安装 

  前言:软件列表 

1.使用虚拟机安装Ubuntu18.04并进行相关配置 

本文参考b站大佬的教学视频: 

自定义FPGA开发板运行Vitis-AI-2.0 VART demo —— 准备工作_哔哩哔哩_bilibili

安装Ubuntu_哔哩哔哩_bilibili

一.虚拟机配置如图

二.配置中科大源

  1. 打开终端应用程序。

  2. 使用以下命令以 root 权限打开 /etc/apt/sources.list 文件:

    sudo nano /etc/apt/sources.list
  3. 在打开的文件中,注释掉原有的官方源(在每行前面添加 # 符号),然后在文件末尾添加中科大源的地址。

    对于 Ubuntu 18.04,您可以添加如下内容:

    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
  4. 按下ctrl+0保存文件,按下ctrl+x关闭编辑器。

  5. 最后,运行以下命令更新软件包列表以使更改生效:

    sudo apt update

三.安装工具

sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential zlib1g:i386 screen pax gzip
sudo apt-get install libtinfo5

2.安装vitis 

1.在amd官网下载 (xilinx.com)中下载 vivado2021.2的安装包(有两种安装方式,我选择的是先下载Xilinx Unified Installer 2021.2:Linux 自解压 Web 安装程序,然后再放到linux中执行程序进行自动下载和安装)

2.在虚拟机中开启共享文件夹,添加自己下载了vivado安装包的路径,即可在ubuntu中得到主机中下载的vivado安装程序

3.在ubuntu的home中新建一个workspace文件夹 新建opt/vivado路径下放入vivado安装包

4.在放安装包的目录下打开terminal,运行以下代码,授予可执行权限

chmod +x <下载的文件名.bin>

5.运行 .bin 文件以启动安装程序 

./<下载的文件名.bin>

 6.安装程序中均点next即可,或者有不需要的硬件支持可以不安装

3.安装petalinux 

 1.在amd官网下载 (xilinx.com)下载petalinux2021.2复制到Ubuntu系统中,具体安装操作与上面vivado操作相同。

2.在amd官网安装对应版本的sstate-cache以及downloads,并放入虚拟机中

4.安装vitis ai2.0

在Xilinx的GitHub有完整教程

一.安装docker

 1.由于 apt 官方库里的 docker 版本可能比较旧,所以先卸载可能存在的旧版本:

sudo apt-get remove docker docker-engine docker-ce docker.io

 2. 安装 curl 包:

sudo apt-get install curl
3. 添加 Docker 官方的 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4. 安装最新版本的 Docker CE 以及相关工具
sudo apt-get update && sudo apt install docker-ce docker-ce-cli containerd.io

5.如果出现无法找到 docker-ce 安装包的问题,额外添加源即可。

运行以下命令添加源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

重新安装

sudo apt update
sudo apt-get update && sudo apt install docker-ce docker-ce-cli containerd.io

6.测试dockers

systemctl status docker

dockers正常则显示如下 :

 

7. Docker 需要用户具有 sudo 权限,为了避免每次都输入 sudo,需要用户加入 Docker 用户组

sudo usermod -aG docker $USER #将当前普通用户添加进用户组
newgrp docker #更新用户组

 配置完用户组后,重新开启新的 terminal 窗口,执行 docker run hello-world 验证。

docker run hello-world

 二.在docker中添加vitis ai2.0的镜像

 1.克隆 Vitis-AI 2.0存储库以获取示例、参考代码和脚本(使用命令行或者通过window中翻墙进github,选择2.0版本进行下载后复制粘贴到ubuntu中)

git clone --recurse-submodules https://github.com/Xilinx/Vitis-AI-2.0

2.打开vitis ai

cd Vitis-AI

3.选择所需版本vitis ai的安装脚本(vitis ai2.0)  

./docker_run.sh xilinx/vitis-ai-cpu:2.0.0.1103

如果安装失败可以多尝试几次,大概率是网络波动

如果无法通过以上方法安装,可以参考我的另一篇文章获取该镜像

5.安装交叉编译链环境

  1. 安装交叉编译系统环境。
    cd Vitis-AI/setup/mpsoc/VART
    ./host_cross_compiler_setup.sh

    注释: ~/petalinux_sdk_2021.2 路径为建议的安装路径。无论选择何种安装路径,都请确保所选路径具有读写权限。在本节中,安装路径为 ~/petalinux_sdk_2021.2

  2. 安装完成后,请遵循提示,输入以下命令。
    source ~/petalinux_sdk_2021.2/environment-setup-cortexa72-cortexa53-xilinx-linux

    注释: 如果关闭当前终端,则需在新终端内重新执行以上指令以设置环境。

  3. 对样本进行交叉编译,以 resnet50 为例。
    cd Vitis-AI/demo/VART/resnet50
    bash –x build.sh

    如果编译流程未报告任何错误,并生成可执行文件 resnet50,则表示主机环境安装正确。

6.环境配置

 在home目录下按ctrl+H打开隐藏文件夹

找到.bashrc文件

在末尾添加以下命令

source 安装路径+各自setting文件 

例如

source /home/vitisai2/workspace/opt/vitis/Vivado/2021.2/settings64.sh
source /home/vitisai2/workspace/opt/vitis/Vitis/2021.2/settings64.sh
source /home/vitisai2/workspace/opt/petalinux2021.2/settings.sh

二.配置加速平台

1.vivado 

1.根据黑金的官方教程的s2第一章设置好zynq ultra scale+ mpsoc的ip核(io,时钟等配置),按照Xilinx官方教程的step1:Vitis-Tutorials/Vitis_Platform_Creation/Introduction/02-Edge-AI-ZCU104/step1.md at 2021.2 · Xilinx/Vitis-Tutorials (github.com)搭建硬件加速平台 

(注意事项):1.如果在编译时出现以下错误,请添加fpga的license

 

2.petalinux

1.根据黑金官方petalinux教程s3第一章设置petalinux,再根据Vitis-Tutorials/Vitis_Platform_Creation/Introduction/02-Edge-AI-ZCU104/step2.md 于 2021.2 ·Xilinx/Vitis-教程 (github.com)

配置petalinux

(注意事项):1.在修改设备树配置文件时注意修改系统启动位置

 

官网中的位置是 mmcblk0p2 而我的黑金AXU9EG开发板启动位置在mmcblk1p2

(注意事项):2. 在添加和启用用户包的时候注意添加vitis ai库       

 

请仿照以上添加和选定用户包的方式在设置定制开发板 • Vitis AI 用户指南 (UG1414) • 阅读器 • AMD 技术信息门户 

的定制开发板第三小节(即下图所示)中安装vitis ai库

并且在usr-rootfsconfig中添加CONFIG_glog

在 petalinux-config -c rootfs的usr package将glog也选上

(注意事项)3.需要添加gstreamer

在实例中有yolov3以及yolov4,如果想运行,则需要安装gstreamer的库,否则会报错

进入petalinux-config -c rootfs

进入system package

在misc中选择以下三个

在multimedia中选择以下两个

 

 

3.vitis

参照如下教程配置dpu 

Vitis-Tutorials/Vitis_Platform_Creation/Introduction/02-Edge-AI-ZCU104/step3.md 于 2021.2 ·Xilinx/Vitis-教程 (github.com)

(注意事项 ):出现如下报错的解决方法

 


这个2404072155是时间戳,这是系统bug ,官网有修复脚本,按如下链接中操作即可

Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) (xilinx.com)

 三.上板验证

1.准备上板文件  

1.resnet50.xmodel

使用vitis ai 按照

TensorFlow 工作流程 • Vitis AI 用户指南 (UG1414) • 阅读器 • AMD 技术信息门户

生成resnet50的.xmodel

2.resnet50可执行程序 

即准备工作中第五小节生成的可执行程序resnet50 

3.包含类别的word.txt 

准备工作的第五小节也会生成

4.找张图片

2. .启动系统

将vitis中的sd_card.image通过balenaEtcher烧写到sd卡中

配置网络 

 板子请参照在Petalinux编译的Linux系统中静态ip以及开机自启动设置 - Jiahang's Blog (jiahangok.github.io)

将vitis中的sd_card.image通过balenaEtcher烧写到sd卡中

插入fpga中,启动系统,通过

df .

查看存储空间占用大小

通过以下命令修改使用sd卡大小

resize-part /dev/mmcblk1p2

在github的vitis ai2.0仓库中找到 VART安装文件

Vitis-AI/setup/mpsoc/VART at 2.0 · Xilinx/Vitis-AI (github.com)

下载后传入板子中,进入VART,通过以下命令安装vart的依赖

sh ./target_vart_setup.sh

如果安装失败请如下修改这个.sh文件 

再安装

运行例程

使用mobaxterm的ssh,将准备的四个文件放入一个文件夹中复制到系统中,通过运行

./resnet50 resnet50.xmodel

如果出现无法打开dpuxcl.bin的报错

参照以下方法修改路径 即可

AI2.0 open(/media/sd-mmcblk0p1/dpu.xclbin) failed (xilinx.com)

rpm -ivh --force --nodeps libunilog-2.0.*-r*.aarch64.rpm
rpm -ivh --force --nodeps libxir-2.0.*-r*.aarch64.rpm
rpm -ivh --force --nodeps libtarget-factory-2.0.*-r*.aarch64.rpm
rpm -ivh --force --nodeps libvart-2.0.*-r*.aarch64.rpm
rpm -ivh --force --nodeps libvitis_ai_library-2.0.*-r*.aarch64.rpm

板子请参照在Petalinux编译的Linux系统中静态ip以及开机自启动设置 - Jiahang's Blog (jiahangok.github.io)


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: axu3eg原理图库是一种用于存储、管理和共享原理图的在线平台。它为工程师和设计师提供了一个便捷的方式来查找和使用原理图,节省了他们的时间和精力。 首先,axu3eg原理图库具有一个庞大的原理图数据库,里面包含了各种不同类型的原理图,涵盖了电子电路、通信电路、控制电路、射频电路等各个领域的设计。用户可以通过关键词、标签或分类来搜索并找到所需的原理图。 其次,axu3eg原理图库还提供了一个用户上传和共享原理图的平台。这意味着用户可以将自己设计的原理图上传到库中,与其他用户共享和交流。这样,用户不仅可以从原理图库中获取灵感和参考,还可以分享自己的设计成果,与其他设计师进行互动和合作。 此外,axu3eg原理图库还具有便捷的浏览和预览功能。用户可以通过在线预览功能快速查看原理图的内容和结构,以便确定是否是他们需要的设计。同时,用户还可以对原理图进行标注、批注和评论,为其他用户提供更多参考和建议。 最后,axu3eg原理图库还提供了一些附加功能,例如支持下载原理图、导出为其他格式、生成BOM表等。这些功能为用户提供了更多的灵活性和方便性,让他们在使用原理图库时更加高效和便捷。 总之,axu3eg原理图库是一个功能强大、资源丰富且易于使用的在线平台,为工程师和设计师提供了一个便捷的查找、使用和共享原理图的工具,促进了电子电路设计领域的发展和进步。 ### 回答2: axu3eg原理图库是一种电子设计工具,用于存储、管理和查找电子原理图。它是一种使用极其方便且功能强大的软件工具,可以帮助电子工程师快速创建和编辑原理图,并提供了丰富的图形符号库和电子元件模型,使他们能够快速构建电子线路图。 axu3eg原理图库具有以下特点和功能: 1. 图形符号库:axu3eg原理图库内置了大量的图形符号,包括各种传感器、集成电路、连接器、晶振器等,用户可以直接从库中选择符号,并将其拖放到原理图中,极大地提高了设计效率。 2. 电子元件模型:axu3eg原理图库提供了各种电子元件模型,包括电阻、电容、电感等,用户可以根据实际需要选择并添加到原理图中。这些模型具有准确的电气特性参数,可以帮助工程师进行电路分析和仿真。 3. 快速布线:axu3eg原理图库具有智能布线功能,可以根据用户定义的规则和约束自动进行布线,并自动优化布线路径,确保电路的性能和可靠性。 4. 工程管理:axu3eg原理图库提供了完善的工程管理功能,包括文件管理、版本控制、工程协作等。用户可以方便地管理和共享原理图文件,并进行团队协作。 总之,axu3eg原理图库是一款功能强大的电子设计工具,它可以帮助电子工程师快速创建、编辑和管理电子原理图。它的高效性和便捷性使得电子设计更加快捷高效,并且有助于提高电路性能和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值