Vitis 系统编译模式简介 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

典型硬件加速流程由识别应用或算法的计算密集部分和将其作为定制设计的硬件来实现这两部分组成。这些定制设计的硬件元件通常在各领域(如异构计算)内被称为加速器;在 AMD Vitis™ 命名法中,也将其称为内核。通常,这些函数或内核在 x86 或基于 Arm® 的主机上的纯软件中运行时,需耗费大量执行时间。凭借 Vitis 加速流程,一旦选定某个函数或一组函数进行加速,即可使用基于 AMD Vivado™ Design SuiteVitis HLS 或 RTL 流程来设计或生成定制硬件。主机应用可使用 XRT 本机 API 或者链接到 Xilinx Runtime (XRT) 的 OpenCL™ C 或 C++ 语言来编写。

设计加速应用的进程由选择需加速的计算密集型函数和设计定制硬件以加速这些函数两部分组成。此外,您必须编写在主机上运行的软件以统筹往来加速器的数据移动。总体应用设计中有一个重要且繁琐的步骤是对数据移动(尤其是通过 PCIe® 或网络接口进行的数据移动)进行最优化。这些数据移动包含主机与内核之间通过全局存储器或网络端口进行的传输,并且可基于传输性质来对此类数据移动加以最优化。加速硬件也可由多个函数组成,既可作为用于并行处理数据的重复性功能,也可作为已连接的流水线。此类组合可包含多个相同或不同的加速函数实例,或者也可由软件函数和硬件函数混合而成。

因此,完美的系统架构是基于迭代设计进程来开发的。本质上有三方面设计进行协同开发:内核代码、支持性应用或主机代码以及软硬件系统接口与组合。在改善整体设计性能的同时,更改其中某一方面的设计必然需要更改另一方面的设计。Vitis System Compilation(Vitis 系统编译)模式简称 VSC,可以提供单一源码的统一 C++ 模型,能够快捷完成设计探索过程。VSC 框架旨在:

  • 通过简化用于控制加速硬件的主机代码来简化主机侧开发
  • 通过复制计算单元来充分利用应用中的数据并行性,从而简化实验
  • 在软件和硬件侧通过多个加速函数和软件函数来实现任务链式组合
  • 用于抽取低层次硬件 API,使其与软件编程相类似
  • 轻松完成并发或多线程软件代码建模,使其能够与最终用户应用代码无缝集成