Pyopencl: Rect angular копия не дает ожидаемого результата - PullRequest
0 голосов
/ 10 марта 2020

Я хочу скопировать массив sr c в часть большего массива dst. Однако при использовании функции cl.enqueue_copy, как в приведенном ниже фрагменте кода, я не получаю ожидаемый результат, как при использовании numpy. Любая идея, почему тест не пройден?

Я использую последнюю версию pyopencl (pyopencl ‑ 2019.1.2 + cl21 ‑ cp37 ‑ cp37m ‑ win_amd64.whl) из https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl.

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)
...