How can I make memory transfer and GPU computing concurrent

Discussion created by probing on Jul 26, 2010
Latest reply on Aug 6, 2010 by ryta1203

my current implementation is that create 2 queue for a single GPU device,

one queue is only for memory transfer API such as:

clEnqueueReadBuffer, clEnqueueWriteBuffer or clEnqueueCopyBuffer.

another queue is only for GPU computing API such as clEnqueueNDRangeKernel

and I sync these 2 queues using shared cl_event objects when it is necessary.

But for my test, this can not make transfer and computing concurrent. does it mean that clEnqueueCopyBuffer and clEnqueueNDRangeKernel will execute serially even they are on different queues?