본문 바로가기
[GPUaaS]/GPUmgt

[🚀 NVIDIA] NCCL, NVLink, InfiniBand 완벽 이해 (초보자용)

by METAVERSE STORY 2026. 4. 29.
반응형

 

 

 

 

🔥 한 줄 핵심 정리

👉 NCCL은 통신을 제어하는 소프트웨어, NVLink와 InfiniBand는 데이터가 이동하는 길이다

AI 프레임워크 (PyTorch / TensorFlow)

NCCL (통신 제어)

데이터 이동

서버 내부: NVLink
서버 간: InfiniBand
 

 

🧠 NCCL이란?

👉 NVIDIA Collective Communications Library

✔ NVIDIA에서 만든 GPU 통신 라이브러리
✔ 멀티 GPU / 분산 학습에서 필수

👉 쉽게 말하면:

GPU들이 서로 데이터를 주고받게 해주는 통신 엔진


 

⚙️ NCCL이 하는 일

📡 Broadcast

👉 한 GPU → 전체 GPU 전파

🔄 AllReduce ⭐ (가장 중요)

👉 여러 GPU 결과를 합쳐 다시 전체 공유

📦 AllGather

👉 모든 GPU 데이터를 모아서 공유

✂️ ReduceScatter

👉 합친 데이터를 다시 나눔


 

🚀 NVLink란?

👉 NVIDIA GPU 전용 고속 연결 기술

✔ 같은 서버 내부 GPU끼리 연결
✔ PCIe보다 훨씬 빠름

같은 서버 내부

GPU0 ─ NVLink ─ GPU1
GPU2 ─ NVLink ─ GPU3
GPU4 ─ NVLink ─ GPU5
GPU6 ─ NVLink ─ GPU7
 

👉 한 줄 정의:

서버 내부 GPU 전용 초고속 도로


 

🌐 InfiniBand란?

👉 서버와 서버를 연결하는 초고속 네트워크

✔ 대규모 AI 학습 필수
✔ Ethernet보다 훨씬 빠르고 지연 낮음

서버 A                                        서버 B
GPU 8장                                 GPU 8장
│                                                    │
└──── InfiniBand ─────────┘
 

👉 한 줄 정의:

서버 간 GPU 연결용 고속철도


 

🔗 셋의 관계 (핵심)

NCCL = 통신을 지휘하는 소프트웨어
NVLink = 같은 서버 내부 통신 경로
InfiniBand = 서버 간 통신 경로
 

👉 즉:

NCCL이 명령하고, NVLink/InfiniBand가 실제로 데이터를 전달한다


 

🧩 초보자 비유

구성요소 비유 역할
GPU 작업자 계산 수행
NCCL 물류 시스템 데이터 전달 지시
NVLink 사내 고속도로 서버 내부 이동
InfiniBand 도시 간 철도 서버 간 이동

 

💥 실제 장애 로그 해석

문제 로그 👇

Watchdog caught collective operation timeout
OpType=BROADCAST
 

👉 의미:

GPU 간 통신이 멈춰서 전체 작업이 멈춤

👉 즉:

특정 GPU 또는 통신 경로 하나가 죽어서 전체 대기 상태

 


 

⚠️ NCCL 장애 특징 (중요)

👉 한 개라도 문제 생기면 전체 멈춤

GPU 8개 중 1개 문제

NCCL 통신 대기

전체 학습 멈춤

Timeout 발생
 

 

🧨 NCCL Timeout 주요 원인

🔥 GPU 문제

  • Xid 에러
  • ECC 에러
  • GPU hang

🔥 CUDA 문제

  • CUDA API deadlock
  • CudaEventDestroy hang

🔥 NVLink 문제

  • GPU 간 연결 이상
  • Fabric Manager 다운

🔥 InfiniBand 문제

  • IB link down
  • HCA 오류

🔥 코드 문제

  • rank 간 sync 불일치
  • deadlock

 

 

🔧 실무 점검 순서

🧪 1. GPU 상태

 
nvidia-smi
dmesg | grep -i xid
 

🔌 2. NVLink 상태

 
nvidia-smi topo -m
nvidia-smi nvlink -s
systemctl status nvidia-fabricmanager
 

🌐 3. InfiniBand 상태

 
ibstat
ibv_devinfo
 

⚡ 4. NCCL 테스트

 
all_reduce_perf -b 8 -e 4G -f 2 -g 8
 

 

🎯 최종 정리

👉 핵심만 기억하면 된다

✔ NCCL = 통신 제어
✔ NVLink = 서버 내부 GPU 연결
✔ InfiniBand = 서버 간 GPU 연결


 

💡 진짜 한 줄 정리

NCCL이 데이터 이동을 지휘하고, 같은 서버 안에서는 NVLink를 타고, 서버 밖으로는 InfiniBand를 타고 이동한다

 

 

반응형

댓글