【问题标题】:OpenCL do I need to free host pointerOpenCL我需要释放主机指针吗
【发布时间】:2016-03-10 01:07:11
【问题描述】:

如果我使用选项 CL_MEM_USE_HOST_PTR 创建一个 OpenCL 缓冲区,然后在使用它后在缓冲区上调用 clReleaseMemObject,我仍然需要在我动态分配的内存上调用 free。此外,如果内核写入缓冲区,它会在我调用 clReleaseMemObject 后与主机指针同步,以便我可以读取结果吗?

【问题讨论】:

  • 我会动态分配它,因为我给 opencl 一个使用指针

标签: c opencl


【解决方案1】:

你必须自己释放内存。

想一想——OpenCL 如何知道为您释放内存的正确方法?也许它来自malloc,或者也许它来自alloca,或者它也许来自VirtualAlloc(在Windows上)或sbrk(在Linux上),或者它可能是一个全局变量,或者它可能是一个内存-mapped 文件,或者它可能是一个字符串文字。或许你可以想得更多。

OpenCL 不知道哪些是真的,即使知道了,它甚至不知道您想要释放内存。 (取消映射该文件只是因为您已在其上使用过 OpenCL?也许您想在相同的数据上运行一些非 OpenCL 代码!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2012-01-22
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多