Latest version from git works fine, thanks. On Sat, Mar 12, 2011 at 10:14 AM, Andreas Kloeckner <[email protected]> wrote: > Dear Maxim, > > On Fri, 11 Mar 2011 13:38:02 +0300, Maxim Grechkin <[email protected]> > wrote: >> Look at this example: >> >> #test_map.py >> import pyopencl as cl >> import numpy as np >> import numpy.linalg as la >> ctx = cl.create_some_context() >> queue = cl.CommandQueue(ctx) >> ary = np.arange(3*4*5).reshape(3,4,5, order="C").astype(np.float32) >> mf = cl.mem_flags >> flags = mf.READ_WRITE | mf.COPY_HOST_PTR | mf.ALLOC_HOST_PTR >> buf = cl.Buffer(ctx, flags, hostbuf = ary) >> queue.finish() >> ar2 = np.empty_like(ary) >> cl.enqueue_read_buffer(queue, buf, ar2) >> print la.norm(ary-ar2), ary.strides, ar2.strides >> (ar3, e) = cl.enqueue_map_buffer(queue, buf, cl.map_flags.READ, 0, >> ary.shape, ary.dtype, "C") >> print la.norm(ary-ar3), ary.strides, ar3.strides >> >> >> ary is created with C-order, enqueue_map_buffer is told to return in >> C-order, but in fact it return in Fortran order. Changing order="C" to >> order="F" during ary creation makes this example work. > > Should be fixed in git. Thanks for the report. > > Andreas >
-- Maxim _______________________________________________ PyOpenCL mailing list [email protected] http://lists.tiker.net/listinfo/pyopencl
