2017-09-06 3 views
1

이제 8 개의 TITAN Xp GPU를 사용할 수있는 VGG-Face (매우 큰 모델)을 미세 조정합니다. 그러나 Caffe는 batch_size을 증가시킬 때 메모리 부족 오류를 표시합니다. 다음은 내가 한 일입니다.Caffe에서 더 큰 batch_size를 가진 다중 GPU를 사용할 때 메모리가 부족함

먼저, batch_size은 교육 단계에서 40으로 설정되어 있으며 단일 GPU에서 정상적으로 작동합니다. 선택한 GPU는 거의 100 % 활용되었습니다. 다음, nvidia-smi.jpg

에 도시 된 바와 같이 나는 모든 8 개 GPU는

'./build/tools/caffe train -solver mysolver.prototxt -gpu all' 

모든 GPU를 완전히 활용 한을 사용하여 128 batch_size 증가 그리고 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를 어떻게 활용할 수 있습니까? 미리 감사드립니다.

답변

1

여러 GPU를 사용하는 경우 prototxt에서 배치 크기를 늘릴 필요가 없습니다. 배치 크기가 40 인 경우 Caffe는 각 GPU에 해당 크기를 개별적으로 사용하므로 실제로 변경하지 않고도 40 * 8 크기의 배치 크기를 얻을 수 있습니다.

+0

그렇다면 테스팅은 어떻습니까? GPU가 8 개인 경우 테스트 용으로 어느 GPU가 사용됩니까? –

+0

@ Y.C.Sun 명시 적으로 사용할 GPU를 지정하지 않으면 기본 GPU가 사용됩니다. – shubhamgoel27

+0

혼란이 한 번 더 있습니다. 배치 크기가 40이고 8 GPU가 사용되는 경우, 320 개의 샘플을 평균하여 구한 그래디언트입니까? 아니면 40 개의 샘플마다 8 개의 개별적으로 평균 된 그래디언트를 평균합니까? –

관련 문제