我注意到,在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