Vitis AI修炼秘籍(1)——Vitis统一软件平台简介

本文转载自:亦梦云烟的博客

Xilinx在2012年推出了针对其FPGA产品的开发套件Vivado,彻底的完善了FPGA硬件开发堆栈的基础,Vivado相关的参考资料可以查看笔者的ZYNQ学习之路系列笔记。随着Xilinx每一代芯片架构的发展,Vivado也在不断的增加新功能,比如针对嵌入式开发的SDSoC,为数据中心部署开发的SDAccel,随后,机器学习的爆发式发展,Xilinx又推出了AI推断的DPU(来自收购的深鉴)以及相关工具链DNNDK。虽然针对FPGA硬件的开发难度已经降低了不少,但使用这些工具链需要对硬件的设计具备比较强的知识背景。

2019年10月,Xilinx正式发布了统一开发软件平台Vitis。Vitis平台无需用户深入掌握硬件专业知识,即软件和算法自动适配到Xilinx的硬件架构。

直接使用现成的开发板,在Vitis上开发软件进行算法加速、部署到硬件平台变得相对很容易。但仅仅学习这些无异于一个纯软件开发的工程师,如此做对自身的知识体系并没有太多的提升。本系列笔记旨在更深入的探索Vitis以及Vitis内部所使用到的技术,本系列主要针对深度学习部署进行探索,比如自定义自己的深度学习硬件平台,深度学习模型量化、模型编译、TVM自动调优,多DPU核异构系统的调度计算等等。

那么,让我开始Vitis AI之旅吧~

Vitis统一软件平台简介

Vitis 统一软件平台包括:

  • 全面的内核开发套件,可无缝构建加速的应用
  • 完整的硬件加速开源库,针对 Xilinx FPGA 和 Versal ACAP 硬件平台进行了优化
  • 插入特定领域的开发环境,可直接在熟悉的更高层次框架中进行开发
  • 不断发展的硬件加速合作伙伴库和预建应用生态系统
  • Vitis重要组件

    Vitis AI 开发环境

    Vitis AI 开发环境是一个专门的开发环境,用于在 Xilinx 嵌入式平台、Alveo 加速卡或云端 FPGA 实例上加速 AI 推断。Vitis AI 开发环境不仅支持业界领先的深度学习框架,如 Tensorflow 和 Caffee ,而且还提供全面的 API 进行剪枝、量化、优化和编译训练过的网络,从而可为您部署的应用实现最高的 AI 推断性能。

  • 支持主流框架和最新的模型,能够执行不同的深度学习任务
  • 提供一系列全面的预先优化模型,这些模型现已就绪,可随时部署在 Xilinx 器件上。您可以找到最相似的模型,开始针对您的应用重新训练!
  • 提供功能强大的开源量化器,支持剪枝和未剪枝的模型量化、校准和微调。
  • AI 分析器提供逐层分析,有助于解决瓶颈问题
  • AI 库提供高层次 C++ 和 Python API,可实现从边缘到云端的最大可移植性。
  • 可以从吞吐量、时延和电源角度定制可扩展的高效 IP 内核,满足您对许多不同应用的需求。
  • 向所有用户开放一系列来自最流行框架 Pytorch、Tensorflow、Tensorflow 2 和 Caffe 的现成深度学习模型。AI Model Zoo 提供了优化且可重训练的 AI 模型,借助它们,您可在所有 Xilinx 平台上实现更快的部署、性能加速和产品化。

    AI优化

    在对精度影响极小的情况下,将模型的复杂性降低 5 至 50 倍。深度压缩可将您的 AI 推断性能提升到一个新的层次。

    AI 量化器

    通过将 32 位浮点权值和激活量转换为 INT8 这样的定点,AI 量化器可在不影响预测精度的情况下,降低计算复杂度。定点网络模型需要的内存带宽更少,因此比浮点网络模型速度更快,电源效率更高。

    AI 编译器

    将 AI 模型映射至高效指令集及数据流。还可执行高级优化任务,如层融合和指令排程等,并可尽量重复使用片上内存。

    AI 配置器

    性能分析器有助于程序员深入分析 AI 推断实现方案的效率和利用率。

    Vitis 加速库

    性能优化的开源库,提供开箱即用的加速,对于采用 C、C++ 或 Python 编写的现有应用而言,代码修改极少,甚至不需要修改代码。按原样利用特定领域的加速库,通过修改适应您的需求,或者在您的自定义加速器中用作算法构建块。


    Vitis™ 统一软件平台包括一组广泛的、性能优化的开源库,这些库提供了即开即用的加速功能,并且对现有应用实现最小化代码更改或零更改。
  • 常见的 Vitis 加速库(用于数学、统计、线性代数和 DSP)为各种应用提供了一系列核心功能。
  • 特定领域 Vitis 加速库为视觉及图像处理、定量金融、数据库及数据分析以及数据压缩等工作负载提供了开箱即用的加速功能。
  • 利用合作伙伴加速库、框架插件以及加速应用这一不断发展的生态系统,迅速启动设计,加速您的量产进程。
  • 可扩展、灵活度高
    所有开发人员都可通过 GitHub 访问 Vitis 加速器库,而且这些库可在所有 Xilinx 平台间扩展。使用这些优化的库开发应用并在边缘、本地或云的 Xilinx 平台间进行无缝部署,无需重新实现加速应用

    为了针对 Xilinx 可为应用带来的优势快速进行原型设计和评估,您可将其用作即插即用加速器,在用户应用中作为 API 直接调用,满足计算机视觉及图像处理、定量金融、数据库和数据分析等多个工作负载需求。

    要为您的应用设计自定义加速器,可将 Vitis 库函数用作优化的算法构建块,对其进行修改,以满足您的特定需求,也可将其用作参考来完全设计您自己的加速器。选择您需要的灵活性!

    将特定域 Vitis 库与 Vitis AI 库或 Vitis AI 开发套件预先优化的深度学习模型相结合,不仅可加速整个应用,而且还可达到整个系统级的功能及性能目标。

    Vitis Core开发套件

    完整的图形开发工具和命令行开发工具,其中包括 Vitis 编译器、分析器和调试器,用于构建、分析性能瓶颈问题,调试加速算法,使用 C、C++ 或 OpenCL 进行开发。在您自己的 IDE 中使用这些特性,或者使用独立的 Vitis IDE。

    Xilinx RunTime 库

    Xilinx 运行时 (XRT) 可促进应用代码(运行在嵌入式 ARM 或 x86 主机上)与加速器(部署在基于 PCIe 的 Xilinx 加速卡、基于 MPSoC 的嵌入式平台或 ACAP 的可重构部分上)之间的通信。它包括用户空间库和 API、内核驱动、电路板实用程序和固件。

    Vitis 目标平台
    Vitis 目标平台为 Xilinx 平台定义了基本软硬件架构及应用环境,包括外部存储接口、自定义输入输出接口和软件运行时。

  • 对于本地或云的 Xilinx 加速卡,Vitis 目标平台可自动配置 PCIe 接口,这些接口可连接和管理 FPGA 加速器和 x86 应用代码之间的通信 — 无需实现任何连接细节!
  • 对于 Xilinx 嵌入式器件,Vitis 目标平台还包括用于平台上处理器的操作系统、平台外设的引导加载程序和驱动程序,以及根文件系统。您可以为 Xilinx 评估板使用预定义 Vitis 目标平台,也可在 Vivado® Design Suite 中定义自己的 Vitis 目标平台。
  • 参考资料
    [1] Vitis 官方文档:Vitis平台

    最新文章

    最新文章