1
我现在正在微调VGG-Face(非常大的型号),其中有8个TITAN Xp GPU可用。但是,当我增加batch_size
时,Caffe会发生内存不足错误。以下是我所做的:在Caffe中使用多个具有较大batch_size的GPU时内存不足
首先,batch_size
在训练阶段设置为40,并且它在单个GPU上正常工作。选择的GPU几乎100%被利用。 然后,我增加batch_size
128使用
'./build/tools/caffe train -solver mysolver.prototxt -gpu all'
所有的GPU得到充分利用所有的8个GPU,如在nvidia-smi.jpg
示出和来自Caffe给我以下错误:
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来加速我的模型训练? 在此先感谢!
那么,TESTING呢?如果我有8个GPU,哪一个将用于测试? –
@ Y.C.Sun我相信会使用默认的0 GPU,除非您明确指定要使用哪一个。 – shubhamgoel27
又一个混乱。如果批量大小为40,并且使用8个GPU,则通过对320个样本进行平均来计算梯度,或对每40个样本的8个单独平均梯度进行平均? –