多个OpenCl内核

Fra*_*ter 1 opencl

我只是想问一下,如果有人能够让我了解在使用几个简单的内核之后要注意什么.

我可以使用相同的CommandQueue吗?我可以用不同的方式运行几次clCreateProgramWithSource+ 吗?我忘记了什么?cl_programcl_program

谢谢!

Gri*_*zly 9

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