Vitis AI 基本认知(入门资源汇总)
hi94 2024-09-11 09:31:02 阅读 85
目录
1. 介绍
2. 入门资源
2.1 环境搭建
2.2 使用 inspector
2.3 解释量化过程
2.4 Vitis AI 3.5 UG
2.5 Tutorials
2.6 FAQ
2.7 Articles
2.8 Vitis AI Forum
2.9 UG 资料
3. Vitis AI 目录中的示例
4. 总结
1. 介绍
Vitis AI 是 AND 为所有 Xilinx 平台(包括 Versal ACAPs)从边缘到云的统一 AI 推理解决方案。
它包括优化的 IP、工具、库、模型和示例设计。
Vitis AI 由以下关键组件组成:
AI Model Zoo - 预优化的模型,可直接部署在 Xilinx 设备上。
AI Optimizer - 模型优化器,能够将模型剪枝高达 90%。它可通过商业许可单独获得。
AI Quantizer - 量化器,支持模型量化、校准和微调。
AI Compiler - 将量化模型编译为高效的指令集和数据流。
AI Profiler - 对 AI 推理实现的效率和利用率进行深入分析。
AI Library - 为从边缘到云的 AI 应用提供高级但优化的 C++ API。
DPU - 高效且可扩展的 IP 核心,可以定制以满足许多不同应用的需求。
WeGO(暂不用到)
Whole Graph Optimizer,全计算图优化器,用于在 Versal 数据中心 DPU 上部署 TensorFlow 和 PyTorch 模型。DPU 不支持的计算图部分(称为 CPU 子计算图)会被分派到 TensorFlow 或 PyTorch 框架,由 CPU 本机执行。
(Vitis AI 2.5)当前,WeGO 仅支持 VCK5000 Prod 平台上的云端 DPU 目标 DPUCVDX8H。
(Vitis AI 3.5)当前,WeGO 仅支持 V70 平台上的数据中心 DPU 目标 DPUCV2DX8G。
2. 入门资源
2.1 环境搭建
Vitis AI 环境搭建 & KV260 PYNQ 安装 & 要点总结-CSDN博客文章浏览阅读1.3k次,点赞31次,收藏12次。Vitis AI 环境搭建 & KV260 PYNQ 安装 & 要点总结
https://blog.csdn.net/DongDong314/article/details/137990170
2.2 使用 inspector
Vitis AI 构建开发环境,使用inspector检查模型_vitis-ai 开发-CSDN博客文章浏览阅读1.3k次,点赞16次,收藏21次。Xilinx使用docker分发Vitis AI,这让开发者可以非常方便地构建Vitis AI开发环境,借助Jupyter Lab,可以很轻松运行Vitis AI各项指令,并在其中添加注释信息。Inspector可以以图形化的方式展示PyTorch或TensorFlow模型的网络结构,包括运算层、数据尺寸、数据流动等信息。这可以帮助开发者更直观地理解模型结构。_vitis-ai 开发
https://blog.csdn.net/DongDong314/article/details/137428845
2.3 解释量化过程
Vitis AI - 量化流程详解_vitis ai onnx-CSDN博客文章浏览阅读857次,点赞32次,收藏12次。在当今技术快速发展的时代,我们追求的不仅是智能设备的高性能,同时也强调其能效和便携性。Vitis AI量化器便是在这样的背景下应运而生的一个工具,它通过将神经网络模型的数据精度从32位浮点数降低到8位整数,极大地缩减了模型的体积和计算需求,而通过精心设计的校准和微调过程,又能确保模型的预测准确性基本不受影响。这一过程不仅包括了校准激活、量化感知训练等关键步骤,还提供了详细的量化校准配置和实用的量化函数,以适应不同的部署需求。_vitis ai onnx
https://blog.csdn.net/DongDong314/article/details/140138394
2.4 Vitis AI 3.5 UG
Vitis AI 3.5 有更加丰富的参考资料。
Vitis AI — Vitis™ AI 3.5 documentation
https://xilinx.github.io/Vitis-AI/3.5/html/index.html#
2.5 Tutorials
Vitis AI 2.5 Tutorials
https://github.com/Xilinx/Vitis-AI-Tutorials/tree/2.5
2.6 FAQ
Frequently Asked Questions V2.5Vitis AI is Xilinx’s development stack for AI inference on Xilinx hardware platforms, including both edge devices and Alveo cards. - Vitis-AI/docs/quick-start/faq.md at 2.5 · Xilinx/Vitis-AI
https://github.com/Xilinx/Vitis-AI/blob/2.5/docs/quick-start/faq.mdVitis AI 的所有组件都是免费的吗?
是的。从3.5版本开始,所有组件都是免费的!对于<3.5版本,Vitis AI Optimizer 需要一个单独的许可证,该许可证可以免费获得,只需提出请求即可。有关此许可证的更多详细信息可以在 Optimizer 介绍中找到。
FPGA 加速网络与 CPU 和 GPU 加速相较如何?
与 CPU 相比,FPGA 加速网络的运行速度可以快达90倍。在吞吐量至关重要的应用中,FPGA 加速网络与 GPU 加速网络的性能相当,但 FPGA 提供了对更多自定义应用的支持。对于延迟敏感的应用,如自动驾驶,FPGA 加速网络远优于 GPU 加速网络。参见《WP504》。
可以在只有 FPGA 的目标上使用 Vitis AI 吗?无论是否带有 Microblaze 处理器?
Vitis AI 集成开发环境(IDE)支持 SoC 目标(Zynq UltraScale+ MPSoC、Versal ACAP)和 Alveo 平台(AMD64 主机)。它不支持包括 Spartan、Artix、Kintex 或 Virtex FPGA 在内的 FPGA 级设备。虽然可以在 MicroBlaze 处理器上启用并运行 Vitis AI IDE 固件组件,但这不是一个有文档支持的主流开发流程。
是否可以在不使用 PetaLinux 的情况下使用 DPU?
对于使用 Yocto 或 Ubuntu 的 Linux 系统
可以,需要注意,不同版本的 Vitis AI 工具和 DPU IP 都提供了针对特定 Linux 内核版本的驱动程序和运行时。目标内核版本之间的不匹配可能会带来一些问题,并可能需要大量的代码更改。
对于非 Linux 系统
AMD 为 Green Hills Integrity 和 Blackberry QNX 提供了概念验证的测试版支持。对于 QNX 和 Integrity 的支持,用户应该联系当地的 FAE 或销售代表,以请求与工厂进行额外的讨论。截至本版本,尚无对裸机或 FreeRTOS 的支持;然而,Zynq UltraScale+ 系列成员确实支持非对称多处理,这意味着开发人员可以通过 Linux 集成 DPU,同时继续在他们选择的操作系统中开发应用程序的主体。请参阅 UG1137 了解关于 AMP 操作模式的更多信息。
2.7 Articles
Vitis 视频分析 SDK 迁移指南:适用于 DeepStream 用户
Vitis Video Analytics SDK Migration for DeepStream Users
https://www.xilinx.com/developer/articles/vvas-migration-for-deepstream-users.html
DeepStream 是 NVIDIA 提供的一个流分析工具包,用于构建 AI 驱动的应用程序。它可以处理来自 USB/CSI 摄像头、文件视频或 RTSP 流的数据,并使用 AI 和计算机视觉技术从像素中生成环境洞察。DeepStream 支持在 C/C++ 和 Python 中进行应用开发,并且包含多个硬件加速插件,以实现视频分析应用的最高性能。
Graph_runner 介绍
Introduction on Graph_runner with Vitis AI 1.4
https://www.xilinx.com/developer/articles/introduction-on-graphrunner-with-vitis-ai-1-4.html我们知道,从获得一个经过良好训练的模型到成功部署在 AI 推理硬件上通常需要时间。在使用 Vitis AI 部署到 FPGA 时也是如此。一个实际因素是,现实世界中的神经网络模型在结构或操作符的设计上差异很大。这导致同一网络模型的不同部分无法被加速引擎完全支持。通常,我们将模型拆分为多个子图以适应 DPU 和 CPU 处理器,但用户需要逐个部署这些子图。这种手动部署流程增加了在 FPGA 上开发的难度。
2.8 Vitis AI Forum
VITIS AI & AI Forum
https://support.xilinx.com/s/topic/0TO2E000000YKY9WAO/vitis-ai-ai?language=en_US
2.9 UG 资料
UG1431 - Vitis AI Documentation Landing Page (v3.5)
https://docs.xilinx.com/v/u/en-US/ug1431-vitis-ai-documentationUG1414 - Vitis AI User Guide (v3.5)
https://docs.xilinx.com/r/en-US/ug1414-vitis-aiUG1333 - Vitis AI Optimizer User Guide (v3.5)
https://docs.xilinx.com/v/u/en-US/ug1333-ai-optimizerUG1354 - Vitis AI Library User Guide (v3.5)
https://docs.xilinx.com/r/en-US/ug1354-xilinx-ai-sdk
3. Vitis AI 目录中的示例
这些示例可以通过 Jupyter 进行详细分析,是一个不错的开始。
<code>ubuntu:$ find . -name "*.ipynb"
---
./examples/DPUCZDX8G/ofa_resnet50/ofa_resnet50_search_byOps.ipynb
./src/Vitis-AI-Quantizer/vai_q_pytorch/example/.ipynb_checkpoints/inspector_tutorial-checkpoint.ipynb
./src/Vitis-AI-Quantizer/vai_q_pytorch/example/inspector_tutorial.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow2.x/tensorflow_model_optimization/g3doc/guide/pruning/pruning_with_keras.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow2.x/tensorflow_model_optimization/g3doc/guide/pruning/comprehensive_guide.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow2.x/tensorflow_model_optimization/g3doc/guide/quantization/training_comprehensive_guide.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow2.x/tensorflow_model_optimization/g3doc/guide/quantization/training_example.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/g3doc/performance/post_training_float16_quant.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/g3doc/performance/post_training_integer_quant.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/g3doc/performance/post_training_quant.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/experimental/examples/lstm/TensorFlowLite_LSTM_Keras_Tutorial.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/experimental/micro/examples/micro_speech/train_speech_model.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/lite/experimental/micro/examples/hello_world/create_sine_model.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/examples/tutorials/deepdream/deepdream.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/graph_vs_ag_vs_eager_sum_speed_test.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/ag_vs_eager_collatz_speed_test.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/algorithms.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/dev_summit_2018_demo.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/workshop.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/ag_vs_eager_mnist_speed_test.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/autograph/examples/notebooks/rnn_keras_estimator.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/workshop/2_models.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/workshop/3_inspecting.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/workshop/1_basic.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/notebooks/custom_training.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/notebooks/custom_layers.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/notebooks/automatic_differentiation.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/notebooks/eager_basics.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/generative_examples/image_captioning_with_attention.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/generative_examples/dcgan.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/generative_examples/cvae.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/generative_examples/text_generation.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/nmt_with_attention/nmt_with_attention.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/compiler/xla/g3doc/tutorials/xla_compile.ipynb
./src/Vitis-AI-Quantizer/vai_q_tensorflow1.x/tensorflow/compiler/xla/g3doc/tutorials/autoclustering_xla.ipynb
./third_party/tvm/examples/external_yolov3_tutorial.ipynb
仅列出 .ipynb 文件的名字:
ubuntu:$ find . -name "*.ipynb" -exec basename {} \;
---
ofa_resnet50_search_byOps.ipynb
inspector_tutorial-checkpoint.ipynb
inspector_tutorial.ipynb
pruning_with_keras.ipynb
comprehensive_guide.ipynb
training_comprehensive_guide.ipynb
training_example.ipynb
post_training_float16_quant.ipynb
post_training_integer_quant.ipynb
post_training_quant.ipynb
TensorFlowLite_LSTM_Keras_Tutorial.ipynb
train_speech_model.ipynb
create_sine_model.ipynb
deepdream.ipynb
graph_vs_ag_vs_eager_sum_speed_test.ipynb
ag_vs_eager_collatz_speed_test.ipynb
algorithms.ipynb
dev_summit_2018_demo.ipynb
workshop.ipynb
ag_vs_eager_mnist_speed_test.ipynb
rnn_keras_estimator.ipynb
2_models.ipynb
3_inspecting.ipynb
1_basic.ipynb
custom_training.ipynb
custom_layers.ipynb
automatic_differentiation.ipynb
eager_basics.ipynb
image_captioning_with_attention.ipynb
dcgan.ipynb
cvae.ipynb
text_generation.ipynb
nmt_with_attention.ipynb
pix2pix_eager.ipynb
xla_compile.ipynb
autoclustering_xla.ipynb
external_yolov3_tutorial.ipynb
4. 总结
本文介绍了 Vitis AI,这是 Xilinx 提供的面向其硬件平台的统一 AI 推理解决方案。Vitis AI 包括一系列优化的 IP、工具、库、模型和示例设计,旨在提升在边缘到云的各类应用中的 AI 推理性能。
本文提供了多个有用的资源链接,包括环境搭建、使用 inspector 检查模型、解释量化过程等,以及指向官方文档和教程的链接,帮助用户更深入地了解和使用 Vitis AI。通过这些资源,用户可以更容易地开始他们的 Vitis AI 项目,无论是在边缘设备还是云平台上。
通过这些详细的介绍和资源分享,文章旨在帮助读者全面了解 Vitis AI 平台的能力,以及如何利用这些工具和资源来开发和优化他们的 AI 应用。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。