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

Lin*_*hen 6 python pytorch

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

我试过了:

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

但它们都不起作用。

Har*_*mar 6

运行会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