2017-09-06 42 views
1

今は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をどのようにフルに活用できますか? ありがとうございます!

答えて

1

複数のGPUを使用する場合は、prototxtのバッチサイズを大きくする必要はありません。バッチサイズが40の場合、Caffeは個々のGPUごとにそのサイズを使用するため、40 * 8のバッチサイズを効果的に提供します(何も変更する必要はありません)。

+0

次に、テスティングはどうですか?私が8つのGPUを持っているなら、どれがテストに使用されますか? –

+0

@ Y.C.Sun使用する明示的に指定しない限り、デフォルトのGPUが使用されると思います。 – shubhamgoel27

+0

もう一度混乱します。バッチサイズが40であり、8個のGPUが使用される場合、320個のサンプルを平均して勾配を計算するか、または40個のサンプルごとに8個の個別に平均化された勾配を平均化することによって勾配が計算されるか? –

関連する問題