0

在 Linux 上,我曾经确保进程分配的任何资源都会在进程终止后释放。内存被释放,打开的文件描述符被关闭。当我多次循环启动和终止进程时,没有内存泄漏。

最近我开始使用opencl。我了解 opencl 编译器将编译后的内核保存在缓存中。因此,当我运行一个使用相同内核的程序时(或者甚至可能来自运行相同内核的另一个进程的程序),它们不需要再次编译。我猜缓存在设备上。

从这种行为中,我怀疑分配的设备内存也可能被缓存(可能与一个魔术 cookie 相关联以供以后重用或类似的东西),如果它在终止之前没有明确释放。

所以我提出这个问题是为了排除任何这样的怀疑。

内核在 chache 中存活 => 其他内存分配以某种方式存活???

4

1 回答 1

0

基于此工具,我的简短回答是肯定的http://www.techpowerup.com/gpuz/ 我正在调查我的设备上的内存泄漏,我注意到当我的进程终止时内存被释放......大部分时间. 如果您像我一样有内存泄漏,即使在该过程完成后它也可能会持续存在。另一个可能有帮助的工具是http://www.gremedy.com/download.php ,但它确实有问题,所以要明智地使用它。

于 2013-03-05T16:34:28.000 回答