[英]OpenCL do I need to free host pointer
如果我使用选项CL_MEM_USE_HOST_PTR创建一个OpenCL缓冲区,然后在使用它之后在缓冲区上调用clReleaseMemObject,我仍然需要在动态分配的内存上调用free。 另外,如果内核写入缓冲区,它会在调用clReleaseMemObject之后与主机指针同步,以便我可以读取结果吗?
你必须释放记忆本身。
想一想 - OpenCL如何知道为您释放内存的正确方法? 也许它来自malloc
,或者它来自alloca
,或者它来自VirtualAlloc
(在Windows上)或sbrk
(在Linux上),或者它可能是一个全局变量,或者它可能是一个内存映射文件,或者它可能是字符串字面量。 也许你可以想到更多。
OpenCL不知道哪些是真的,即使它确实如此,它甚至不知道你想要释放内存。 (取消映射该文件只是因为你已经完成了对它的使用OpenCL?也许你想在相同的数据上运行一些非OpenCL代码!)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.