【发布时间】:2014-11-17 17:22:26
【问题描述】:
我注意到在 GPU 中分配的内存没有释放。 我使用了以下命令:
A=gpuArray.randn(1e4);
gpuDevice
空闲内存:3.3336e+09
A=A*2
空闲内存:2.5336e+09
看起来 MATLAB 为 A*2 分配了内存,但没有为 A 释放内存。我不知道如何释放不再使用的内存。 A=A*A' 的问题更严重,因为似乎 MATLAB 分配了更多内存(可能是 A')并且没有释放它。
我在互联网上发现,这是在 MATLAB 2013b 中解决的已知错误(或类似错误?)(请参阅http://www.mathworks.com/support/bugreports/954239),但我使用的是 MATLAB 2014a。我还安装了链接中的 zip 文件,但没有帮助。
我将不胜感激。
【问题讨论】:
-
您确定您看到的是可用内存的相关小数吗?
-
是的。顺便说一句,当您重复两次(重复 A=A*2)时,可用内存量不会减少并且表现良好。
标签: matlab memory memory-leaks cuda gpgpu