假设我创建了一个Tensor并将其放在GPU上,以后不需要它,并希望释放分配给它的GPU内存;我该怎么做?
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.
我试过:
del a
del a; torch.cuda.empty_cache()
但都不管用。
2条答案
按热度按时间deyfvvtc1#
运行
del tensor
会从GPU释放内存,但不会将其返回到设备,这就是为什么内存仍然显示为在nvidia-smi
上使用。你可以创建一个新的Tensor,这将重用内存。来源
https://discuss.pytorch.org/t/how-to-delete-pytorch-objects-correctly-from-memory/947https://discuss.pytorch.org/t/about-torch-cuda-empty-cache/34232
2sbarzqh2#
您可以使用
tensor
执行以下操作: