Я заметил, что память, выделенная в 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
Да. Кстати, когда вы повторяете его дважды (повторите A = A * 2), тогда количество свободной памяти не уменьшится, и это будет хорошо. – Gil