Я генерирую большой массив случайных чисел, что составляет более половины доступной памяти на графическом процессоре. Я делаю это в цикле.
Когда я вызываю cupy.random второй раз (или в третий раз ...), присваивая одно и то же имя переменной, он не освобождает память для первого массива. Он пытается выделить больше памяти, что вызывает ошибку нехватки памяти.
Явное освобождение памяти перед генерацией нового случайного массива происходит очень медленно и кажется неэффективным.
Есть ли способ сгенерировать новый набор чисел, но в том же пространстве памяти?
Изменить: cupy.random.shuffle () позволяет мне обойти проблему, но мне интересно, есть ли способ лучше?
Изменить 2: при дальнейшем рассмотрении shuffle () не решает проблему и, похоже, требует даже больше памяти, чем выделение второго блока (перед освобождением первого) памяти ... Я вернулся к ограничению размера ndarray до менее половины оставшаяся память, поэтому два массива ndarrays могут быть выделены поочередно
out
или что-либо подобное, поэтому не похоже, что то, что вы хотите, возможно. - person user2357112 supports Monica   schedule 13.08.2020