作者:falwat
原文链接:https://blog.csdn.net/falwat/article/details/104951145
** 声明:文章翻译自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 AI 包含如下特点:
组件
深度学习处理单元(DPU)
DPU是为深度神经网络优化的可编程引擎。 它是一组可预先设置在硬件上的可参数化IP内核,不需要放置和布线。 DPU随Vitis AI专用指令集一起发布,从而可以有效实现许多深度学习网络。
Vitis AI为嵌入式设备(如Xilinx Zynq-7000,Zynq UltraScale+ MPSoC)和Alveo 卡(如U50,U200,U250和U280)提供了一系列不同的DPU配置选项,从而在吞吐量, 延迟,可扩展性和功耗上实现独特的差异性和灵活性。
AI Model Zoo
AI Model Zoo包含优化的深度学习模型,以加快Xilinx平台上深度学习推理的部署。 这些模型涵盖了不同的应用程序,包括ADAS / AD,视频监控,机器人技术,数据中心等。您可以开始使用这些经过预训练的模型来体验深度学习加速。
更多信息参见:https://github.com/Xilinx/Vitis-AI/tree/master/AI-Model-Zoo
AI 优化器
借助世界领先的模型压缩技术,我们可以将模型复杂度降低5倍至50倍,而对精度的影响最小。 深度压缩将AI推理的性能提升到一个新的水平。
AI 优化器需要商业许可才能运行。 请联系您的Xilinx销售代表以获取更多信息。
AI 量化器
通过将32位浮点权重和激活函数转换为INT8之类的定点数,AI 量化器可以降低计算复杂度,而不会损失预测精度。 定点数网络模型需要较少的内存带宽,因此比浮点模型提供更快的速度和更高的电源效率。
AI 编译器
AI编译器将AI模型映射到高效的指令集和数据流。 它还执行复杂的优化,例如层融合,指令调度以及尽可能多地重用片上存储器。
AI 分析器
AI 分析器可以帮助分析和可视化AI应用程序,查找瓶颈,并帮助在不同设备之间分配计算资源:
AI 库
Vitis AI库是一组与DPU进行高效的AI推理的高级库和API。Vitis AI库通过封装许多高效和高质量的神经网络,提供了易于使用的统一界面。 即使对于不了解深度学习或FPGA的用户,这也简化了深度学习神经网络的使用。 Vitis AI库使您可以将更多精力放在其应用程序的开发上,而不是基础硬件上。
AI Runtime
Vitis AI运行时使应用程序可以针对云计算和边缘计算使用统一的高级运行时API。 因此,使云到边缘的部署无缝且高效。
Vitis AI运行时API功能包括:
For 云计算
云加速器具有多个独立的计算单元(CU),可以将其编程为在不同的AI模型上工作,或者在相同的AI模型上工作以实现最大吞吐量。
云运行时引入了新的AI资源管理器,以简化跨多个FPGA资源的应用扩展。 该应用程序不再需要指定要使用的特定FPGA卡。 应用程序可以请求单个计算单元或单个FPGA,并且AI资源管理器返回与用户请求兼容的空闲资源。 AI资源管理器可与Docker容器以及同一主机上的多个用户一起使用。
For 边缘计算
下图显示了运行时框架(称为N2 Cube)。 N2 Cube基于Xilinx运行时(XRT)。 对于基于DPU的旧式Vivado,它与底层Linux DPU驱动程序(而不是XRT)进行交互,以进行DPU调度和资源管理。(这里不是很好理解!)
N2 Cube运行时提供了一套全面的高级C ++ / Python编程接口,可以灵活地满足边缘方案的各种要求。 有关边缘DPU高级编程的更多详细信息,请参见第9章。 N2Cube的特点如下:
深度学习处理单元(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-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)。
Vitis AI 组件
Vitis AI 1.0版本使用容器技术来发布AI软件。 该版本包含以下组件:
直接从github上下载或克隆速度慢, 建议从gitee.com上下载
工具容器
组成:
DPUV2的编译器流程(嵌入式)
DPUV1的编译器流程(云)
conda activate vitis-ai-caffe
conda activate vitis-ai-tensorflow
运行时容器(For MPSoc)
- 容器URL路径: vitis-ai-runtime-1.0.1.tar.gz
PetaLinux SDK和交叉编译工具链
VAI board packages based on 2019.2 release
运行不同网络的例程
模型和overlaybins https://www.xilinx.com/cn/vitis-ai