设计捕获与建模 - 2022.1 简体中文

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

上一节描述了通过统一的 C++ 模型完成的设计组织、软件接口和 VSC 编译的硬件。以下简要描述源码 C++ 模型的关键功能特性,这些功能特性可供您用于轻松捕获特定设计的用途:

  1. 使用两个 C 语言线程对往返主机与器件之间的数据传输进行显式建模,在每个加速器及其 CU 组上发送/接收数据
  2. 支持通过如下方式进行性能探索:使用指南参数、执行各类更改,如使用多个存储体、更改 CU 数量,以及在主机与器件之间进行乒乓式并发数据传输(前提是保证最低限度的主机或内核代码更改或者无更改)
  3. 复制要并行运行的 CU 以利用粗粒度并行性(仅使用单个数字指南参数)
  4. 在计算集群(多个 CU)上使用循环或自由轮询进行自动作业调度
  5. 在任一加速器内复制的 CU 上自动执行数据传输和加速器作业
  6. 通过 PCIe® 对每个加速器作业和其它最优化进行自动流水打拍:
    1. 在主机侧使用多个缓冲器对象来发送/接收数据
    2. 基于数据移动模式指南,提供适用于每个 CU 的数据移动器
      1. 在全局存储器 (DDR/HBM) 与片上 (RAM) 存储器资源之间复制数据
      2. 在 CU 上的当前传输事务完成前,从全局存储器中预取下一项传输事务
    3. 对要一次性同时处理的传输事务(作为单一数据块传输的一连串 n 个数据集)进行分群,以便分摊 PCIe 时延
    4. 对每个 CU 使用多个主机和器件存储器缓冲器来自动执行并发(乒乓式)数据传输,改善吞吐量
    5. 使用峰值存储器分配(针对最大的数据大小进行分配)来允许可变有效载荷大小。
    6. 在以下情况下可支持动态输出缓冲器大小(在运行时分配):
      1. 在编译时,最大缓冲器大小已知,并且
      2. 动态大小由应用代码来确定
  7. 混合使用软件(主机侧)和硬件(计算单元)进行系统层次组合:
    1. 利用直接连接 (AXI4-Stream) 推断进行仅限硬件的组合。您可在每个 CU 内创建 PE 流水线或网络,并轻松复制此类单元。
    2. 允许在同步流水线(CU 中)内通过串流接口来实现自由运行的 PE
    3. 混合硬件与软件组合,用于创建数据处理流水线。在硬件任务间,软件任务可同时处理数据,并将不同加速器编译到同一个 xclbin 内
  8. 整个系统设计采用 C++ 来捕获,可藉由 C++ 源码的软件编译和执行来加以确认