web-dev-qa-db-ja.com

Google ColabのGPUメモリ不足エラーメッセージ

Google ColabでGPUを使用してディープラーニングコードを実行しています。

トレーニングの70%は完了しましたが、次のエラーが発生し続けます。

RuntimeError: CUDA out of memory. Tried to allocate 2.56 GiB (GPU 0; 15.90 GiB total capacity; 10.38 GiB already allocated; 1.83 GiB free; 2.99 GiB cached)

これが何を意味するのか理解しようとしています。 RAMメモリについての話ですか?その場合、コードは実行されているのと同じように実行する必要がありますか?再起動しようとすると、メモリメッセージがすぐに表示されます。理由昨日または前日に開始したときよりも、今日開始したときの方がより多くのRAMを使用していますか?

または、このハードディスク容量に関するメッセージですか?コードが進行中の状態を保存するため、ハードディスクの使用量が累積するため、理解できました。

どんな助けでも大歓迎です。


したがって、GPUがメモリ不足の場合、エラーメッセージに10.38 GiB already allocated-何かを実行し始めたときに、どのようにしてメモリがすでに割り当てられているのでしょうか。それは他の誰かによって使用されている可能性がありますか?待って、後でもう一度試す必要がありますか?

以下は、コードを実行したときの、メモリ不足になる直前のGPU使用のスクリーンショットです。

enter image description here


私は この投稿 を見つけましたが、人々は同様の問題を抱えているようです。そのスレッドで提案されたコードを実行すると、次のようになります。

Gen RAM Free: 12.6 GB  | Proc size: 188.8 MB
GPU RAM Free: 16280MB | Used: 0MB | Util   0% | Total 16280MB

RAM無料の16 GBがあることを示唆しているようです。

よくわかりません。

1
user1551817

GPUでメモリが不足しています。 pythonコードを実行している場合は、このコードを実行する前に実行してください。使用しているメモリの量が表示されます。合計メモリよりも大きなイメージをロードしようとすると、失敗します。

# 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()
2