I was just playing with the profiler from nvidia and I'm wondering why all data from the graphic card are read back. I though memory was read back only when using cl.enqueue_read_buffer. Here is the result I get from the profiling of matrix-multiply.py :
method memory transfert size
memcpyHtoDasync 5.12e+06 memcpyHtoDasync 5.12e+06 memcpyDtoHasync 2.56e+06 memcpyDtoHasync 5.12e+06 memcpyDtoHasync 2.56e+06 memcpyDtoHasync 5.12e+06
As there is only one cl.enqueue_read_buffer call, there should be only one memcpyDtoHasync call.
PyOpenCL mailing list