今は8台のTITAN Xp GPUを使用できるVGG-Face(非常に大きなモデル)を微調整しています。しかし、私がbatch_size
を増やすと、Caffeはメモリ不足エラーを出します。私がしたことは次のとおりです。Caffeで大きなバッチサイズの複数のGPUを使用しているときにメモリが不足する
最初に、batch_size
はトレーニング段階では40に設定され、1つのGPUで正常に動作します。選ばれたGPUはほぼ100%利用されました。 その後、nvidia-smi.jpg
に示されているように私は、すべての8つのGPUは
'./build/tools/caffe train -solver mysolver.prototxt -gpu all'
すべてのGPUが完全に利用されたを使用して128にbatch_size
を増加し、カフェは私に次のエラー与える:
F0906 03:41:32.776806 95655 parallel.cpp:90] Check failed: error ==cudaSuccess (2 vs. 0) out of memory
*** Check failure stack trace: ***
@ 0x7f9a0832995d google::LogMessage::Fail()
@ 0x7f9a0832b6e0 google::LogMessage::SendToLog()
@ 0x7f9a08329543 google::LogMessage::Flush()
@ 0x7f9a0832c0ae google::LogMessageFatal::~LogMessageFatal()
@ 0x7f9a08abe825 caffe::GPUParams<>::GPUParams()
@ 0x7f9a08abefd8 caffe::NCCL<>::NCCL()
@ 0x40dc69 train()
@ 0x40a8ed main
@ 0x7f9a06abf830 (unknown)
@ 0x40b349 _start
Aborted (core dumped)
を
理論的に私はbatch_size=40*8=320
と訓練することができます。 (私がここにいるかどうか教えてください)
モデルトレーニングを加速するためにGPUをどのようにフルに活用できますか? ありがとうございます!
次に、テスティングはどうですか?私が8つのGPUを持っているなら、どれがテストに使用されますか? –
@ Y.C.Sun使用する明示的に指定しない限り、デフォルトのGPUが使用されると思います。 – shubhamgoel27
もう一度混乱します。バッチサイズが40であり、8個のGPUが使用される場合、320個のサンプルを平均して勾配を計算するか、または40個のサンプルごとに8個の個別に平均化された勾配を平均化することによって勾配が計算されるか? –