我想将数组src复制到更大的数组dst的一部分中。但是,当使用下面的代码片段中的功能cl.enqueue_copy时,没有像使用numpy那样获得预期的结果。知道测试为什么失败吗?
我正在使用https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl中的最新版本的pyopencl(pyopencl-2019.1.2 + cl21-cp37-cp37m-win_amd64.whl)。
import pyopencl as cl
import pyopencl.array as cl_array
import numpy as np
def test_rect_copy():
context = cl.create_some_context()
queue = cl.CommandQueue(context)
src = cl_array.zeros(queue, (2, 3), dtype=np.uint8)
src.fill(1)
src_np = src.get()
dst = cl_array.zeros(queue, (4, 5), dtype=np.uint8)
dst_np = dst.get()
cl.enqueue_copy(queue, dest=dst.data, src=src.data, src_origin=(0, 0), dst_origin=(0, 0), region=(2, 3))
queue.finish()
dst_np[0:2, 0:3] = src_np
assert np.all(dst.get() == dst_np)