如果没有使用cudaFree(),在使用它的应用程序退出后,GPU上分配的内存会发生什么?

时间:2015-09-30 02:50:11

标签: cuda gpgpu

如果最后没有使用cudaFree(),那么在使用它的应用程序/内核函数退出后,使用的内存是否会自动释放?

2 个答案:

答案 0 :(得分:9)

当您的应用程序终止时(无论是否优雅),操作系统都会回收其所有内存,无论它是否有free d。 同样,GPU上分配的内存由其驱动程序管理,驱动程序将释放您的应用程序所拥有的所有资源cudaFree d。

然而,好的做法是每个分配都有匹配的释放,所以不要以此为借口不能正确释放内存:)

答案 1 :(得分:0)

据我了解,如果您没有在循环中释放内存,或者您多次声明内存,则声明的内存将会累积。最终系统将耗尽内存。