OpenCL我需要释放主机指针

时间:2016-03-10 01:07:11

标签: c opencl

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

1 个答案:

答案 0 :(得分:2)

你必须释放记忆本身。

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

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