🎮 GPU

멀티 GPU 통신

개요 (Overview)

멀티 GPU 통신은 대규모 AI 학습과 추론에서 여러 GPU가 효율적으로 데이터를 주고받을 수 있도록 하는 고속 인터커넥트 기술입니다. 단일 GPU의 메모리와 연산 능력이 한계에 봉착하면서, 트랜스포머 모델의 파라미터 수가 수조 개를 넘어선 현대의 대규모 언어 모델(LLM)은 반드시 여러 GPU에 걸쳐 병렬 처리되어야 합니다.

이때 GPU 간 통신 대역폭이 충분하지 않으면 모델 병렬화(Model Parallelism), 데이터 병렬화(Data Parallelism), 파이프라인 병렬화(Pipeline Parallelism)의 효율이 크게 떨어집니다. NVIDIA는 이를 해결하기 위해 NVLink, NVSwitch, NCCL 같은 전용 하드웨어와 소프트웨어 스택을 발전시켜 왔으며, 최근에는 NVLink Fusion을 통해 타 제조사 칩셋에도 확장하고 있습니다.

멀티 GPU 통신 아키텍처

멀티 GPU 통신 아키텍처

핵심 개념

NVLink

NVLink는 NVIDIA가 개발한 GPU 간 고속 직렬 인터커넥트로, PCIe 대비 최대 14배 이상의 대역폭을 제공합니다. 2014년 Pascal 아키텍처에서 처음 도입되었으며, 현재 6세대(Rubin)에 이르렀습니다. 각 NVLink는 여러 differential pair로 구성되며, GPU당 링크 수를 늘려 총 대역폭을 확장합니다.

NVLink는 포인트투포인트 연결을 기본으로 하되, 다수의 GPU가 연결될 때는 스위치를 통해 패킷 기반 라우팅을 수행합니다. 이를 통해 올투올(all-to-all) 통신이 가능해지며, 기존 PCIe의 공유 버스 구조보다 낮은 지연과 높은 대역폭을 달성합니다.

NVSwitch

NVSwitch는 여러 NVLink 연결을 중앙에서 스위칭하는 칩으로, 랙 단위의 올투올 GPU 연결을 가능하게 합니다. NVLink 4.0(Hopper)부터 도입된 NVSwitch는 각 스위치가 최대 64개의 NVLink 포트를 지원하며, NVIDIA SHARP(Scaleable Hierarchical Aggregation and Reduction Protocol) 가속기를 내장하여 네트워크 내에서 병합(reduce)과 브로드캐스트 연산을 수행합니다.

NVSwitch를 사용하면 랙 내의 모든 GPU 쌍이 최대 NVLink 속도로 직접 통신할 수 있어, 마치 하나의 거대한 GPU처럼 동작할 수 있습니다. 예를 들어 NVIDIA Vera Rubin NVL72는 72개의 GPU를 올투올 토폴로지로 연결하여 총 260 TB/s의 대역폭을 제공합니다.

NCCL (NVIDIA Collective Communications Library)

NCCL은 멀티 GPU 및 멀티 노드 환경에서 집합 연산(AllReduce, AllGather, ReduceScatter 등)을 최적화하는 소프트웨어 라이브러리입니다. NVLink, PCIe, InfiniBand, RoCE, TCP/IP 등 다양한 인터커넥트를 투명하게 지원하며, 자동으로 토폴로지를 감지하여 최적의 통신 경로를 선택합니다.

NCCL은 대규모 분산 학습에서 필수적인 도구로, 텐서 병렬화, 파이프라인 병렬화, 데이터 병렬화를 구현할 때 GPU 간 그래디언트 동기화와 텐서 전달에 사용됩니다. 노드 밖으로 통신이 확장될 때는 GPUDirect RDMA와 InfiniBand/RoCE가 결합되어 GPU 메모리에서 NIC로 직접 데이터를 전달하고, 노드 안에서는 NVLink/NVSwitch가 scale-up 패브릭 역할을 맡습니다.

NVLink Fusion

NVLink Fusion은 2025년에 발표된 기술로, 타 제조사의 ASIC이나 CPU가 NVIDIA NVLink 기술을 사용할 수 있도록 라이선스하는 플랫폼입니다. 이를 통해 하이퍼스케일러와 시스템 벤더는 NVIDIA GPU뿐 아니라 자사 가속기나 CPU를 같은 scale-up 패브릭에 묶는 구성을 검토할 수 있습니다.

Scale-up과 Scale-out

멀티 GPU 통신은 보통 노드 내부의 scale-up과 노드 간 scale-out으로 나뉩니다. scale-up은 한 서버나 랙 안에서 NVLink, NVSwitch, NVLink-C2C 같은 고대역폭 인터커넥트로 GPU를 촘촘히 연결하는 방식이고, scale-out은 여러 서버를 InfiniBand나 Ethernet(RoCE)으로 묶어 클러스터 전체를 확장하는 방식입니다.

대규모 AI 학습에서는 이 둘을 분리해서 이해하는 것이 중요합니다. 텐서 병렬화나 Expert 병렬화처럼 통신량이 매우 많은 패턴은 가능하면 scale-up 도메인 안에 배치하고, 데이터 병렬화처럼 상대적으로 느슨한 동기화는 scale-out으로 확장하는 식으로 토폴로지를 설계해야 전체 효율이 올라갑니다.

비교/분석

NVLink 세대별 비교

세대 아키텍처 GPU당 링크 수 GPU당 대역폭 스위치 GPU 도메인 총 대역폭(NVL72)
NVLink 1.0 Pascal 4 160 GB/s - -
NVLink 2.0 Volta 6 300 GB/s 8 -
NVLink 3.0 Ampere 12 600 GB/s 8 -
NVLink 4.0 Hopper 18 900 GB/s 8/72 130 TB/s
NVLink 5.0 Blackwell 18 1,800 GB/s 8/72 130 TB/s
NVLink 6.0 Rubin 36 3,600 GB/s 8/72 260 TB/s

PCIe vs NVLink 비교

항목 PCIe Gen5 x16 NVLink 4.0 NVLink 6.0
대역폭 128 GB/s 양방향급 GPU당 900 GB/s 양방향 GPU당 3,600 GB/s 양방향
지연 시간 높음 낮음 매우 낮음
토폴로지 공유 버스/스위치 포인트투포인트 + 스위치 포인트투포인트 + 스위치
주요 용도 범용 I/O GPU-GPU 통신 GPU-GPU 통신
CPU-GPU 연결 일반적 GH200 Superchip에서 NVLink-C2C Grace Rubin에서 NVLink-C2C

병렬화 전략과 통신 요구사항

병렬화 전략 통신 패턴 대역폭 요구 적합한 인터커넥트
데이터 병렬화 AllReduce 높음 NVLink + NCCL
텐서 병렬화 AllReduce / ReduceScatter 매우 높음 NVLink (노드 내)
파이프라인 병렬화 Point-to-Point 중간 NVLink / PCIe
Expert 병렬화 All-to-All 매우 높음 NVLink + NVSwitch

동작 원리

NVLink 물리 계층

NVLink는 differential pair 기반의 고속 직렬 링크입니다. 각 링크는 두 개의 sub-link(송수신 각각)로 구성되며, NVLink 3.0부터는 4개의 differential pair가 하나의 sub-link를 형성합니다. 최신 NVLink 6.0은 100 GT/s의 전송 속도를 달성하며, PAM4(Pulse Amplitude Modulation 4-level) 변조를 사용하여 기존 NRZ 대비 2배의 데이터 레이트를 달성합니다.

NVSwitch 스위칭 메커니즘

NVSwitch는 크로스바 스위치 매트릭스를 통해 NVLink 포트 간 패킷 라우팅을 수행합니다. 각 스위치 칩은 최대 64개의 NVLink 포트를 지원하며, 비차단(non-blocking) 아키텍처로 모든 포트 쌍이 동시에 최대 속도로 통신할 수 있습니다.

NVSwitch 4.0부터는 SHARP 가속기가 내장되어, 네트워크 내에서 연산이 수행될 수 있습니다. 예를 들어 AllReduce 연산 시 데이터가 스위치에서 직접 병합되어 불필요한 중간 전송을 줄이고, 전체 통신 대역폭을 절약합니다.

DGX/HGX 시스템의 NVLink 토폴로지

NVIDIA DGX 시스템은 NVSwitch를 사용하여 8개의 GPU를 올투올 토폴로지로 연결합니다. DGX H100의 경우 각 GPU는 18개의 NVLink 4.0 링크를 통해 최대 900 GB/s의 양방향 대역폭을 제공하며, NVSwitch는 이 모든 연결을 비차단 방식으로 스위칭합니다.

NVL72 랙 시스템에서는 72개의 GPU가 여러 NVSwitch를 통해 올투올 연결되며, 단일 랙에서 3.6 엑사플로프의 AI 연산 능력과 260 TB/s의 GPU 간 대역폭을 달성합니다. 이를 통해 모델 병렬화 시 노드 간 통신 병목을 최소화하고, 하나의 거대한 GPU처럼 동작할 수 있습니다.

NCCL 통신 최적화

NCCL은 토폴로지를 자동으로 감지하고, NVLink, PCIe, 네트워크 간 최적의 통신 트리와 링을 구성합니다. 집합 연산은 트리 기반 알고리즘과 파이프라이닝을 통해 최소 지연으로 수행되며, NVSwitch SHARP를 지원하는 시스템에서는 reduce와 multicast 일부를 패브릭 내부에서 처리해 GPU가 직접 옮겨야 하는 바이트 수를 줄일 수 있습니다.

장단점

장점

  • PCIe 대비 10~14배의 높은 GPU 간 대역폭으로 모델 병렬화 효율 극대화
  • NVSwitch를 통한 올투올 연결로 랙 단위 통신 병목 제거
  • SHARP 가속기로 네트워크 내 연산이 가능하여 불필요한 전송 절감
  • NCCL 라이브러리로 다양한 토폴로지에서 최적의 통신 자동 구성
  • NVLink Fusion을 통한 타 제조사 칩셋과의 호환성 확보
  • 노드 내부 scale-up과 노드 간 scale-out 역할을 분리해 병렬화 전략에 맞는 토폴로지 설계 가능

단점

  • NVLink/NVSwitch는 NVIDIA 전용 기술로, 다른 GPU 벤더와 호환되지 않음
  • 높은 전력 소비와 발열로 냉각 인프라 비용 증가
  • SXM 폼 팩터에 최적화되어 있어 PCIe 카드에서는 대역폭이 제한됨
  • 대규모 NVLink 패브릭의 비용이 높아 소규모 배포에서는 비효율적
  • NVLink Fusion이 아직 초기 단계로, 생태계 구축이 진행 중
  • 노드 간 확장 자체는 별도의 InfiniBand/Ethernet 패브릭과 운영 노하우가 필요함

관련 기술 / 참고 문헌

자료 링크 연결점
NVIDIA NVLink & NVSwitch https://www.nvidia.com/en-us/data-center/nvlink/ NVLink/NVSwitch 공식 사양
NVIDIA NVLink Fusion https://www.nvidia.com/en-us/data-center/nvlink-fusion/ 이기종 scale-up 패브릭 확장 방향
NVIDIA Blackwell Architecture Technical Overview https://resources.nvidia.com/en-us-blackwell-architecture NVLink 5.0 사양과 아키텍처
NVIDIA Vera Rubin NVL72 https://www.nvidia.com/en-us/data-center/vera-rubin-nvl72/ 72 GPU 올투올 시스템
NVIDIA NCCL https://developer.nvidia.com/nccl 멀티 GPU 통신 라이브러리
NVLink - Wikipedia https://en.wikipedia.org/wiki/NVLink NVLink 역사와 세대별 사양
GPU 메모리 아키텍처 기초 gpu_0005_gpu_memory_architecture_basics.html GPU 메모리 계층 배경
CUDA 메모리 관리 gpu_0010_cuda_memory_management.html CUDA 메모리 관리 API
GPU 메모리 최적화 기법 gpu_0015_gpu_memory_optimization.html GPU 메모리 최적화 전략
GPU 메모리 코일레싱 gpu_0020_gpu_memory_coalescing.html 메모리 접근 패턴 최적화
LLM 서빙 메모리 중심 연구 ../llm/llm_0003_memory_centric_llm_serving_survey.html LLM 서빙에서의 멀티 GPU 통신
MoE 서빙 라우팅과 로드 밸런싱 ../llm/llm_0075_moe_serving_routing_loadbalance.html MoE 모델의 멀티 GPU 통신 패턴

핵심 정리

멀티 GPU 통신은 현대의 대규모 AI 모델을 학습하고 추론하는 데 필수적인 인프라입니다. NVLink는 GPU 간 고속 직렬 인터커넥트로, PCIe 대비 10~14배의 대역폭을 제공하며, NVSwitch는 이를 랙 전체로 확장하여 올투올 연결을 가능하게 합니다. NCCL은 이러한 하드웨어 위에서 최적의 통신 알고리즘을 자동으로 선택하여 대규모 분산 학습의 효율을 높입니다.

최근에는 NVLink 6.0(Rubin)이 GPU당 3.6 TB/s의 대역폭을 달성했고, NVLink Fusion은 NVIDIA 외의 CPU·ASIC까지 같은 scale-up 패브릭으로 묶는 방향을 제시하고 있습니다. 향후 멀티 GPU 시스템은 단일 벤더 GPU 묶음을 넘어, 이기종 가속기까지 포함하는 고밀도 패브릭 구조로 발전할 가능성이 큽니다.