OpenCL,从GPU内核直接访问主机内存

OpenCL,从GPU内核直接访问主机内存,opencl,gpgpu,Opencl,Gpgpu,有没有办法在主机上分配直接从GPU访问的内存,而无需复制 与CUDA中的cudaHostGetDevicePointer类似。是,将clCreateBuffer与包含以下各项之一的标志一起使用: CL_MEM_USE_HOST_PTR CL_MEM_ALLOC_HOST_PTR 这正是你想要的。有关更多信息,请访问的手册页。抱歉,我没有正确说明-已阅读了有关千个选项的信息,但CL_MEM_USE_HOST_PTR可以缓存在设备内存中-我的任务不允许使用它。CL_MEM_ALLOC_HOST_

有没有办法在主机上分配直接从GPU访问的内存,而无需复制


与CUDA中的cudaHostGetDevicePointer类似。

是,将clCreateBuffer与包含以下各项之一的标志一起使用:

  • CL_MEM_USE_HOST_PTR
  • CL_MEM_ALLOC_HOST_PTR

这正是你想要的。有关更多信息,请访问的手册页。

抱歉,我没有正确说明-已阅读了有关千个选项的信息,但CL_MEM_USE_HOST_PTR可以缓存在设备内存中-我的任务不允许使用它。CL_MEM_ALLOC_HOST_PTR-“从主机可访问内存分配内存…”-是否可以从设备访问此内存?cudaHostGetDevicePointer通过总线使用原始DMA,正如我所知-希望找到类似的东西没有100%的相似之处,OpenCL比CUDA更通用。所有CL缓冲区都可以从设备端访问,包括使用CL_MEM_ALLOC_HOST_PTR分配的缓冲区。