我现在正在微调VGG-Face (非常大的型号),有8个TITAN Xp GPU可用。然而,当我增加batch_size时,Caffe给出了内存不足的错误。下面是我所做的:
首先,在训练阶段,batch_size被设置为40,并且它在单个图形处理器上运行良好。所选GPU的利用率接近100%。然后,我使用所有8个GPU将batch_size增加到128
'./build/tools/caffe train -solver mysolver.prototxt -gpu all'所有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来加速我的模型训练?提前感谢!
发布于 2017-09-06 18:07:45
当使用多个GPU时,您不需要在您的prototxt中增加批处理大小。如果您的批处理大小为40,Caffe将为每个GPU单独使用该大小,从而有效地为您提供40*8的批处理大小(无需更改任何内容)。
https://stackoverflow.com/questions/46069618
复制相似问题