多OpenCl内核

多OpenCl内核,opencl,Opencl,我只是想问一下,如果有人能告诉我,在使用几个简单的内核之后,应该注意什么 我可以使用相同的命令队列吗?我可以用另一个cl\u程序运行几次clCreateProgramWithSource+cl\u程序?我忘了什么 谢谢 您可以创建和编译多个程序(并从这些程序中创建内核对象),也可以将所有内核放在同一个程序中(clCreateProgramWithSource毕竟需要几个字符串),然后从该程序中创建所有内核。使用相同的CommandQueue,两者都可以正常工作。无论如何,使用多个CommandQ

我只是想问一下,如果有人能告诉我,在使用几个简单的内核之后,应该注意什么

我可以使用相同的
命令队列吗?我可以用另一个
cl\u程序运行几次
clCreateProgramWithSource
+
cl\u程序
?我忘了什么


谢谢

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

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