Vitis AI 基本认知(入门 Vitis AI 开发环境+运行模型检查器)

目录

1. 介绍

1.1 Vitis AI 是什么?

1.2 Vitis AI 可以做什么?

1.3 Visits AI 怎么用?

2. 配置Vitis AI环境

3. 使用inspector检查模型

4. 查看模型的结构

5. 总结


1. 介绍

1.1 Vitis AI 是什么?

Vitis AI 是赛灵思公司推出的一款综合 AI 推断开发平台,它可以帮助开发者在赛灵思的 FPGA 和自适应 SoC 上实现高效的 AI 应用部署。它是一个强大而灵活的 AI 开发平台,它可以充分利用赛灵思硬件平台的优势。

  • Vitis AI 在 Linux 环境中运行,并使用命令行操作。

1.2 Vitis AI 可以做什么?

Vitis AI 可以做很多事情,例如:

  • 优化和编译深度学习模型,使其适应赛灵思硬件平台的架构和性能。
  • 提供丰富的 AI 库,包括常用的计算机视觉和自然语言处理模型,以及相应的推断接口。
  • 提供多种工具和框架,如 Vitis Model Composer, Vitis Video Analytics SDK, Vitis AI Optimizer 等,以支持不同层次的开发需求。
  • 提供多种示例设计和教程,展示如何在赛灵思硬件平台上实现各种 AI 应用场景。

1.3 Visits AI 怎么用?

第一步:在ubuntu环境下,执行如下命令:

git clone --recurse-submodules https://github.com/Xilinx/Vitis-AI
cd Vitis-AI
docker pull xilinx/vitis-ai-cpu:latest

第二步,可以使用了………完………


(^_^),当然不是这么简单,Vitis AI 不仅仅是一个工具,而是一个综合的 AI 推断开发平台,它包括了从模型优化到应用部署的全流程支持。需要做的不只是执行几条命令,还需要了解赛灵思硬件平台的特点,选择合适的模型和框架,使用 Vitis AI 提供的工具和库进行优化和编译,最后在目标设备上运行您的 AI 应用。这个过程可能会遇到一些挑战和困难,但也会带来很多乐趣和收获。

Xilixn官方对于构建Vitis AI环境有非常详细的说明,我主要参考这个链接:

https://xilinx.github.io/Vitis-AI/3.0/html/docs/install/install.html

这个链接介绍了如何在不同的操作系统和硬件平台上安装和配置 Vitis AI 的相关组件,包括 Vitis AI 优化器、Vitis AI 库、Vitis Model Composer 等。这些组件可以帮助我对深度学习模型进行优化和编译,以适应赛灵思硬件平台的架构和性能。

并且我并不打算使用GPU来优化模型(主要是我本地PC性能并不高),所以我直接使用CPU版本的Vitis AI docker来进行模型的量化、编译和部署。Vitis AI docker 是一个预先配置好的 Vitis AI 环境,它可以让我在一个容器中运行 Vitis AI 的所有工具和库,而不需要在本地安装任何依赖。CPU版本的Vitis AI docker 可以在没有 GPU 的机器上运行,但是模型优化的速度会比 GPU 版本慢一些。

实际上,我会选择通过云端的计算资源进行模型优化,这些云端资源都可以即用付费的,使用pytorch或者tensorflow原生的优化方法,最后使用Vitis AI来编译部署即可。这样我可以利用云端的强大的计算能力和灵活的扩展性,对模型进行更快速和更高效的优化。我可以使用 pytorch 或者 tensorflow 提供的一些优化技术,如剪枝、量化、蒸馏等,来减少模型的大小和复杂度。然后我可以使用 Vitis AI compiler来将优化后的模型转换为赛灵思硬件平台支持的格式,并生成相应的xmodel,来在目标设备上部署我的 AI 应用。

2. 配置Vitis AI环境

安装Vitis AI确实非常简单,只需一条命令:

docker pull xilinx/vitis-ai-cpu:latest

只需等待docker镜像下载完毕,运行docker images即可查看所有docker镜像。

>> docker images
---
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
hello-world           latest    9c7a54a9a43c   5 months ago    13.3kB
xilinx/vitis-ai-cpu   latest    41ed5c7e3331   16 months ago   19.5GB

然后切换到Vitis AI目录,启动docker。

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

看到如下画面,表示Vitis 安装完毕:

Setting up dong 's environment in the Docker container...
usermod: no changes
Running as vitis-ai-user with ID 0 and group 0 

==========================================
 
__      ___ _   _                   _____
\ \    / (_) | (_)            /\   |_   _|
 \ \  / / _| |_ _ ___ ______ /  \    | |
  \ \/ / | | __| / __|______/ /\ \   | |
   \  /  | | |_| \__ \     / ____ \ _| |_
    \/   |_|\__|_|___/    /_/    \_\_____|
 
==========================================

Docker Image Version: 2.5.0.1260   (CPU) 
Vitis AI Git Hash: 502703c 
Build Date: 2022-06-12

接下来根据所使用的深度学习框架激活对应的环境,比如:

conda activate vitis-ai-pytorch
conda activate vitis-ai-tensorflow2

本文选择pytorch:

(vitis-ai-pytorch) Vitis-AI /workspace >

其实到这步,Vitis AI的环境就算配置完毕了,但为了更方便使用Vitis AI,本文再安装一个Jupyter Lab的server,这样我们后续使用Vitis AI会非常方便。

(vitis-ai-pytorch) Vitis-AI /workspace > jupyter --version
---
Selected Jupyter core packages...
IPython          : 7.33.0
ipykernel        : 6.13.1
ipywidgets       : 7.7.0
jupyter_client   : 7.3.4
jupyter_core     : 4.10.0
jupyter_server   : not installed
jupyterlab       : not installed
nbclient         : 0.6.4
nbconvert        : 6.5.0
nbformat         : 5.4.0
notebook         : 6.4.12
qtconsole        : 5.3.1
traitlets        : 5.2.2

可以看到,原生Vitis AI环境并不包含jupyter_server和jupyterlab,需要手动安装:

(vitis-ai-pytorch) Vitis-AI /workspace > pip install jupyterlab

安装完毕,我们再次查看jupyter版本:

(vitis-ai-pytorch) Vitis-AI /workspace > jupyter --version
---
Selected Jupyter core packages...
IPython          : 7.33.0
ipykernel        : 6.13.1
ipywidgets       : 7.7.0
jupyter_client   : 7.3.4
jupyter_core     : 4.12.0
jupyter_server   : 1.24.0
jupyterlab       : 3.6.6
nbclient         : 0.6.4
nbconvert        : 6.5.0
nbformat         : 5.4.0
notebook         : 6.4.12
qtconsole        : 5.3.1
traitlets        : 5.9.0

至此,Vitis AI环境配置完毕。

3. 使用inspector检查模型

运行jupyterlab,新建Notebook:

image.png

导入相关python包和要分析的深度学习模型,本文以resnet18为例:

import torch
from torchvision.models import resnet18
from pytorch_nndct.apis import Inspector
from IPython.display import Image

进行必要的配置,本文KV260中的DPU为例,Target为DPUCZDX8G_ISA1_B4096,resnet18的输入shape为[batchsize, 3, 224, 224]:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

target = "DPUCZDX8G_ISA1_B4096"
inspector = Inspector(target)

model = resnet18(pretrained=True)
model.eval()
dummy_input = torch.randn(1, 3, 224, 224)

inspector.inspect(model, (dummy_input,), device=device, output_dir="inspect", image_format="png")

执行上述单元格,得到如下结果:

[VAIQ_NOTE]: =>Inspector is initialized successfully with target:
name: DPUCZDX8G_ISA1_B4096
type: DPUCZDX8G
isa_version: 1

[VAIQ_NOTE]: =>Start to inspect model...
[VAIQ_NOTE]: =>Quant Module is in 'cpu'.
[VAIQ_NOTE]: =>Parsing ResNet...
[VAIQ_NOTE]: Start to trace model...
[VAIQ_NOTE]: Finish tracing.
[VAIQ_NOTE]: Processing ops...
██████████████████████████████████████████████████| 71/71 [00:00<00:00, 596.12it/s, OpInfo: name = return_0, type = Return]                                                                                
[VAIQ_NOTE]: =>Doing weights equalization...
[VAIQ_NOTE]: =>Quantizable module is generated.(inspect/ResNet.py)
[VAIQ_NOTE]: All the operators are assigned to the DPU(see more details in 'inspect/inspect_DPUCZDX8G_ISA1_B4096.txt')
[VAIQ_NOTE]: Dot image is generated.(inspect/inspect_DPUCZDX8G_ISA1_B4096.png)
[VAIQ_NOTE]: =>Finish inspecting.

模型检查完毕,将在工作目录下新建inspect文件夹,并且包含四个文件:

image.png

它们的作用如下:

  • inspect_DPUCZDX8G_ISA1_B4096.gv:这是一个 Graphviz 格式的文件,它描述了模型在 DPU 上的计算图,包括各个节点的名称、类型、输入输出、参数等信息。
  • inspect_DPUCZDX8G_ISA1_B4096.png:这是一个 PNG 格式的图片,它展示了模型在 DPU 上的计算图的可视化效果,可以直观地看到模型的结构和流程。
  • inspect_DPUCZDX8G_ISA1_B4096.txt:这是一个文本格式的文件,它记录了模型在 DPU 上的执行情况,包括各个节点的执行时间、占用资源、性能指标等信息。
  • ResNet.py:这是一个 Python 格式的文件,它是模型在 DPU 上执行时使用的代码,包括模型定义、数据加载、推理过程等内容。

4. 查看模型的结构

新建单元格,通过Image命令可以查看模型的结构和流程图:

Image('inspect/inspect_DPUCZDX8G_ISA1_B4096.png')

image.png

5. 总结

Xilinx使用docker分发Vitis AI,这让开发者可以非常方便地构建Vitis AI开发环境,借助Jupyter Lab,可以很轻松运行Vitis AI各项指令,并在其中添加注释信息。

Inspector可以以图形化的方式展示PyTorch或TensorFlow模型的网络结构,包括运算层、数据尺寸、数据流动等信息。这可以帮助开发者更直观地理解模型结构。

Vitis AI 3.0是Xilinx推出的一款人工智能开发平台。根据引用\[1\]和引用\[2\]的内容,你可以按照以下步骤来使用Vitis AI 3.0: 1. 首先,你需要克隆Vitis AI存储库并获取示例、参考代码和脚本。使用以下命令克隆存储库: ``` git clone https://github.com/Xilinx/Vitis-AI cd Vitis-AI ``` 2. 接下来,你需要启动Vitis AI的Docker容。根据你之前安装的框架选择相应的命令。例如,如果你安装了pytorch-gpu版本,可以使用以下命令: ``` cd <Vitis-AI install path>/Vitis-AI ./docker_run.sh xilinx/vitis-ai-opt-pytorch-gpu:latest ``` 3. 在启动Docker容后,你将看到类似于引用\[3\]中的输出。这表示你已经成功设置了Vitis AI的环境。你可以使用以下命令激活Vitis AI的pytorch环境: ``` conda activate vitis-ai-pytorch ``` 通过按照以上步骤,你可以开始使用Vitis AI 3.0进行人工智能开发。请注意,这只是一个简要的概述,具体的操作步骤可能会因为你的环境和需求而有所不同。建议你参考Xilinx官方文档和资料以获取更详细的指导和信息。 #### 引用[.reference_title] - *1* *2* [Xilinx Ubuntu环境下docker&Vitis AI 3.0基于GPU的环境安装](https://blog.csdn.net/lzq6261/article/details/129909204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vitis-AI 3.0 GPU Docker 安装踩坑及修改](https://blog.csdn.net/QHY0227/article/details/130750089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值