我想为Chromium添加一些OpenCL支持,所以我使用了像clCreateCommandQueue()
这样的API,但我找不到Chromium中的适当位置来进行清理。
因此,如果我不调用像clReleaseCommandQueue()
这样的API,OS会在进程终止后回收内存吗?或者我需要在流程的退出点调用它吗?
PS,在整个过程中需要命令级,所以我只想确保在进程终止后不会导致内存泄漏。
感谢您的帮助。
答案 0 :(得分:2)
由于所有OpenCL对象最终都由设备驱动程序保存,因此一旦应用程序终止,您就不能指望它们自动释放。这总是你的工作。
答案 1 :(得分:0)
如果您使用OpenCL C ++包装器(cl.hpp),那么编译器将找出清理对象的位置(当引用对象超出范围时)。