我注意到,在GPU中分配的内存没有发布。 我用下面的命令:发布CUDA内存Matlab
A=gpuArray.randn(1e4);
gpuDevice
FreeMemory:3.3336e + 09
A=A*2
FreeMemory:2.5336e + 09
看起来像MATLAB为A * 2分配的内存,但没有释放A的内存。我看不到我如何释放不再使用的内存。这个问题对于A=A*A'
来说更糟,因为似乎MATLAB分配了更多的内存(可能是A')并且不会释放它。 我在网上发现,这是一个在MATLAB 2013b(见http://www.mathworks.com/support/bugreports/954239)中解决的已知错误(或类似的错误?),但我使用的是MATLAB 2014a。我也从链接安装了zip文件,但它没有帮助。
我将不胜感激任何帮助。
你确定你看到空闲内存的相关小数? – sobek 2014-09-23 13:47:37
是的。顺便说一句,当你重复两次(重复A = A * 2),那么可用内存的数量不会减少,并且表现良好。 – Gil 2014-09-23 13:54:26