开发者分享|Xdputil 工具的应用指南

科技   2024-09-26 19:00   中国香港  



本文作者:AMD 工程师 Grace Sun


AMD Vitis™ 统一软件平台 AI Library 包含了 Xdputil 工具,可作为板级开发的辅助调试手段,其源代码位于以下位置:

https://github.com/Xilinx/Vitis-AI/tree/master/src/vai_library/usefultools


在预编译的官方 Board image 和 Vitis AI docker 中均已安装了 Xdputil。对于定制的 Target board,安装方式可参考对应版本的 Vitis AI Library 用户指南,例如:

https://docs.amd.com/r/en-US/ug1354-xilinx-ai-sdk/Step-3-Installing-the-AI-Library-Package


在 Docker 环境下跑 Xdputil,可运行 usr/bin/python3 -m xdputil。以下是运行 xdputil -h 以后的用法概览:


大部分的子命令需要关联 DPU 和 Device 信息,只能在目标板上运行。一般在 Docker 里面可对 Xmodel 文件做进一步解析和查看。


对于 xdputil xmodel 子命令,可以进一步用 -h 查看用法。


以下给出了一些具体示例及命令输出。


  • 显示 xmodel subgraph 信息,包括 input/output tensor,kernel

xdputil xmodel -l yolov6m_pt.xmodel


  • 把 xmodel 转成其他格式

xdputil xmodel<xmodel>-t<TXT>

xdputil xmodel<xmodel>-s<SVG>

xdputil xmodel<xmodel>-p<PNG>


以-t 为例,xdputil xmodel yolov6m_pt.xmodel -t yolov6_mt_xmodel.txt


从导出的 .txt 中可以获取 input/output tensor,op_node 等的详细属性。


  • 显示 Xmodel 中某一个 Operator 的信息,op_name 可从上述导出的.txt 中获取

xdputil xmodel yolov6m_pt.xmodel --op

ModelNNDct__ModelNNDct_CSPBepBackbone__module__CSPBepBackbone_backbone__RealVGGBlock_stem__Conv2d_conv__input_3


  • 显示 Device 信息,包括 DPU 配置,指纹信息,Runtime 版本等,这可以帮助用户快速了解当前 Board 的 DPU 重要信息,辅助调试运行中跟 DPU 兼容性相关的失败

xdputil query


  • 显示 DPU 寄存器状态

xdputil status


  • 做 Benchmark 测试

xdputil benchmark<xmodel>[-i subgraph_index]<num_of_threads>


subgraph_index 从0开始,-i 设成-1表示跑整个 Graph。Subgraph_index 可从 xdputil xmodel -l 的输出中获取。


如果第一级为 USER subgraph,那么 -i 0会报错。


改成-i 1后可以正常测试。


  • Xdputil run 可用于 DPU 运行结果不正确的调试,交叉检查参考值和 DPU 推理值。UG1414 中给出了具体步骤:

    https://docs.amd.com/r/en-US/ug1414-vitis-ai/DPU-Debug-with-VART


总之,Xdputil 的用法简单,可以辅助用户更直观深入地了解编译后的模型以及当前 DPU 的一些信息,在调试诸如 DPU 无法找到,指纹不匹配,以及和量化后准确率差异过大等问题的时候是一个有效的调试手段。



AMD 自适应 SOC 及 FPGA 中文技术支持社区

欢迎您访问本社区论坛:

[https://support.xilinx.com/s/?language=zh_CN]

我们希望能帮助您快速找到所需内容。本网站是AMD 自适应 SoC 及 FPGA 支持资源登录页面,其中包括我们的知识库、社区论坛以及指向更多内容的链接。搜索并探索您所选主题的内容,然后登录以查看更多支持选项。



XILINX开发者社区
Xilinx开发者社区源于社区,服务社区,是面向广大开发者与产学研合作的平台,以技术为驱动,创建共享知识社区。(注: Xilinx is now a part of AMD)
 最新文章