释放cl ::设备上的缓冲区和内存泄漏

问题描述 投票:0回答:1

我们知道,在openCL中,通过使用cl::CreateBuffer(),我们可以在设备中创建缓冲区,并在其中分配内存。但是我的问题是,终止程序后缓冲区是否将释放,或者有一个函数应该释放内存以防止设备上的内存泄漏。

memory-leaks buffer opencl
1个回答
0
投票

cl::Buffer返回的cl::CreateBuffer()对象的析构函数将释放缓冲区,该缓冲区还将释放设备上分配的所有内存。这是您应该依赖的主要机制。

由于任何原因导致进程死亡(崩溃,干净退出),即使分配了资源,也会破坏设备驱动程序中进程的上下文句柄,这将导致驱动程序执行清理。

当然,在任何情况下,堆栈中任何级别的错误都可能在任何情况下均无法正常发生,但是通常,一旦进程终止,则应重置所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.