如何在程序内部在 OpenCL 中启动多个内核?

问题描述 投票:0回答:1

我正在尝试查看 Opencl 编程模型在 GPU 上的性能,现在在测试编程模型时,我必须使用

clEnqueueNDkernel()
启动内核,我尝试多次调用此函数,以便我可以看到启动两个或四个并发内核时它的执行情况。

我观察到该程序花费的时间与启动一个内核相同,现在我假设它只运行内核一次,因为不可能花费相同的时间来运行两个或四个并发内核。

现在我想知道如何在一个 GPU 上启动多个内核。

例如:我想推出类似的东西:

clEnqueueNDkernel()
clEnqueueNDkernel()

我该怎么做?

opencl gpu
1个回答
0
投票

首先,检查您的设备是否支持并发内核执行。最新的 AMD 和 Nvidia 卡可以。

然后,创建多个命令队列。如果将内核放入同一个队列中,它们将一个接一个地连续执行。

最后,检查内核是否确实是并行执行的。使用 SDK 或 OpenCL 事件中的分析器来收集分析信息。

© www.soinside.com 2019 - 2024. All rights reserved.