Hi

I have been using PyOpenCL for two years now, and I am familiar to using it.
However, I do not understand why the following code is blocking at the last line…

The doc states that is_blocking  is « available on any copy involving host memory"…

Any clue will be much appreciated.

Yves

# ————————————————
import numpy as np
import pyopencl as cl
import pyopencl.array as cla

plat = cl.get_platforms()

GPU = None

for device in plat[0].get_devices():
    if device.type == cl.device_type.GPU:
        GPU = device
        break

#Create context for GPU
if GPU:
    print('Found GPU')
    context = cl.Context((GPU,))
else:
    raise Exception('Could not find GPU’)

queue=cl.CommandQueue(context)

device_ary = cla.zeros(queue,(10,10), dtype='uint8')
host_ary = np.ones((10,10), 'uint8')

ev=cl.UserEvent(context)

cl.enqueue_copy(queue, host_ary, device_ary.data, wait_for=(ev,), is_blocking=False)