【问题标题】:Getting "RuntimeError: CUDA error: out of memory" when memory is free内存可用时出现“RuntimeError:CUDA 错误:内存不足”
【发布时间】:2022-01-12 19:53:08
【问题描述】:

我正在尝试在远程机器的 GPU 上运行测试代码。代码是

import torch

foo = torch.tensor([1,2,3])
foo = foo.to('cuda')

我收到以下错误

Traceback (most recent call last):
  File "/remote/blade/test.py", line 3, in <module>
    foo = foo.to('cuda')
RuntimeError: CUDA error: out of memory
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

来自this discussion,cuda 和 pytorch 版本之间的冲突可能是导致错误的原因。我运行以下

print('python v. : ', sys.version)
print('pytorch v. :', torch.__version__)
print('cuda v. :', torch.version.cuda)

获取版本:

python v. : 3.9.7 (default, Sep 16 2021, 13:09:58)
[GCC 7.5.0]
pytorch v. : 1.11.0.dev20211206
cuda v. : 10.2

这里有什么不好看的吗?

【问题讨论】:

  • 您使用的 Pytorch 构建需要 CUDA 10.2
  • @talonmies 这是一个问题还是一个声明? b/c 你看我试过 w/10.2 没有运气。如果这是一个问题,我对 cuda 版本没有偏好。 PS为什么你认为这个问题不应该有cuda标签?
  • 是声明。 torch.version.cuda 是由 Pytorch 构建发出的硬编码字符串。它必须匹配一组可在默认库搜索路径中访问的运行时库。而且您的 PyTorch 问题不是与 CUDA 编程相关的问题,这就是我删除标签的原因
  • 感谢您的澄清。所以我删除了“编辑:”部分。尽管如此,pytorch v. : 1.11.0.dev20211206 和 cuda v. : 10.2 仍然存在问题。还有什么我可以检查的吗?
  • @Blade 你解决了吗?

标签: pytorch


【解决方案1】:

回答问我是否能够解决问题的 cmets:

我在两个不同的场合遇到过这个问题,

  1. 第一次,我尝试使用conda 库,而我在另一个目录中也有python 包(可能使用pip 安装)。我最终手动删除了另一个库。

  2. 问题第二次是由僵尸进程引起的:基本上我提前终止了代码,因此 GPU 内存没有被清空。解决方案是运行

    ps -elf | grep python
    

    然后使用

    杀死进程
    kill -9 [pid]
    

    其中[pid] 是第一个命令后返回的进程ID。

【讨论】:

  • 感谢@Blade!所以你刚刚杀死了所有的python进程?
  • @Minions 是的。基本上,我没有运行任何东西,但它正在显示 python 进程,这就是为什么他们称它们为僵尸进程。他们只是占用了内存。
  • 嗯,好的。就我而言,我没有任何正在运行的进程,但感谢您的回答:)
猜你喜欢
  • 2022-07-15
  • 2021-09-17
  • 2012-05-15
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
相关资源
最近更新 更多