SYCL 从图像到主机的显式数据移动

问题描述 投票:0回答:0

我在尝试弄清楚如何在使用 sycl::image 时与主机进行显式数据传输时遇到问题。使用缓冲区时,我熟悉 sycl::handler.copy:

float* host_ptr;
sycl::buffer<float, 1> buf;
sycl::queue& q
q.submit([&](sycl::handler& cgh) {
  auto acc = buf.get_access<sycl::access::mode::read>(cgh);
  cgh.copy(acc, host_ptr);
});

q.wait_and_throw();

但是在处理 sycl::image 时我找不到等效的代码。如果我将图像访问器传递给 .copy,它会抱怨访问器没有下标运算符。有谁知道正确的方法吗?

我以前的 OpenCL 代码有 clEnqueueReadImageclEnqueueWriteImage 用于这种数据图像传输。有等效的 sycl 吗?

注意:我知道在 sycl::image 解构时隐式复制回主机,但我想知道显式解决方案,而不是隐式解决方案。

c++ opencl intel-oneapi sycl
© www.soinside.com 2019 - 2024. All rights reserved.