使器件内核始终保持在使用中状态 - 2023.2 简体中文

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

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

内核可能存在于器件中,但仅在应用请求时,内核才会运行。为了尽可能提高性能,请将应用设计为使内核保持繁忙。

从概念上讲,这是通过在当前请求完成之前发出后续请求来实现的。这将导致流水打拍和重叠执行,从而以最优方式使用内核,如下图所示。

图 1. 加速器的流水打拍执行

在此示例中,原始应用重复调用 func1、func2 和 func3。对于这 3 个函数,创建了对应的内核(K1、K2 和 K3)。简单的实现会按顺序运行这 3 个内核,就像原始软件应用一样。但这意味着每个内核只有三分之一的时间处于活动状态。更好的方法是构建软件应用程序,使其能够向内核发出流水打拍请求。这样在 K1 开始处理新数据集的同时,K2 即可开始处理 K1 的第一项输出。通过这种方法,即可以最大使用率持续运行这 3 个内核。

如需了解有关软件流水打拍的更多信息,请参阅 Vitis 应用加速开发流程教程