命令队列 - 2022.1 简体中文

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

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

clCreateCommandQueue API 会为每个器件创建一个或多个命令队列。FPGA 可包含多个内核,这些内核可能相同,也可能不同。开发主机应用时,有 2 种主要的编程方法可用于在器件上执行内核:

  1. 单个无序命令队列:可通过同一命令队列请求多次内核执行。XRT 会尽快以任意顺序分派内核,以允许在 FPGA 上并发执行内核。
  2. 多个有序命令队列:从不同的有序命令队列请求每次内核执行。在此类情况下,XRT 会分派来自不同命令队列的内核,通过在器件上并发运行这些内核来提升性能。

以下是创建有序和无序命令队列的标准 API 调用示例。

// Out-of-order Command queue
commands = clCreateCommandQueue(context, device_id, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, &err);

// In-order Command Queue
commands = clCreateCommandQueue(context, device_id, 0, &err);