乱序命令队列对 AMD GPU 有用吗?

Is out of order command queue useful on AMD GPU?

在我看来,一个 opencl 命令队列不会将命令分派给多个硬件队列。所以乱序命令队列中的命令仍然一个接一个地执行,只是不是按照它们入队的顺序?

所以如果我想使用多个硬件队列,我能做的就是创建多个 opencl 命令队列吗?

OOO(乱序)队列可以满足用户事件依赖的需要。在这种类型的应用程序中使用单个队列会导致阻塞队列等待永远不会发生的用户事件。并且为每个作业创建一个队列也不是最优的。

如果你想要并行执行,OOO 不是你所需要的。但是多个队列。

一种常见的方法是为 IO 使用队列,为 运行 内核使用队列。 但是您也可以在多线程处理方案中为每个线程使用一个队列。每个线程的IO都会重叠其他线程的执行。

注意:nVIDIA 确实支持在单个队列中并行执行作业,但这超出了标准。