brief.ing.gg

WIKI

NVLink

NVLink

GPU 간 고속 연결이 모델 추론과 메모리 운용에 어떤 영향을 주는가.

Scope

핵심 질문

NVLink는 GPU 간 통신을 어떻게 빠르게 하며, LLM 추론에서 언제 실제 성능 차이를 만드는가?

포함 범위

  • GPU interconnect
  • PCIe와의 개념적 차이
  • peer-to-peer 전송
  • Tensor Parallelism과의 관계
  • VRAM 통합에 대한 오해

제외 범위

  • 세대별 정확한 링크 대역폭 표
  • 특정 GPU 구매 추천

Research

핵심 근거

  • NVLink는 NVIDIA가 제공하는 GPU 간 고속 interconnect 기술이다.
  • 여러 GPU가 연결돼도 각 GPU의 VRAM은 기본적으로 독립적이며 소프트웨어가 분산 메모리를 관리한다.
  • Tensor Parallelism처럼 매 레이어에서 collective communication이 발생하는 워크로드는 interconnect 성능의 영향을 크게 받는다.
  • 단순 layer split은 통신 패턴이 달라 NVLink의 이득이 workload에 따라 달라진다.

참고 자료

  • NVIDIA NVLink documentation: https://docs.nvidia.com/
  • Megatron-LM: https://arxiv.org/abs/1909.08053

Draft

NVLink는 NVIDIA GPU 사이에 데이터를 빠르게 전달하기 위한 고속 interconnect 기술이다.

여러 GPU를 이용하는 LLM 추론에서는 모델을 어떻게 나누느냐에 따라 GPU 간 데이터 이동이 자주 발생한다. 이때 PCIe보다 빠른 GPU 간 연결은 통신 병목을 줄일 수 있다.

NVLink가 VRAM을 하나로 합치는가

사용자 입장에서 가장 흔한 오해다.

NVLink로 두 GPU를 연결해도 일반적으로 두 GPU가 자동으로 하나의 거대한 VRAM 공간이 되는 것은 아니다. 각 GPU는 여전히 자신의 로컬 메모리를 가지고 있다.

모델 병렬 런타임이 각 GPU에 가중치와 KV Cache를 나누고 필요할 때 데이터를 전송한다.

따라서 24GB GPU 두 장이 있다고 해서 모든 프로그램이 자동으로 48GB GPU 한 장처럼 인식하지 않는다.

어디서 성능 차이가 생기는가

Tensor Parallelism에서는 하나의 레이어 계산을 여러 GPU가 나눠 수행한다.

각 GPU가 부분 결과를 계산한 뒤 all-reduce나 all-gather 같은 collective communication으로 결과를 결합해야 하므로 레이어마다 통신이 반복된다.

이런 워크로드에서는 GPU 간 통신속도가 낮으면 계산장치가 서로 기다리게 된다. NVLink 같은 고속 interconnect가 효과를 내기 쉬운 이유다.

레이어 분할에서는 양상이 다르다

모델 레이어를 GPU별로 나누는 방식에서는 activation이 한 GPU에서 다음 GPU로 이동한다.

통신은 필요하지만 Tensor Parallelism처럼 같은 레이어 안에서 반복적으로 collective operation이 발생하는 구조와는 다르다.

따라서 단순한 GPU split에서는 NVLink가 있어도 기대만큼 큰 차이가 나지 않을 수 있다.

PCIe도 항상 느린 것은 아니다

작은 모델이나 batch가 작고 GPU 간 데이터 이동량이 적다면 PCIe만으로 충분할 수 있다.

반대로 대규모 모델을 높은 batch로 처리하거나 여러 GPU가 지속적으로 데이터를 교환한다면 interconnect 대역폭과 latency가 중요한 병목이 된다.

LLM에서 확인할 것

NVLink의 유무만 보는 것보다 다음을 함께 봐야 한다.

  • 어떤 병렬화 방식을 사용하는가
  • GPU 간 통신량이 얼마나 되는가
  • 계산 대비 통신 비중이 얼마나 큰가
  • batch와 sequence length가 어떤가
  • 런타임이 실제 peer-to-peer 통신을 잘 사용하는가

핵심

NVLink는 여러 GPU를 하나의 GPU로 만드는 기술이 아니라 GPU 사이 통신비용을 줄이는 기술이다. LLM에서는 통신이 잦은 Tensor Parallelism과 대규모 multi-GPU serving에서 가치가 크고, 단순히 모델을 여러 VRAM에 나눠 싣는 용도에서는 이득이 제한적일 수 있다.