[Pytorch] DataParallel vs DIstributedDataParallel
·
Pytorch
DataParallel multi-thread 방식 코드 한줄로 구현 가능 model = nn.DataParallel(model) 방식 1. 배치 데이터를 4개의 GPU에 나눔 2. 모델을 4개의 GPU에 복사 3. 4개의 GPU에서 forward 수행 4. 결과값을 GPU-1에 다시 모아 gradient 계산 5. 계산된 gradient를 4개의 GPU에 다시 나눔 6 .4개의 GPU에서 backward 수행 단점 output을 GPU-1에 모아 계산하기 때문에 GPU-1의 사용량이 많아집니다. Python은 GLI(Global Interpreter Lock)때문에 multi-thread로는 성능 향상이 어렵습니다. GLI : 하나의 thread에만 자원을 허락하고 Lock을 걸어 다른 thread의 ..