我现在在VGG-FACE(非常大的型号)上进行微调,并使用8个Titan XP GPU。但是,当我增加batch_size
时,Caffe会出现符合内存错误。这是我所做的:
首先,batch_size
的训练阶段设置为40,并且在单个GPU上工作正常。选择的GPU几乎使用了100%。然后,使用
batch_size
提高到128 './build/tools/caffe train -solver mysolver.prototxt -gpu all'
如NVIDIA-smi.jpg
所示,所有GPU均已充分利用和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来加速我的模型培训?预先感谢!
使用多个GPU时,您无需增加原始版本中的批处理大小。如果您的批次尺寸为40,Caffe将对每个GPU单独使用该尺寸,从而有效地为您提供40*8的批次大小(无需更改任何内容)。