代码之家  ›  专栏  ›  技术社区  ›  9cvele3

卤化物:GPU上的缓冲区

  •  0
  • 9cvele3  · 技术社区  · 6 年前

    我已经有一个应用程序,可以获取输入图像,将其复制到gpu,然后对该图像应用一些cuda过滤器。所以,当我想实现一个新的过滤器时,我只编写过滤器本身(即内核),因为CPU-GPU复制逻辑已经存在。

    现在我想尝试使用halide来为cuda编写图像过滤器,我遇到了一个问题,即代表输入图像的halide::buffer是在cpu上分配的,所以我必须更改现有的复制逻辑。

    有没有办法用GPU上已有的数据初始化halide::buffer,并避免额外的复制。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Andrew Adams    6 年前

    是的,您可以使用halide::buffer(nullptr,…)构造一个没有正确大小主机分配的缓冲区。size…)构造函数,然后调用buffer::device_wrap_native将CUDA指针与其关联。