업데이트 :이 질문은 Google Colab의 "노트북 설정 : 하드웨어 가속기 : GPU"와 관련이 있습니다. 이 질문은 "TPU"옵션이 추가되기 전에 작성되었습니다.
무료 Tesla K80 GPU를 제공하는 Google Colaboratory에 대한 여러 가지 흥미 진진한 발표를 읽은 후, 절대 완료되지 않도록 fast.ai 강의 를 실행하려고했습니다 . 빠르게 메모리가 부족합니다. 나는 그 이유를 조사하기 시작했습니다.
결론은 "무료 Tesla K80"이 모두에게 "무료"가 아니라는 것입니다. 일부에게는 "무료"가 있습니다.
캐나다 서부 해안의 Google Colab에 연결하면 24GB GPU RAM으로 예상되는 0.5GB 만 얻습니다. 다른 사용자는 11GB의 GPU RAM에 액세스 할 수 있습니다.
분명히 0.5GB GPU RAM은 대부분의 ML / DL 작업에 충분하지 않습니다.
당신이 무엇을 얻는 지 잘 모르겠다면, 여기 내가 함께 긁어 낸 작은 디버그 기능이있다 (노트북의 GPU 설정에서만 작동한다) :
# memory footprint support libraries/code
!ln -sf /opt/bin/nvidia-smi /usr/bin/nvidia-smi
!pip install gputil
!pip install psutil
!pip install humanize
import psutil
import humanize
import os
import GPUtil as GPU
GPUs = GPU.getGPUs()
# XXX: only one GPU on Colab and isn’t guaranteed
gpu = GPUs[0]
def printm():
process = psutil.Process(os.getpid())
print("Gen RAM Free: " + humanize.naturalsize( psutil.virtual_memory().available ), " | Proc size: " + humanize.naturalsize( process.memory_info().rss))
print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal))
printm()
다른 코드를 실행하기 전에 jupyter 노트북에서 실행하면 다음과 같은 결과가 나타납니다.
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
전체 카드에 액세스 할 수있는 행운의 사용자는 다음을 볼 수 있습니다.
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
GPUtil에서 빌린 GPU RAM 가용성 계산에 결함이 있습니까?
Google Colab 노트북에서이 코드를 실행하면 유사한 결과가 나오는지 확인할 수 있습니까?
내 계산이 정확하다면 무료 상자에서 GPU RAM을 더 많이 얻을 수있는 방법이 있습니까?
업데이트 : 왜 우리 중 일부는 다른 사용자가받는 것의 1/20를 받는지 잘 모르겠습니다. 예를 들어이 문제를 디버깅하는 데 도움을 준 사람은 인도 출신이고 그는 모든 것을 얻습니다!
참고 : GPU의 일부를 소모 할 수있는 잠재적으로 멈춤 / 폭주 / 병렬 노트북을 죽이는 방법에 대한 더 이상 제안을 보내지 마십시오. 어떻게 슬라이스하든 저와 같은 보트에 있고 디버그 코드를 실행하면 여전히 총 5 %의 GPU RAM을 확보 할 수 있습니다 (이 업데이트 현재까지).