是否可以释放由创建的主机内存clEnqueueMapBuffer
?
例如,创建一个缓冲区并映射主机内存:
cl_mem buffer = clCreateBuffer(...);
float* dataPtr = (float*)clEnqueueMapBuffer(...,buffer,...);
做一些 OpenCL 的东西,然后清理:
clEnqueueUnmapMemObject(...,buffer,(void *)dataPtr,...);
clReleaseMemObject(buffer);
但是,此时dataPtr
不为空。你如何释放分配的主机上的内存clEnqueueMapBuffer
?删除和释放不起作用,我在 OpenCL 文档中找不到任何提供释放缓冲区的方法。