2010-10-20 163 views
1

我只是想问一下,如果有人能够给我一个关于在彼此之后使用几个简单内核时需要注意什么的问题。多个OpenCl内核

我可以使用相同的CommandQueue吗?我可以多次运行clCreateProgramWithSource + cl_program与不同的cl_program?我忘了什么?

谢谢!

回答

9

您可以创建和编译多个程序(并从中创建内核对象),也可以将所有内核放入同一个程序(毕竟clCreateProgramWithSource需要几个字符串)并从中创建所有内核。要么使用相同的CommandQueue工作正常。使用多于一个CommandQueue来执行在同一设备上应该串行执行的内核反正不是一个好主意,因为在这种情况下,您必须手动等待事件完成,而不是异步排队所有内核,然后等待结果(在至少一些操作应该在设备和主机上并行执行,因此在最后可能的时刻进行等待通常更快,更容易)。