CUDA OOM-지만 번호를 추가하지 않 upp?

0

질문

내가 노력하고 기차를 사용하여 모델 PyTorch. 시작할 때 모델을 훈련 받을 다음과 같은 오류 메시지:

RuntimeError: CUDA out of memory. Tried to allocate 5.37 GiB (GPU 0; 7.79 GiB total capacity; 742.54 MiB already allocated; 5.13 GiB free; 792.00 MiB reserved in total by PyTorch)

내가 왜 이 오류가 발생합니다. 는 방법에서 나는 그것을 보고,내가 7.79GiB 총 용량입니다. 숫자 진술(742MiB+5.13GiB+792MiB)까지 추가하지 않을 보다 더 큰 것 7.79GiB. 면 체크인 nvidia-smi 나는 이러한 프로세스를 실행

|    0   N/A  N/A      1047      G   /usr/lib/xorg/Xorg                168MiB |
|    0   N/A  N/A      5521      G   /usr/lib/xorg/Xorg                363MiB |
|    0   N/A  N/A      5637      G   /usr/bin/gnome-shell              161MiB |

나는 깨닫는 합산하는 모든 이들의 숫자를 볼 수 있습니다 닫기(168 + 363 + 161 + 742 + 792 + 5130 = 7356 MiB)그러나 이것은 여전히 적게 설명 보다 용량의 내 GPU.

1

최고의 응답

3

이것은 더 많은 주석의 가치가 있지만,가리키는다.

이유에서 일반은 참으로 어떤 talonmies 댓글을 달았지만,당신은 당 합산하는 번호가 잘못되었습니다. 어떤 일이 발생하는지 살펴보겠 때 tensors 로 이동됩 GPU(이에 나와 PC RTX2060 5.8G 용 GPU 메모리에서 전체):

자 실행하는 다음 파이썬은 대화식으로 명령:

Python 3.8.10 (default, Sep 28 2021, 16:10:42) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> a = torch.zeros(1).cuda()
>>> b = torch.zeros(500000000).cuda()
>>> c = torch.zeros(500000000).cuda()
>>> d = torch.zeros(500000000).cuda()

다음과 같은 출력 watch -n.1 nvidia-smi:

오후 torch 가져오기:

|    0   N/A  N/A      1121      G   /usr/lib/xorg/Xorg                  4MiB |

후에 바로 생성 a:

|    0   N/A  N/A      1121      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A     14701      C   python                           1251MiB |

당신이 볼 수있는,필요하신 1251MB 을 얻을 pytorch 사용하기 시작하 CUDA,는 경우에도 당신이 하나만 필요한 부동합니다.

후에 바로 생성 b:

|    0   N/A  N/A      1121      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A     14701      C   python                           3159MiB |

b500000000*4 bytes = 1907MB이와 같은 증가에 open icecat 콘텐츠 배포업체를 통해 사용됩 python 과정입니다.

후에 바로 생성 c:

|    0   N/A  N/A      1121      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A     14701      C   python                           5067MiB |

다.

후에 바로 생성 d:

|    0   N/A  N/A      1121      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A     14701      C   python                           5067MiB |

더 메모리 할당 및 움 오류가 발생합니다:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: CUDA out of memory. Tried to allocate 1.86 GiB (GPU 0; 5.80 GiB total capacity; 3.73 GiB already allocated; 858.81 MiB free; 3.73 GiB reserved in total by PyTorch)

분명히:

  • "이미 할당된"부분에 포함되는"예약에서 총 의 PyTorch"부분입니다. 할 수 없습니다 sum 들,그렇지 않으면 합을 초과하는 총 메모리를 사용할 수 있습니다.
  • 최소 메모리를 얻기 위해 필요 pytorch 에서 실행 되는 GPU(1251M)에 포함되지 않은"지에서 총"부분입니다.

그래서 당신의 경우,합계로 구성되어야:

  • 792MB(예약에서 총)
  • 1251MB(최소 얻을 pytorch 에서 실행 되는 GPU 가정하면,이것은 동일한 모두에 대한 저희의)
  • 5.13GB(무료)
  • 168+363+161=692MB(다른 프로세스)

그들이 합하여 약 7988MB=7.80GB 는 정확하게 당신이 총 GPU 메모리입니다.

2021-11-23 06:13:39

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................