横浜国立大学理工学部建築都市環境系学科卒
一級鉄筋技能士
画像分類のAIを作成していると、大量の画像を処理して学習データを作成することになります。
GPUを用いて大量の画像を学習させると、GPUのメモリ不足エラーが発生します。
この記事では、GPUのメモリ不足エラーの対処方法について説明します。
目次
GPUについて
GPUとは画像処理装置のこと
GPU(Graphics Processing Unit)は、画像処理装置を意味します。
GPUの主な機能は、画像を描写するために必要な計算を処理することです。
AIを用いた画像処理では膨大な画像データを瞬時に計算するため、機械学習にはGPUが搭載されたパソコンが欠かせません。
建設業界において、画像認識ソリューションの活用事例が多い
GPUはデータを大量かつ速く処理する独特の仕組みをもっています。
近年の建設業では画像認識AI技術が多く活用されているため、GPUの需要も高まっています。
引用:2019年度「戦略的基盤技術高度化・連携支援事業(中小企業のAI活用促進に関する調査事業)」調査報告書
よくある事例は、「設備点検の品質向上・効率化」に画像認識AIが導入されている例です。
例えば、部品の取り付け、コンクリートのひび割れ・腐食、部品のサビ・傷、水漏れなど、従来は人が目視で確認・検査していたものを、AIが正常/異常判定をしたり、異常の種類ごとに分類します。
このような事例においても大量の画像を処理するGPUの役割は大きく、今後その重要性は高まっていくでしょう。
CUDA out of memory の対処法
GPUのメモリ不足が発生すると以下のようなエラーが出ます。
1 2 3 |
RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 8.00 GiB total capacity; 808.27 MiB already allocated; 4.81 MiB free; 842.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF |
実行時エラー(RuntimeError)とは、プログラムを実行した際に生じるエラー全般を指します。
要は、プログラムを異常停止させるエラーです。
このエラーの対処法は以下の通りです。
nvidia-smi コマンドでGPUのメモリー容量を確認
1 |
nvidia-smi |
コマンドを実行すると以下のような画面になりますので、現状のメモリー空き容量を確認しましょう。
図の場合だと、
1 |
7435MiB / 8192MiB |
となっています。
taskkill /im cmd.exe コマンドでGPUのメモリー容量を解放
1 2 |
taskkill /im cmd.exe 実行ファイル名(イメージ名)が cmd.exe であるすべてのプロセスが終了 |
上記のコマンドを実行し、空き容量が増えたかどうかを確認します。
図の場合だと、以下のように空き容量が増えています。
1 |
1218MiB / 8192MiB |
まとめ
この記事では、CUDA out of memory の対処法を説明しました。
機械学習をしている最中に良く発生するエラーなので、参考にしてください。