본문으로 건너뛰기
Stanford Online조회 7

CS336 강의 7: 병렬 처리 (Parallelism)

대규모 언어 모델 학습을 위해 단일 GPU의 한계를 넘어 여러 GPU를 효율적으로 활용하는 데이터, 텐서, 파이프라인 병렬 처리 기법의 핵심 원리와 구현 방식을 다룹니다.

챕터별 상세

00:00

병렬 처리의 필요성과 계층 구조

모델 파라미터와 활성화 함수 값이 단일 GPU의 HBM 메모리 용량을 초과하거나 학습 시간을 단축해야 할 때 병렬 처리가 필요하다. 시스템은 단일 노드 내 L1 캐시 공유부터 NVLink를 통한 멀티 GPU 연결, 그리고 InfiniBand 기반의 멀티 노드 클러스터까지 계층적인 통신 속도 차이를 가진다. 핵심 과제는 연산 유닛과 데이터 사이의 거리를 좁히고 데이터 전송 병목을 피하도록 연산을 오케스트레이션하는 것이다.

HBM(High Bandwidth Memory)은 GPU 내부의 고속 메모리이며, NVLink는 GPU 간의 고속 연결 인터페이스이다.

05:51

Collective Operations: 분산 프로그래밍의 기초

1980년대부터 정립된 병렬 프로그래밍의 기본 단위인 Collective Operations를 통해 여러 장치 간의 통신 패턴을 정의한다. Broadcast(한 노드에서 전체로 복사), Scatter(데이터를 쪼개어 배분), Gather(분산된 데이터를 수집), Reduce(데이터를 모아 합산 등의 연산 수행)가 기본 연산이다. 실제 LLM 학습에서는 모든 노드가 동일한 결과를 갖게 하는 All-gather와 All-reduce가 가장 빈번하게 사용되는 핵심 워크호스(Workhorse) 역할을 한다.

Rank는 각 GPU 장치의 고유 식별 번호이며, World Size는 전체 참여 장치의 개수를 의미한다.

22:06

하드웨어 토폴로지와 통신 대역폭

GPU 간 연결 방식에 따라 통신 성능이 결정되며, 현대적인 데이터 센터는 8개의 GPU를 NVLink와 NVSwitch로 묶어 하나의 고속 통신 도메인을 형성한다. B200 GPU 기준 NVLink 5.0은 초당 1.8TB의 대역폭을 제공하며, 이는 HBM 대역폭(8TB/s)의 약 1/4 수준으로 매우 빠르다. 노드 간 통신은 InfiniBand나 RDMA(Remote Direct Memory Access) 기술을 사용하여 CPU를 거치지 않고 GPU 메모리에 직접 접근함으로써 지연 시간을 최소화한다.

RDMA는 네트워크를 통해 한 컴퓨터의 메모리에서 다른 컴퓨터의 메모리로 CPU 개입 없이 데이터를 직접 전송하는 기술이다.

37:40

데이터 병렬 처리 (Data Parallelism)

전체 배치(Batch) 데이터를 GPU 개수만큼 쪼개어 각 GPU가 동일한 모델 복사본을 가지고 서로 다른 데이터를 처리하는 방식이다. 각 GPU는 로컬 데이터에 대해 Forward 및 Backward 패스를 수행하여 서로 다른 그래디언트(Gradient)를 계산한다. 이후 All-reduce 연산을 통해 모든 GPU의 그래디언트를 평균 내어 동기화하며, 이 과정에서 모든 GPU는 항상 동일한 파라미터 상태를 유지하게 된다.

DDP(Distributed Data Parallel)는 PyTorch에서 제공하는 대표적인 데이터 병렬 처리 라이브러리이다.

43:39

텐서 병렬 처리 (Tensor Parallelism)

단일 레이어의 연산(주로 행렬 곱셈) 자체를 여러 GPU에 나누어 수행하는 방식으로, 모델이 너무 커서 단일 GPU 메모리에 담기지 않을 때 사용한다. 행렬의 열(Column) 또는 행(Row)을 분할하여 각 GPU가 부분적인 연산을 수행한 뒤 All-gather를 통해 결과를 합친다. 레이어마다 빈번한 통신이 발생하므로 NVLink와 같은 매우 빠른 인터커넥트 환경에서만 효율적으로 작동한다.

Megatron-LM 아키텍처에서 제안된 방식이 현대 LLM 학습의 표준 텐서 병렬화 기법으로 쓰인다.

69:40

파이프라인 병렬 처리 (Pipeline Parallelism)

모델의 레이어들을 여러 그룹으로 나누어 서로 다른 GPU에 배치하고, 데이터를 순차적으로 통과시키는 방식이다. 한 GPU가 연산하는 동안 다른 GPU가 노는 '파이프라인 버블' 문제를 해결하기 위해 배치를 더 작은 마이크로 배치(Micro-batch)로 쪼개어 실행한다. 통신량이 상대적으로 적어 노드 간 대역폭이 낮은 환경에서도 적용 가능하지만, 구현 복잡도가 높고 버블 최적화가 필수적이다.

파이프라인 버블은 앞 단계의 연산이 끝나기를 기다리는 대기 시간을 의미한다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 04. 29.수집 2026. 04. 29.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.