title: clEnqueueNDRangeKernel function
body: <p>Please correct me if I am wrong in understanding.</p>
  
  <pre><code>err= clEnqueueNDRangeKernel(command_queue,kernel,1,NULL,global,wg,0,NULL,&amp;gpuExec);
  </code></pre>
  
  <p><strong>Is CPU code (written between these two function) execute at same time on CPU, when kernel executing on GPU ....means they execute simultaneously
  ?</strong></p>
  
  <pre><code>err=clEnqueueReadBuffer(command_queue,output,CL_TRUE,0,sizeof(cl_int)*100,results,0,NULL,NULL);
  </code></pre>
  
  <p>2) this function</p>
  
  <pre><code>err= clEnqueueNDRangeKernel(command_queue,kernel,1,NULL,global,wg,0,NULL,&amp;gpuExec);
  </code></pre>
  
  <p>return immediately and CPU can do another work after this function call(means after that kernel starts executing on GPU on differents core) and at the same time when kernel is executing ,CPU can do its another work ?</p>