【问题标题】:OpenCL, direct access to host memory from GPU kernelsOpenCL,从 GPU 内核直接访问主机内存
【发布时间】:2010-08-22 16:30:59
【问题描述】:

有没有办法在主机上分配内存,可以直接从 GPU 访问,而不需要复制?

就像 CUDA 中的 cudaHostGetDevicePointer。

【问题讨论】:

    标签: opencl gpgpu


    【解决方案1】:

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

    • CL_MEM_USE_HOST_PTR
    • CL_MEM_ALLOC_HOST_PTR

    你想要什么。有关更多信息,请访问 clCreateBuffer 的手册页。

    【讨论】:

    • 抱歉,我没有正确澄清 - 已阅读有关 thouse 选项的信息,但 CL_MEM_USE_HOST_PTR 可以缓存在设备内存中 - 我的任务不允许这样做。 CL_MEM_ALLOC_HOST_PTR - “从主机可访问内存分配内存......” - 可以从设备访问此内存吗?据我所知,cudaHostGetDevicePointer 通过总线使用原始 DMA - 想找到类似的东西
    • 没有什么是 100% 相似的,OpenCL 比 CUDA 更通用。所有 CL 缓冲区都可以从设备端访问,包括使用 CL_MEM_ALLOC_HOST_PTR 分配的缓冲区。
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2012-03-02
    • 1970-01-01
    • 2014-10-05
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多