Как освободить память GPU, удалив тензоры? - PullRequest
2 голосов
/ 22 апреля 2019

Предположим, я создал тензор и поместил его в графический процессор, и позже он мне не нужен, и хочу освободить выделенную ему память графического процессора; Как мне это сделать?

import torch
a=torch.randn(3,4).cuda() # nvidia-smi shows that some mem has been allocated.
# do something
# a does not exist and nvidia-smi shows that mem has been freed.

Я пробовал:

  1. del a
  2. del a; torch.cuda.empty_cache()

Но ни один из них не работает.

1 Ответ

1 голос
/ 22 апреля 2019

Запуск del tensor освобождает память от графического процессора, но не возвращает ее на устройство, память которого отображается как нефиксированная на nvidia-smi. Вы можете создать новый тензор и использовать эту память повторно.

Источники

https://discuss.pytorch.org/t/how-to-delete-pytorch-objects-correctly-from-memory/947 https://discuss.pytorch.org/t/about-torch-cuda-empty-cache/34232

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...