0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VCK5000运行Vitis-AI 3.0 WeGO实时量化演示

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-07 14:14 次阅读

测试环境

100569455-295990-01.png

简介

VCK5000在vitis ai 3.0对应的shell版本为xilinx-vck5000-gen4x8-qdma-base_2,对应的XRT和XRM版本为xrt_202220.2.14.354和xrm_202220.1.5.212。旧版本的VCK5000需要首先升级到新的shell上,才能保证vitsi ai的demo正常运行。在平台更新中存在一些需要遵守的规则,例如xilinx_vck5000_gen3x16_xdma_base_1不能直接升级到最新版本,需要首先升级到vck5000_gen4x8_xdma_base_2。On the fly quantization是Vitis AI 3.0新添加的特性,可以执行训练后量化 (PTQ) 以从浮点模型获取量化模型。

Part1 VCK5000升级

Step 1 使用以下命令检查当前板卡的状态
xbmgmt examine --report platform --device

输出示例:

100569455-295991-02.png

如果Flash properties: Type is ospi_versal一定需要更新到ospi_xgq。

只要板卡能被Vivado识别,可以通过下载比特流恢复到这个状态,恢复的方法为:

100569455-295992-03.png
100569455-295993-04.jpg

确认勾选了Erase, Program, and Verify。点击Apply, 然后点击OK。等待烧录完毕即可回到初始状态。

Step 2 卸载已安装的XRT

vck5000_gen4x8_xdma_base_2指定的XRT版本为xrt_202210.2.13.478_18.04-amd64-xrt.deb。如果和这个XRT版本不符,先卸载XRT。

Remove XRT : 'sudo apt remove xrt'
Remove XRT APU if present : 'sudo apt remove xrt-apu'

安装所需的XRT
Install XRT 2.13.478 : https://www.xilinx.com/bin/public/openDownload?filename=xrt_202210.2.13....
Install XRT-APU: https://www.xilinx.com/bin/public/openDownload?filename=xrt-apu_202210.2...

安装Gen3和Gen4XDMA平台
Install the gen3x16 platform : https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-p...
AND install the gen4x8_xdma platform: https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-g...

Step 3 更新到xilinx_vck5000_gen3x16_xdma_base_1

将Gen3的镜像烧录到板卡中
sudo xbmgmt program --base --device --image

完成后等待一分钟后冷启动电脑

Step 4 更新到vck5000_gen4x8_xdma_base_2

根据链接可以将VCK5000的platform从vck5000_gen3x16_base_1更新到vck5000_gen4x8_xdma_base_2。
https://xilinx.github.io/Alveo-Versal-Platforms/alveoversalplatforms/bui...
sudo /opt/xilinx/firmware/vck5000/gen4x8-xdma/base/migration/migrate.sh

完成后等待一分钟后冷启动电脑。

Step 5 更新到vck5000_gen4x8_qdma_base_2

下一步需要更新到vck5000_gen4x8_qdma_base_2,首先安装对应版本的XRT,XRM和XRT-APU,然后烧写platform,注意安装版本要和vitis-ai 3.0匹配。

安装XRT
https://www.xilinx.com/bin/public/openDownload?filename=xrt_202220.2.14....

安装XRM
https://www.xilinx.com/bin/public/openDownload?filename=xrm_202220.1.5.2...

安装vck5000_gen4X8_qdma平台

wget
https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-g...

tar xfz shell.tgz
sudo apt install ./xilinx-vck5000-gen4x8-qdma-base_2-20221205_all.deb -y

第一步,只能更新shell。
sudo /opt/xilinx/xrt/bin/xbmgmt program --device 01:00.0 --base shell --image xilinx_vck5000_gen4x8_qdma_base_2

升级完成后等待一分钟冷启动,由于没有更新SC会出现

100569455-295994-05.png

将SC版本从4.4.33更新到4.4.35 需要更新两次。第一次更新SC会以失败告终。

100569455-295995-06.png

等待一分钟后再次烧录SC

100569455-295996-07.png

再等待一分钟后冷启动电脑,然后检查板卡状态。

100569455-295997-08.png

到此更新完毕。

Part2 运行Vitis-AI 3.0 demo

获取Vitis-AI仓库。

git clone ;

以Pytorch为例子,获取docker容器。

docker pull xilinx/vitis-ai-pytorch-cpu:latest

查询系统中存在的容器

docker images

100569455-295998-09.png

启动容器。

100569455-295999-10.png

根据DPU型号设置vck5000脚本,脚本在setup_board/vck5000目录下
source ./setup.sh DPUCVDX8H_4pe_miscdwc
source ./setup.sh DPUCVDX8H_6pe_dwc
source ./setup.sh DPUCVDX8H_6PE_MISC
source ./setup.sh DPUCVDX8H_8pe_normal

该脚本会设置两个环境变量
XCLBIN_PATH = /opt/xilinx/overlaybins/DPUCVDX8H/4PE
XLNX_VART_FIRMWARE = /opt/xilinx/overlaybins/DPUCVDX8H/4PE/dpu_DPUCVDX8H_4PE_350M_xilinx_vck5000_ge

准备数据集

To use ImageNet, first download it from http://www.image-net.org/. For calibration purpose, only the validation set is needed.

数据集结构
# imagenet/train/
# ├── n01440764
# │ ├── n01440764_10026.JPEG
# │ ├── n01440764_10027.JPEG
# │ ├── ......
# imagenet/val/
# ├── n01440764
# │ ├── ILSVRC2012_val_00000293.JPEG
# │ ├── ILSVRC2012_val_00002138.JPEG
# │ ├── ......
# ├── ......

安装必要的包
pip install -r requirements.txt

准备浮点模型
wget ;

准备测试图像
wget -O wego_example_recipes.tar.gz

tar xf wego_example_recipes.tar.gz -C /tmp

运行脚本
bash quantize_compile_serialize_run.sh ./inception_v3_google-0cc3c7bd.pth ./val

可以得到最终的结果

100569455-296000-11.png

常见错误

1.运行
bash quantize_compile_serialize_run.sh ./inception_v3_google-0cc3c7bd.pth ./testval/

出现错误
Traceback (most recent call last):
File "run.py", line 181, in
main()
File "run.py", line 166, in main
wego_mod = get_wego_mod(img_transforms)
File "run.py", line 125, in get_wego_mod
quantized_model = wego_torch.quantize(float_model, [[target_batch] + input_shape], calib_dataloader, calibrator)
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/wego_torch/quantizer.py", line 130, in quantize
for b_idx, batch in tqdm(enumerate(dataloader), total=len(dataloader)):
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/tqdm/std.py", line 1195, in __iter__
for obj in iterable:
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 681, in __next__
data = self._next_data()
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 721, in _next_data
data = self._dataset_fetcher.fetch(index) # may raise StopIteration
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataset.py", line 290, in __getitem__
return self.dataset[self.indices[idx]]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torchvision/datasets/folder.py", line 229, in __getitem__
path, target = self.samples[index]
IndexError: list index out of range

请往数据集添加更多的测试数据。

2.更新VCK5000到xilinx_vck5000_gen4x8_xdma_base_2出错

EXE: /opt/xilinx/xrt/bin/unwrapped/xbmgmt2
[xbmgmt] ERROR: Failded to update base: Invalid argument

检查platform是否存已经安装且名字输入正确。

联系FAE回退到Gen3X16,重新升级。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264044
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    22902
  • Vitis
    +关注

    关注

    0

    文章

    144

    浏览量

    7155
收藏 人收藏

    评论

    相关推荐

    【KV260视觉入门套件试用体验】部署vitis-ai环境以及测试demo

    cmake 创建一个cmake项目 加入最简单的代码 执行cmake . make 然后运行kv260_test 首先下载vitis-ai的runtime组件 下载地址 https
    发表于 08-27 23:35

    【KV260视觉入门套件试用体验】部署DPU镜像并运行Vitis AI图像分类示例程序

    /root目录下已经有了两个目录。 使用tree命令,可以看到Vitis-AI目录结构: 接下来我们将会尝试运行vai_runtime下的resnet50示例程序,我们先看看这个目录下的文件结构
    发表于 09-10 23:01

    【KV260视觉入门套件试用体验】五、VITis AI (人脸检测和人体检测)

    Vitis-AI/board_setup/vek280 $ ./host_cross_compiler_setup.sh 直接运行权限不够,使用chmod 进行授权
    发表于 09-26 16:22

    【KV260视觉入门套件试用体验】六、VITis AI车牌检测&车牌识别

    , [model] { return vitis::ai::PlateNum::create(model); }, process_result, 2); } 四、实践效果 4.1、车牌检测 使用命令运行
    发表于 09-26 16:28

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    vitis::ai::MultiTask8UC3::create(model); }, process_result, 2); } 四、实践效果 使用命令运行代码程序。 cd /home/root
    发表于 09-26 16:43

    【KV260视觉入门套件试用体验】基于Vitis AI的ADAS目标识别

    Model Zoo下载个V3.0的xmodel就好了,说干就干! root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime
    发表于 09-27 23:21

    【KV260视觉入门套件试用体验】Vitis-AI加速的YOLOX视频目标检测示例体验和原理解析

    本文将介绍如何使用Vitis-AI加速YOLOX模型实现视频中的目标检测,并对相关源码进行解读。由于演示的示例程序源码是Vitis-AI开源项目提供的,本文演示之前会介绍所需要的准备工
    发表于 10-06 23:32

    【KV260视觉入门套件试用体验】Vitis AI 构建开发环境,并使用inspector检查模型

    一些挑战和困难,但也会带来很多乐趣和收获。 Xilixn官方对于构建Vitis AI环境有非常详细的说明,我主要参考这个链接: https://xilinx.github.io/Vitis-AI/
    发表于 10-14 15:34

    Vitis AI 1.4赋予 AI 产品化更多可能性

    高吞吐量 AI 推理和信号处理应用,可帮助设计者使用 AI 和 DSP 引擎开发解决方案。 VCK190 VCK5000 Versal 开发卡面向需要高吞吐量
    的头像 发表于 08-09 10:54 1470次阅读

    Xilinx KV260 Vitis-AI 1.4人脸检测

    电子发烧友网站提供《Xilinx KV260 Vitis-AI 1.4人脸检测.zip》资料免费下载
    发表于 06-14 10:34 0次下载
    Xilinx KV260 <b class='flag-5'>Vitis-AI</b> 1.4人脸检测

    使用Vitis-AI进行车牌识别

    电子发烧友网站提供《使用Vitis-AI进行车牌识别.zip》资料免费下载
    发表于 06-27 09:49 2次下载
    使用<b class='flag-5'>Vitis-AI</b>进行车牌识别

    VCK5000数据中心加速开发套件硬件安装指南

    电子发烧友网站提供《VCK5000数据中心加速开发套件硬件安装指南.pdf》资料免费下载
    发表于 09-14 14:33 4次下载
    <b class='flag-5'>VCK5000</b>数据中心加速开发套件硬件安装指南

    用于AI推理的VCK5000产品简介

    电子发烧友网站提供《用于AI推理的VCK5000产品简介.pdf》资料免费下载
    发表于 09-14 09:39 0次下载
    用于<b class='flag-5'>AI</b>推理的<b class='flag-5'>VCK5000</b>产品简介

    Vitis AI校准和量化代码

    Vitis AI 校准和量化代码导入必要的模块执行校准过程评估量化模型准确度导出量化模型 
    发表于 10-15 17:14 1次下载

    如何使用Vitis-AI加速YOLOX模型实现视频中的目标检测

    本文将介绍如何使用Vitis-AI加速YOLOX模型实现视频中的目标检测,并对相关源码进行解读。由于演示的示例程序源码是Vitis-AI开源项目提供的,本文演示之前会介绍所需要的准备工
    的头像 发表于 10-16 15:43 543次阅读
    如何使用<b class='flag-5'>Vitis-AI</b>加速YOLOX模型实现视频中的目标检测