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

时间:2014-09-30 05:42:28

标签: opencl gpu

我试图在GPU上看到Opencl编程模型的性能,现在在测试编程模型时,我必须使用clEnqueueNDkernel()启动内核,我试图调用这个函数多次,这样我就可以看到它在启动两个或四个并发内核时的表现。

我发现该程序花费了与启动一个内核相同的时间,现在我假设它只运行一次内核,因为没有必要花费相同的时间来运行两个或四个并发内核。

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

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

clEnqueueNDkernel()
clEnqueueNDkernel()

我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

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