更新:この質問は、Google Colabの「ノートブック設定:ハードウェアアクセラレータ:GPU」に関連しています。この質問は、「TPU」オプションが追加される前に書かれました。
Google Colaboratoryが無料のTesla K80 GPUを提供していることについての興奮する発表を何度も読んで、私はそれについて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を増やす方法はありますか?
更新:一部のユーザーが他のユーザーの20分の1を獲得する理由がわかりません。たとえば、これをデバッグするのを手伝ってくれた人はインド出身で、彼はすべてを手に入れました!
注:GPUの一部を消費している可能性があるスタック/ランアウェイ/パラレルノートブックを強制終了する方法については、これ以上の提案を送信しないでください。どのようにスライスしても、私と同じボートにいてデバッグコードを実行すると、合計5%のGPU RAMがまだ得られることがわかります(この更新の時点では)。