• Tutorials >
  • 분산 데이터 병렬 처리 (DDP) 란 무엇인가?
Shortcuts

소개 || 분산 데이터 병렬 처리 (DDP) 란 무엇인가? || 단일 노드 다중-GPU 학습 || 결함 내성 || 다중 노드 학습 || minGPT 학습

분산 데이터 병렬 처리 (DDP) 란 무엇인가?

저자: Suraj Subramanian 번역: 박지은

이 장에서 배우는 것
  • DDP 의 내부 작동 원리

  • DistributedSampler 이란 무엇인가?

  • GPU 간 변화도가 동기화되는 방법

필요 사항

아래의 영상이나 유투브 영상 youtube 을 따라 진행하세요.

이 튜토리얼은 파이토치에서 분산 데이터 병렬 학습을 가능하게 하는 분산 데이터 병렬 (DDP) 에 대해 소개합니다. 데이터 병렬 처리란 더 높은 성능을 달성하기 위해 여러 개의 디바이스에서 여러 데이터 배치들을 동시에 처리하는 방법입니다. 파이토치에서, 분산 샘플러 는 각 디바이스가 서로 다른 입력 배치를 받는 것을 보장합니다. 모델은 모든 디바이스에 복제되며, 각 사본은 변화도를 계산하는 동시에 Ring-All-Reduce 알고리즘 을 사용해 다른 사본과 동기화됩니다.

예시 튜토리얼 에서 DDP 메커니즘에 대해 파이썬 관점에서 심도 있는 설명을 볼 수 있습니다.

데이터 병렬 DataParallel (DP) 보다 DDP가 나은 이유

DP 는 데이터 병렬 처리의 이전 접근 방식입니다. DP 는 간단하지만, (한 줄만 추가하면 됨) 성능은 훨씬 떨어집니다. DDP는 아래와 같은 방식으로 아키텍처를 개선합니다.

DataParallel

DistributedDataParallel

작업 부하가 큼, 전파될 때마다 모델이 복제 및 삭제됨

모델이 한 번만 복제됨

단일 노드 병렬 처리만 가능

여러 머신으로 확장 가능

느림, 단일 프로세스에서 멀티 스레딩을 사용하기 때문에 Global Interpreter Lock (GIL) 충돌이 발생

빠름, 멀티 프로세싱을 사용하기 때문에 GIL 충돌 없음

읽을거리


더 궁금하시거나 개선할 내용이 있으신가요? 커뮤니티에 참여해보세요!


이 튜토리얼이 어떠셨나요? 평가해주시면 이후 개선에 참고하겠습니다! :)

© Copyright 2018-2024, PyTorch & 파이토치 한국 사용자 모임(PyTorch Korea User Group).

Built with Sphinx using a theme provided by Read the Docs.

PyTorchKorea @ GitHub

파이토치 한국 사용자 모임을 GitHub에서 만나보세요.

GitHub로 이동

한국어 튜토리얼

한국어로 번역 중인 PyTorch 튜토리얼입니다.

튜토리얼로 이동

커뮤니티

다른 사용자들과 의견을 나누고, 도와주세요!

커뮤니티로 이동