Vitis AI学习笔记(1): Vitis AI 开发工具包概述

** 声明:文章翻译自UG1414 (v1.0) Vitis AI User Guide的第一章, 仅供学习参考。 **

Vitis AI 开发工具包概述

Vitis AI开发环境由Vitis AI开发套件组成,用于在Xilinx硬件平台(包括边缘设备和Alveo加速卡)上进行AI推理。 它由优化的IP内核,工具,库,模型和示例设计组成。 设计时考虑到了高效率和易用性,充分发挥了Xilinx FPGA和ACAP上AI加速的全部潜力。 通过抽象出底层FPGA和ACAP器件的复杂性,它使不具备FPGA知识的用户可以轻松地开发深度学习推理应用程序。

Vitis 层次结构

特点

Vitis AI 包含如下特点:

  • 支持主流框架和能够执行各种深度学习任务的最新模型。
  • 提供一组全面的预优化模型,这些模型可随时部署在Xilinx设备上。
  • 提供功能强大的量化器,支持模型量化,校准和微调。对于高级用户,我们还提供了可选的AI优化器,该优化器可以将模型修剪多达90%。
  • AI Profiler提供了逐层分析以帮助解决瓶颈。
  • AI库提供统一的高级C ++和Python API,以实现从边缘到云的最大可移植性。
  • 定制高效且可扩展的IP核,从吞吐量,延迟和功耗的角度满足您对许多不同应用程序的需求。

组件

深度学习处理单元(DPU)

DPU是为深度神经网络优化的可编程引擎。 它是一组可预先设置在硬件上的可参数化IP内核,不需要放置和布线。 DPU随Vitis AI专用指令集一起发布,从而可以有效实现许多深度学习网络。

Vitis AI为嵌入式设备(如Xilinx Zynq-7000,Zynq UltraScale+ MPSoC)和Alveo 卡(如U50,U200,U250和U280)提供了一系列不同的DPU配置选项,从而在吞吐量, 延迟,可扩展性和功耗上实现独特的差异性和灵活性。

DPU选项配置选项

AI Model Zoo

AI Model Zoo包含优化的深度学习模型,以加快Xilinx平台上深度学习推理的部署。 这些模型涵盖了不同的应用程序,包括ADAS / AD,视频监控,机器人技术,数据中心等。您可以开始使用这些经过预训练的模型来体验深度学习加速。

更多信息参见:https://github.com/Xilinx/Vitis-AI/tree/master/AI-Model-Zoo

AI Model Zoo

AI 优化器

借助世界领先的模型压缩技术,我们可以将模型复杂度降低5倍至50倍,而对精度的影响最小。 深度压缩将AI推理的性能提升到一个新的水平。

AI 优化器需要商业许可才能运行。 请联系您的Xilinx销售代表以获取更多信息。

AI 优化器

AI 量化器

通过将32位浮点权重和激活函数转换为INT8之类的定点数,AI 量化器可以降低计算复杂度,而不会损失预测精度。 定点数网络模型需要较少的内存带宽,因此比浮点模型提供更快的速度和更高的电源效率。

AI 量化器

AI 编译器

AI编译器将AI模型映射到高效的指令集和数据流。 它还执行复杂的优化,例如层融合,指令调度以及尽可能多地重用片上存储器。

AI 编译器

AI 分析器

AI 分析器可以帮助分析和可视化AI应用程序,查找瓶颈,并帮助在不同设备之间分配计算资源:

  • 易用。 不必修改代码,也不需要重新编译程序。 可以跟踪函数调用和时间消耗。
  • 收集硬件信息,包括CPU / DPU /内存。

AI 分析器

AI 库

Vitis AI库是一组与DPU进行高效的AI推理的高级库和API。Vitis AI库通过封装许多高效和高质量的神经网络,提供了易于使用的统一界面。 即使对于不了解深度学习或FPGA的用户,这也简化了深度学习神经网络的使用。 Vitis AI库使您可以将更多精力放在其应用程序的开发上,而不是基础硬件上。

AI 库

AI Runtime

Vitis AI运行时使应用程序可以针对云计算和边缘计算使用统一的高级运行时API。 因此,使云到边缘的部署无缝且高效。

Vitis AI运行时API功能包括:

  • 将作业异步提交给加速器
  • 从加速器异步收集作业
  • C ++和Python实现
  • 支持多线程和多进程执行
For 云计算

云加速器具有多个独立的计算单元(CU),可以将其编程为在不同的AI模型上工作,或者在相同的AI模型上工作以实现最大吞吐量。

云运行时引入了新的AI资源管理器,以简化跨多个FPGA资源的应用扩展。 该应用程序不再需要指定要使用的特定FPGA卡。 应用程序可以请求单个计算单元或单个FPGA,并且AI资源管理器返回与用户请求兼容的空闲资源。 AI资源管理器可与Docker容器以及同一主机上的多个用户一起使用。

For 边缘计算

下图显示了运行时框架(称为N2 Cube)。 N2 Cube基于Xilinx运行时(XRT)。 对于基于DPU的旧式Vivado,它与底层Linux DPU驱动程序(而不是XRT)进行交互,以进行DPU调度和资源管理。(这里不是很好理解!)
MPSoc Runtime 层次结构
N2 Cube运行时提供了一套全面的高级C ++ / Python编程接口,可以灵活地满足边缘方案的各种要求。 有关边缘DPU高级编程的更多详细信息,请参见第9章。 N2Cube的特点如下:

  • 支持多线程和多进程DPU应用程序部署。
  • 支持并行运行的多个模型以及运行时零开销的动态切换。
  • 自动DPU多核调度,以实现更好的工作负载平衡。
  • 可选的灵活性,可在运行时动态指定DPU内核对DPU任务的亲和力。
  • 基于优先级的DPU任务调度,同时遵守DPU核心亲和力。
  • 通过DPU代码和多线程DPU应用程序中的参数共享来优化内存使用。
  • 轻松适应任何POSIX兼容的OS或RTOS(实时操作系统)环境,例如QNX,VxWorks,Integrity。
  • 易于DPU调试和性能分析。

深度学习处理单元(DPU)

DPU旨在加速在各种计算机视觉应用中广泛采用的深度学习推理算法,例如图像/视频分类,语义分段和对象检测/跟踪。

一个有效的张量级指令集旨在支持和加速各种流行的卷积神经网络,例如VGG,ResNet,GoogLeNet,YOLO,SSD和MobileNet等。 DPU可扩展以适应各种Xilinx Zynq-7000和Zynq UltraScale + MPSoC从边缘到云的情况,从而满足许多不同应用程序的需求。

DPU-V1 for Cloud

DPU-V1(以前称为xDNN)IP核是高性能的通用CNN处理引擎(PE)。
DPU-v1 结构
关键特点如下:

  • 工作在700 MHz的96x16 DSP脉动阵列(Systolic Array)
  • 基于指令的编程模型,具有简单性和灵活性,可以表示各种自定义神经网络图。
  • 由UltraRAM组成的9 MB片上张量存储器
  • 分布式片上滤波器缓存
  • 利用外部DDR存储器存储过滤器和张量数据
  • 流水线Scale,ReLU和合并块,可实现最大效率
  • 独立的Pooling / Eltwise执行块,用于与卷积层并行处理
  • 硬件辅助切片引擎可细分张量以适合片上张量存储器和流水线指令调度
  • 标准的AXI-MM和AXI4-Lite顶层接口可简化系统级集成
  • 可选的流水线RGB张量卷积引擎可提高效率

DPU-v2 for Edge

DPU-v2 IP已针对Xilinx MPSoC器件进行了优化。 该IP可以作为模块集成在所选Zynq-7000 SoC和Zynq UltraScale + MPSoC的可编程逻辑(PL)中,并直接连接到处理系统(PS)。 可配置版本DPU IP与Vitis AI一起发布。 DPU是用户可配置的,并提供了几个参数,可以指定这些参数来优化PL资源或自定义启用的功能。 有关更多信息,请参见:Zynq DPU v3.1 IP Product Guide(PG338)

DPU-V2 Architecture

Vitis AI 组件

Vitis AI 1.0版本使用容器技术来发布AI软件。 该版本包含以下组件:

直接从github上下载或克隆速度慢, 建议从gitee.com上下载

  • Vitis AI Model Zoo (https://github.com/Xilinx/Vitis-AI/tree/master/AI-Model-Zoo)

工具容器

组成:

  • 通过dockerhub发布的容器: https://hub.docker.com/r/xilinx/vitis-ai/tags
  • 统一编译器流程
    • DPUV2的编译器流程(嵌入式)
    • DPUV1的编译器流程(云)
  • 预先构建的conda环境以运行框架:
    • conda activate vitis-ai-caffe
    • conda activate vitis-ai-tensorflow
  • Alveo 运行时工具

运行时容器(For MPSoc)

  • 8
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

falwat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值