익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
링 올 리듀스
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
링 올 리듀스(Ring All-Reduce)는 분산 딥러닝 및 고성능 컴퓨팅(HPC) 환경에서 다수의 노드(주로 GPU) 간에 데이터를 효율적으로 집계하고 공유하기 위해 사용되는 올 리듀스(All-Reduce) 알고리즘의 한 형태이다. ==개요== 링 올 리듀스는 모든 노드를 링(Ring) 형태로 연결하여, 각 노드가 자신의 텐서를 여러 조각(chunk)으로 분할한 뒤 인접한 노드와 데이터를 교환하며 기울기(gradient) 또는 텐서 값을 점진적으로 집계한다. 통신량이 모든 노드에 균등하게 분산되기 때문에 확장성이 높아, 대규모 분산 딥러닝 환경에서 널리 사용되는 방식이다. ==구조== 링 올 리듀스는 일반적으로 다음과 같은 구조적 특징을 갖는다. *모든 노드를 일렬로 연결한 뒤 양쪽 끝을 이어 링 형태를 만든다. *각 노드는 자신의 텐서를 노드 수(N)만큼의 조각으로 나눈다. *통신은 이웃 노드 간에만 이루어지며, 전체 링을 따라 순차적으로 전달된다. ==동작 방식== 링 올 리듀스는 크게 두 단계로 구성된다. [[파일:링 올 리듀스 동작 순서 1.png|섬네일|200x200픽셀|링 올 리듀스 동작 순서 1]] [[파일:링 올 리듀스 동작 순서 2.png|섬네일|200x200픽셀|링 올 리듀스 동작 순서 2]] ===1. 리듀스-스캐터(Reduce-Scatter) 단계=== *각 노드는 자신의 텐서를 N개의 chunk로 나눈다. *오른쪽 또는 왼쪽 이웃에게 하나의 chunk를 전달하고, 동시에 이웃으로부터 하나의 chunk를 받는다. *받은 chunk와 자신의 해당 chunk를 더하여(reduce) 새로운 partial sum을 만든다. *이 과정을 N-1번 반복하면, 각 노드는 전체 텐서의 일부 구간(1/N chunk)에 대해 합산된 결과를 가지게 된다. [[파일:링 올 리듀스 동작 순서 3.png|섬네일|200x200픽셀|링 올 리듀스 동작 순서 3]] ===2. 올-게더(All-Gather) 단계=== *각 노드는 자신이 보유한 partial sum을 이웃 노드에게 전달한다. *노드들은 서로 chunk를 교환하여 전체 gradient를 점차 모은다. *[[파일:링 올 리듀스 동작 순서 4.png|섬네일|200x200픽셀|링 올 리듀스 동작 순서 4]]N-1번 반복 후 모든 노드는 전체 텐서가 재구성된 동일한 결과를 갖는다. ==특징== *모든 노드가 동일한 통신량을 가지므로 부하가 균등하게 분산된다. *각 단계의 통신량이 일정하여 노드가 증가하더라도 확장성이 좋다. *Parameter Server 방식과 달리 중앙 집중 병목이 발생하지 않는다. *GPU 간 통신에 최적화된 NCCL 라이브러리에서 기본적으로 채택하는 방식이다. ==장점== *높은 확장성: 노드 수가 많아져도 성능 저하가 적다. *균등한 통신 부담: 특정 노드에 병목이 생기지 않는다. *점대점(P2P) 통신 기반이라 네트워크 효율이 뛰어나다. ==단점== *단계가 N-1번 반복되므로 지연(latency)에 민감할 수 있다. *모든 노드가 동기적으로 참여해야 하므로 느린 노드가 전체 학습 속도를 저하시킬 수 있다. *네트워크 토폴로지가 링 구조를 효율적으로 지원해야 최대 성능을 낼 수 있다. ==활용== *대규모 딥러닝 모델 학습의 데이터 병렬 처리 *PyTorch DistributedDataParallel(DDP) *TensorFlow MirroredStrategy *Horovod 분산 학습 프레임워크 *NVIDIA NCCL 기반 GPU 간 집합 통신 ==같이 보기== *[[올 리듀스]] *[[데이터 병렬 처리]] *[[분산 학습]] *[[파라미터 서버]] *[[딥러닝]] ==참고 문헌== *Sergeev, A.; Del Balso, M. "Horovod: Fast and Easy Distributed Deep Learning in TensorFlow." arXiv (2018). *Thakur, R.; Rabenseifner, R.; Gropp, W. "Optimization of Collective Communication Operations." International Journal of High Performance Computing Applications (2005). ==각주== <references /> [[분류:인공지능]] [[분류:분산 컴퓨팅]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록