업데이트 :이 질문은 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을 확보 할 수 있습니다 (이 업데이트 현재까지).
답변
따라서이 스레드 제안의 맥락에서 유효하지 않다고 제안하는 12 개의 답변을! kill -9 -1에 방지하기 위해이 스레드를 닫습니다.
대답은 간단합니다.
이 글을 쓰는 시점에서 Google은 우리 중 일부에게 GPU의 5 % 만 제공하는 반면 다른 사용자에게는 100 % 만 제공합니다. 기간.
2019 년 12 월 업데이트 : 문제가 여전히 존재합니다.이 질문의 찬성 투표는 계속됩니다.
2019 년 3 월 업데이트 : 1 년 후 Google 직원 @AmiF는 문제가 존재하지 않으며이 문제가있는 것으로 보이는 사람은 누구나 단순히 런타임을 재설정하여 메모리를 복구해야한다고 언급하면서 상황에 대해 언급했습니다. 그러나 찬성 투표는 계속되며, 이는 @AmiF의 반대 제안에도 불구하고 문제가 여전히 존재한다는 것을 나타냅니다.
2018 년 12 월 업데이트 : 로봇이 비표준 동작을 감지하면 Google이 특정 계정 또는 브라우저 지문의 블랙리스트를 가질 수 있다는 이론이 있습니다. 우연의 일치 일 수 있지만 꽤 오랫동안 Google Re-captcha가 필요한 모든 웹 사이트에서 문제가 발생했습니다. 달성하는 데 10 분 이상 걸립니다. 이것은 수개월 동안 지속되었습니다. 이달이되자 갑자기 퍼즐이 전혀 나오지 않고 거의 1 년 전과 같이 마우스 클릭 한 번으로 모든 Google 재캡 차가 해결됩니다.
그리고 내가이 이야기를하는 이유는 무엇입니까? 음, 동시에 Colab에서 GPU RAM의 100 %를 받았기 때문 입니다. 그렇기 때문에 이론적 인 Google 블랙리스트에 있다면 많은 리소스를 무료로 제공받을 수 있다고 믿어지지 않는다고 의심합니다. 제한된 GPU 액세스와 Re-captcha 악몽 사이에 동일한 상관 관계가 있는지 궁금합니다. 내가 말했듯이 그것은 또한 완전히 우연 일 수 있습니다.
답변
어젯밤에 귀하의 스 니펫을 실행하여 정확히 얻은 결과를 얻었습니다.
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
하지만 오늘:
Gen RAM Free: 12.2 GB I Proc size: 131.5 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
가장 가능성있는 이유는 GPU가 VM간에 공유되기 때문이라고 생각하므로 런타임을 다시 시작할 때마다 GPU를 전환 할 수 있으며 다른 사용자가 사용중인 GPU로 전환 할 가능성도 있습니다.
업데이트 됨 : GPU RAM Free가 504MB 인 경우에도 GPU를 정상적으로 사용할 수 있음이 밝혀졌습니다. 이는 어제 밤에 발생한 ResourceExhaustedError의 원인으로 생각했습니다.
답변
! kill -9 -1 만있는 셀을 실행
하면 모든 런타임 상태 (메모리, 파일 시스템 및 GPU 포함)가 완전히 삭제되고 다시 시작됩니다. 다시 연결하려면 30-60 초 동안 기다린 후 오른쪽 상단의 CONNECT 버튼을 누릅니다.
답변
Google 측의 오해의 소지가있는 설명입니다. 나도 그것에 대해 너무 흥분한 것 같아요. 모든 것을 설정하고 데이터를로드하면 노트북에 500Mb 메모리 만 할당되어 있으므로 아무것도 할 수 없습니다.
답변
Python3 pid를 찾아서 pid를 죽이십시오. 아래 이미지를 참조하십시오
참고 : jupyter python (122)이 아닌 python3 (pid = 130) 만 종료하십시오.
답변
Jupyter IPython Kernel을 다시 시작합니다.
!pkill -9 -f ipykernel_launcher
답변
이 블랙리스트가 사실인지 확실하지 않습니다! 오히려 가능한 것은 코어가 사용자간에 공유된다는 것입니다. 또한 테스트를 실행했으며 결과는 다음과 같습니다.
Gen RAM 여유 공간 : 12.9GB | 프로세서 크기 : 142.8MB GPU RAM 여유 공간 : 11441MB | 사용 : 0MB | Util 0 % | 총 11441MB
나는 또한 전체 코어를 얻는 것 같습니다. 그러나 나는 그것을 몇 번 실행했고 동일한 결과를 얻었습니다. 변경 사항이 있는지 확인하기 위해 하루에 몇 번이 검사를 반복 할 것입니다.
