我只是想问一下,如果有人能够让我了解在使用几个简单的内核之后要注意什么。
我可以使用相同的CommandQueue
吗?我可以使用不同的clCreateProgramWithSource
多次运行cl_program
+ cl_program
吗?我忘记了什么?
谢谢!
答案 0 :(得分:9)
您可以创建和编译多个程序(并从中创建内核对象),也可以将所有内核放入同一个程序中(clCreateProgramWithSource
最后需要几个字符串)并从中创建所有内核。使用相同的CommandQueue可以正常工作。使用多个CommandQueue来执行应该在同一设备上串行执行的内核无论如何都不是一个好主意,因为在这种情况下你必须手动等待事件完成而不是异步地将所有内核排入队列然后等待结果(在至少有些操作应该在设备和主机上并行执行,所以在最后一刻等待通常会更快更容易。)