提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
目录
(注意事项):1.如果在编译时出现以下错误,请添加fpga的license
(注意事项):1.在修改设备树配置文件时注意修改系统启动位置
(注意事项):2. 在添加和启用用户包的时候注意添加vitis ai库
一.准备工作
软件安装
前言:软件列表
1.使用虚拟机安装Ubuntu18.04并进行相关配置
本文参考b站大佬的教学视频:
自定义FPGA开发板运行Vitis-AI-2.0 VART demo —— 准备工作_哔哩哔哩_bilibili
一.虚拟机配置如图
二.配置中科大源
-
打开终端应用程序。
-
使用以下命令以 root 权限打开
/etc/apt/sources.list
文件:sudo nano /etc/apt/sources.list
-
在打开的文件中,注释掉原有的官方源(在每行前面添加
#
符号),然后在文件末尾添加中科大源的地址。对于 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
-
按下ctrl+0保存文件,按下ctrl+x关闭编辑器。
-
最后,运行以下命令更新软件包列表以使更改生效:
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
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
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.安装交叉编译链环境
- 安装交叉编译系统环境。
cd Vitis-AI/setup/mpsoc/VART ./host_cross_compiler_setup.sh
注释: ~/petalinux_sdk_2021.2 路径为建议的安装路径。无论选择何种安装路径,都请确保所选路径具有读写权限。在本节中,安装路径为 ~/petalinux_sdk_2021.2
- 安装完成后,请遵循提示,输入以下命令。
source ~/petalinux_sdk_2021.2/environment-setup-cortexa72-cortexa53-xilinx-linux
注释: 如果关闭当前终端,则需在新终端内重新执行以上指令以设置环境。
- 对样本进行交叉编译,以 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
(注意事项 ):出现如下报错的解决方法
这个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提供了大量能使我们快速便捷地处理数据的函数和方法。