
前提・実現したいこと
プログラム実行時にGPU:0,GPU:1,GPU2,GPU:3のすべてのGPUメモリを最大限使用できるようにしたいです.
現在こちらと同じような問題に悩まされています.
jupyter lab上でpythonのプログラムを実行しているのですが,os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3"
として実行してもOOMエラーが吐かれてしまいます.
!nvidia-smiの実行結果は以下のようになりました.
ちなみにモデルはシャムネットワーク,訓練データ数は900000,データタイプはfloat32,バッチサイズは1です.
↓実行前
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.156.00 Driver Version: 450.156.00 CUDA Version: 11.7 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-DGXS... On | 00000000:07:00.0 Off | 0 | | N/A 59C P0 226W / 300W | 5442MiB / 32499MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 Tesla V100-DGXS... On | 00000000:08:00.0 Off | 0 | | N/A 59C P0 233W / 300W | 5350MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 Tesla V100-DGXS... On | 00000000:0E:00.0 Off | 0 | | N/A 58C P0 226W / 300W | 5350MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 Tesla V100-DGXS... On | 00000000:0F:00.0 Off | 0 | | N/A 56C P0 230W / 300W | 5350MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+
↓実行後
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.156.00 Driver Version: 450.156.00 CUDA Version: 11.7 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-DGXS... On | 00000000:07:00.0 Off | 0 | | N/A 59C P0 240W / 300W | 31911MiB / 32499MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 Tesla V100-DGXS... On | 00000000:08:00.0 Off | 0 | | N/A 59C P0 233W / 300W | 5789MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 Tesla V100-DGXS... On | 00000000:0E:00.0 Off | 0 | | N/A 58C P0 226W / 300W | 5789MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 Tesla V100-DGXS... On | 00000000:0F:00.0 Off | 0 | | N/A 56C P0 230W / 300W | 5789MiB / 32508MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+
どうやらos.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3"
で優先的にGPU:0を使用し,それ以外はまんべんなく少し使用しているようですが,GPU:0が上限に達したらOOMエラーを吐いているのでしょうか.
GPU:0が上限に達したら次はGPU:1というように,複数のGPUメモリを最大限使う方法はないのでしょうか.
補足情報(FW/ツールのバージョンなど)
ubuntu 20.04
Python 3.8.10
tensorflow 1.15.5+nv22.5
tensorflow-estimator 1.15.1
Keras-Applications 1.0.8
Keras-Preprocessing 1.0.5
jupyter lab 2.3.2
PCスペックはこちらの都合上記載できません.すみません.



回答2件
あなたの回答
tips
プレビュー