Multiple OpenCl Kernels
I just wanted to ask, if somebody can give me a heads up on what to pay attention to when using several simple kernels after each other.
Can I us开发者_运维知识库e the same CommandQueue
? Can I just run several times clCreateProgramWithSource
+ cl_program
with a different cl_program
? What did I forget?
Thanks!
You can either create and compile several programs (and create kernel objects from those), or you can put all kernels into the same program (clCreateProgramWithSource
takes several strings after all) and create all your kernels from that one. Either should work fine using the same CommandQueue . Using more then one CommandQueue to execute kernels which should execute serially on the same device is not a good idea anyways, because in that case you have to manually wait for the event completion instead of asynchronously enqueuing all kernels and then waiting on the result (at least some operations should execute in parallel on device and host, so waiting at the last possible moment is generally faster and easier).
精彩评论