如何通过删除张量来释放 gpu 内存?

假设我创建了一个张量并将其放在 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()

但它们都不起作用。


aluckdog
浏览 328回答 1
1回答

MYYA

运行del tensor会从 GPU 中释放内存,但不会将其返回到设备,这就是为什么内存仍显示为已使用的原因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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python