GPU 클러스터 용어 사전¶
GPU 클러스터 네트워킹(RDMA, InfiniBand), GPU 하드웨어(NVIDIA vs AMD), 분산 AI 추론(vLLM, SGLang) 등 핵심 용어를 정리한다.
1. RDMA & InfiniBand 네트워킹¶
RDMA (Remote Direct Memory Access)¶
- 정의: CPU를 거치지 않고 네트워크 카드(NIC)가 원격 서버의 메모리에 직접 접근하는 기술
- 핵심 특징: Zero-copy, Kernel bypass, CPU offload
- 레이턴시: ~1μs (TCP/IP는 ~100μs)
- 사용 사례: GPU AllReduce, 분산 스토리지, HPC
RDMA 프로토콜 종류:
| 프로토콜 | 네트워크 | 성능 | 특징 |
|---|---|---|---|
| InfiniBand (IB) | 전용 IB | 최고 (NDR 400Gbps) | 전용 하드웨어, 최저 지연시간 |
| RoCE v2 | 이더넷 | 높음 | IP 라우팅 가능, 기존 인프라 활용 |
| RoCE v1 | 이더넷 | 높음 | Layer 2 전용 (VLAN 내부만) |
| iWARP | 이더넷 | 중간 | TCP/IP 기반, 라우팅 가능 |
RoCE (RDMA over Converged Ethernet)¶
- 정의: 이더넷 네트워크에서 RDMA를 구현하는 프로토콜
- v1 vs v2: v1은 Layer 2 전용 (VLAN 내부), v2는 Layer 3 지원 (IP 라우팅, UDP 캡슐화)
- 장점: 기존 이더넷 인프라 재사용, InfiniBand 대비 저렴
- 단점: PFC(Priority Flow Control), ECN(Explicit Congestion Notification) 등 네트워크 튜닝 필수
- 주요 사용처: 클라우드 GPU 클러스터 (AWS EFA, Azure InfiniBand)
RoCEv2 (RDMA over Converged Ethernet v2)¶
- 정의: RoCE의 개선 버전, IP/UDP 위에서 동작
- 프로토콜 스택:
RDMA → IB Transport → UDP → IP → Ethernet - UDP 포트: 4791 (기본값)
- 핵심 개선: IP 라우팅 지원 → 서브넷 간 통신 가능
ECMP(Equal-Cost Multi-Path) 로드밸런싱 활용
VLAN, ACL 등 이더넷 기능 사용 가능 - 요구사항: DCB(Data Center Bridging), PFC, ECN
QP (Queue Pair)¶
- 정의: RDMA 통신의 기본 단위. 송신 큐(Send Queue)와 수신 큐(Receive Queue)로 구성
- 역할: 각 통신 세션마다 하나의 QP 생성 (TCP 소켓과 유사)
Transport 타입 비교:
| 타입 | 비유 | 신뢰성 | 연결성 | RDMA Read/Atomic | 용도 |
|---|---|---|---|---|---|
| RC | TCP | O 보장 | 1:1 연결 | O 가능 | 대부분 사용 (NCCL, MPI, UCX) |
| UC | - | X 재전송 없음 | 1:1 연결 | X 불가능 | 스트리밍 (패킷 손실 허용) |
| UD | UDP | X 보장 없음 | 1:N | X 불가능 | 멀티캐스트, 서비스 발견 |
| DC | - | O 보장 | 동적 연결 | O 가능 | 대규모 클러스터 (QP 수 절약) |
RC가 기본인 이유: - RDMA Read와 Atomic 연산이 RC에서만 동작 - NCCL, UCX, MPI 등 모든 주요 라이브러리가 RC 사용 - GPU 간 AllReduce는 RDMA Write + Read 조합 필요 → RC 필수
DC (Dynamically Connected): - 수천 개 노드 환경에서 QP 수를 줄이기 위해 사용 - 예: 1,000 노드 × RC → 100만 개 QP vs DC → 1,000개 QP - Mellanox ConnectX-4 이상에서 지원
상태 머신: RESET → INIT → RTR(Ready To Receive) → RTS(Ready To Send) → SQD → ERROR
예시: NCCL AllReduce 시 각 GPU 쌍마다 RC QP 생성 (RDMA Write + Read 사용)
GID (Global Identifier)¶
- 정의: InfiniBand/RoCE에서 각 포트를 식별하는 128비트 주소
- 형식: IPv6 주소와 유사 (예:
fe80::7a2b:cbff:fe9e:3d4f) - 타입: GID 0 (Link-Local):
fe80::/64, Layer 2 전용, 라우팅 불가
GID 1+ (Routable): IP 기반 GID, Layer 3 라우팅 가능 - 확인 방법: `ibv_devinfo -v \
- 용도: QP 생성 시 로컬/원격 GID 지정, RoCEv2 통신 엔드포인트
HCA (Host Channel Adapter)¶
- 정의: InfiniBand 네트워크 인터페이스 카드 (NIC의 InfiniBand 버전)
- 역할: RDMA 오프로드 (CPU 대신 DMA 수행)
QP, CQ(Completion Queue), Memory Registration 관리
Verbs API 제공 (ibv_post_send, ibv_post_recv 등) - 주요 제조사: NVIDIA/Mellanox (ConnectX 시리즈), Intel
- 모델 예시: ConnectX-7: NDR InfiniBand 400Gbps
ConnectX-6 Dx: HDR InfiniBand 200Gbps, RoCEv2 지원 - GPU와 연결: PCIe 또는 NVLink 직결 (GPUDirect RDMA)
Fabric¶
- 정의: 네트워크 스위치와 HCA로 구성된 전체 상호연결 네트워크
- 토폴로지: Fat-Tree: Leaf-Spine 구조, 서버 간 풀 대역폭 (non-blocking)
Dragonfly: 계층적 구조, 장거리 링크 최소화
Rail-Optimized: GPU 단위로 전용 스위치 할당 (NVIDIA Quantum-X) - 주요 스위치: NVIDIA Quantum-2 (NDR 400Gbps), Arista 7800R4
- 성능 지표: Bisection Bandwidth: 클러스터를 반으로 나눴을 때 대역폭
Hop Count: 노드 간 스위치 경유 횟수
2. GPU 하드웨어¶
NVIDIA GPU 세대별 아키텍처¶
| 세대 | 마이크로아키텍처 | 주요 GPU | Tensor Core | FP8 지원 | 메모리 | NVLink | 출시 |
|---|---|---|---|---|---|---|---|
| Ampere | GA100/102 | A100 (80GB), A30 | 3세대 | X | HBM2e | NVLink 3.0 (600GB/s) | 2020 |
| Hopper | GH100 | H100 (80GB), H200 (141GB) | 4세대 | O | HBM3/3e | NVLink 4.0 (900GB/s) | 2022 |
| Blackwell | GB100 | B100, B200 (192GB) | 5세대 | O | HBM3e | NVLink 5.0 (1.8TB/s) | 2024 |
| Rubin | GR100 | R100 | 6세대 | O | HBM4 | NVLink 6.0 (3.6TB/s) | 2026 H2 (예정) |
핵심 차이점: - H100 vs A100: FP8 지원 (2배 추론 성능), Transformer Engine, NVLink 대역폭 1.5배 - B200 vs H100: NVLink 대역폭 2배, 메모리 2.4배, FP4/FP6 추가
NVIDIA vs AMD 세대별 맞춤 비교¶
세대별 대응 관계:
2020-2021: NVIDIA A100 (Ampere) ←→ AMD MI250X (CDNA2)
2022-2023: NVIDIA H100 (Hopper) ←→ AMD MI300X (CDNA3)
2024-2025: NVIDIA B200 (Blackwell) ←→ AMD MI350X (CDNA4)
1세대 대결: A100 vs MI250X (2020-2021)¶
| 항목 | NVIDIA A100 | AMD MI250X | 승자 |
|---|---|---|---|
| 메모리 | 80GB HBM2e, 2.0 TB/s | 128GB HBM2e, 3.2 TB/s | ● AMD (1.6배 많음, 1.6배 빠름) |
| FP64 (HPC) | 9.7 TFLOPS | 47.9 TFLOPS | ● AMD |
| FP16 (AI 학습) | 312 TFLOPS | 383 TFLOPS | ● AMD |
| FP8 (AI 추론) | X 미지원 | X 미지원 | 무승부 |
| GPU 간 인터커넥트 | NVLink 3.0 (600 GB/s) | Infinity Fabric 3.0 (400 GB/s) | 🟢 NVIDIA (1.5배 빠름) |
| TDP | 400W | 560W | 🟢 NVIDIA |
| 소프트웨어 | CUDA (성숙) | ROCm (초기) | 🟢 NVIDIA |
| 가격 | $10-15K | $10-12K | ● AMD |
결론: NVIDIA는 CUDA 생태계로 AI 시장 장악, AMD는 HPC(슈퍼컴퓨터) 공략
2세대 대결: H100 vs MI300X (2022-2023)¶
| 항목 | NVIDIA H100 | AMD MI300X | 승자 |
|---|---|---|---|
| 메모리 | 80GB HBM3, 3.35 TB/s (H200: 141GB, 4.8TB/s) |
192GB HBM3, 5.3 TB/s | ● AMD |
| FP64 (HPC) | 34 TFLOPS | 163 TFLOPS | ● AMD |
| FP8 | 3,958 TFLOPS | 2,614 TFLOPS | 🟢 NVIDIA |
| FP16 | 1,979 TFLOPS | 1,307 TFLOPS | 🟢 NVIDIA |
| GPU 간 인터커넥트 | NVLink 4.0 (900 GB/s) | Infinity Fabric 4.0 (896 GB/s) | 🟢 NVIDIA |
| TDP | 700W | 750W | 🟢 NVIDIA |
| 특수 기능 | Transformer Engine | APU 통합 메모리 | 각자 차별화 |
| 가격 | $30-40K (H200: $50K+) | $15-20K | ● AMD |
결론: NVIDIA는 FP8 추론 성능으로 LLM 추론 시장 선도, AMD는 대용량 메모리로 롱컨텍스트 모델 공략
3세대 대결: B200 vs MI350X (2024-2025)¶
| 항목 | NVIDIA B200 | AMD MI350X | 승자 |
|---|---|---|---|
| 아키텍처 | Blackwell (GB100), TSMC 4NP | CDNA4, TSMC N3P (3nm) | ● AMD |
| 트랜지스터 | 208B | 185B | 🟢 NVIDIA |
| 메모리 | 192GB HBM3e, 8 TB/s | 288GB HBM3e, 8 TB/s | ● AMD |
| FP8 | 9,000 TFLOPS | ~6,000 TFLOPS (추정) | 🟢 NVIDIA |
| FP4 지원 | O (MXFP4, MXFP6) | O (MXFP4, MXFP6) | 무승부 (둘 다 지원) |
| GPU 간 인터커넥트 | NVLink 5.0 (1,800 GB/s) | Infinity Fabric Link (1,120 GB/s) | 🟢 NVIDIA |
| TDP | 1,000W (air-cooled) | 1,000W (MI350X, air) 1,400W (MI355X, liquid) |
무승부 |
| 폼팩터 | SXM6 | OAM 2.0 | 각자 표준화 |
| 특수 기능 | NVLink Switch 72-way | 256 CU, 520B+ 파라미터 단일 GPU | ● AMD |
| 가격 | $60-70K | $30-40K (추정) | ● AMD |
| 소프트웨어 | CUDA 13.2+, cuDNN 9.0+ | ROCm 7.2+, MIOpen 3.2+ | 🟢 NVIDIA |
결론: NVIDIA는 NVLink 5.0 + FP8 성능 우위, AMD는 288GB 메모리 + 가성비로 롱컨텍스트 모델 공략
주요 차이점: - 메모리: MI350X의 288GB는 520B+ 파라미터 모델을 단일 GPU에서 실행 가능 (B200은 192GB) - 인터커넥트: B200의 NVLink 5.0 (1.8TB/s)이 MI350X Infinity Fabric (1.12TB/s) 대비 1.6배 빠름 - 가격: MI350X는 B200 대비 50% 저렴 (클라우드 제공자들에게 매력적)
전체 요약: - NVIDIA 강점: FP8 추론, NVLink 대역폭, CUDA 생태계, Transformer Engine - AMD 강점: 메모리 용량, FP64 HPC, 가격 경쟁력 (NVIDIA 대비 50-60%) - 시장 점유율: NVIDIA 90%+ (AI 워크로드), AMD 10%- (HPC/가성비 추구)
AMD GPU 세대별 아키텍처¶
| 세대 | 마이크로아키텍처 | 주요 GPU | Matrix Core | FP8 지원 | 메모리 | Infinity Fabric | 출시 |
|---|---|---|---|---|---|---|---|
| CDNA 2 | CDNA2 | MI250X (128GB) | 2세대 | X | HBM2e | IF 3.0 (400GB/s) | 2021 |
| CDNA 3 | CDNA3 | MI300X (192GB) | 3세대 | O | HBM3 | IF 4.0 (896GB/s) | 2023 |
특징: - MI300X: CPU-GPU 통합 패키지, HBM3 192GB (H100 대비 2.4배), ROCm 6.0+ - MI350X: CDNA4, 288GB HBM3e, 8TB/s, FP4/FP6 지원, ROCm 7.2+ - Infinity Fabric: AMD의 GPU 간 인터커넥트 (NVIDIA NVLink와 유사)
CUDA vs ROCm¶
CUDA (Compute Unified Device Architecture)¶
- 정의: NVIDIA GPU 프로그래밍을 위한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델
- 개발사: NVIDIA
- 지원 하드웨어: NVIDIA GPU 전용 (GeForce, Quadro, Tesla, A100, H100, B200)
- 언어: CUDA C/C++ (확장 문법), Python (CuPy, Numba), Fortran
- 아키텍처: Application → CUDA Libraries (cuBLAS, cuDNN, NCCL) → CUDA Runtime API → CUDA Driver API → NVIDIA GPU Driver → Hardware
- 주요 라이브러리: cuBLAS (선형대수), cuDNN (딥러닝 연산), NCCL (다중 GPU 통신), cuSPARSE (희소 행렬), TensorRT (추론 최적화)
- 장점: 압도적인 생태계 (PyTorch, TensorFlow, JAX)
성숙한 툴체인 (Nsight, CUDA-GDB, nvprof)
광범위한 문서 및 커뮤니티
최신 GPU 기능 즉시 지원 (Tensor Core, FP8) - 단점: NVIDIA GPU에만 종속 (벤더 락인)
ROCm (Radeon Open Compute platform)¶
- 정의: AMD GPU 및 CPU를 위한 오픈소스 병렬 컴퓨팅 플랫폼
- 개발사: AMD
- 지원 하드웨어: AMD GPU (Instinct MI 시리즈, Radeon Pro), AMD CPU (부분 지원)
- 언어: HIP (Heterogeneous-compute Interface for Portability), OpenCL, OpenMP
- 아키텍처: Application → ROCm Libraries (rocBLAS, MIOpen, RCCL) → HIP Runtime API → ROCm Runtime → AMD GPU Driver → Hardware
- 주요 라이브러리: rocBLAS (cuBLAS 대응), MIOpen (cuDNN 대응), RCCL (NCCL 대응), rocFFT (cuFFT 대응), hipify-perl (CUDA 변환)
- 장점: 오픈소스 (Apache 2.0)
CUDA 코드 포팅 가능 (HIP으로 90%+ 자동 변환)
멀티벤더 지원
클라우드 가성비 (MI300X가 H100 대비 50% 저렴) - 단점: CUDA 대비 낮은 성숙도 (버그, 누락 기능)
제한된 프레임워크 지원
작은 문서/커뮤니티
최신 기능 지연 (FP8 지원 1-2년 늦음)
CUDA vs ROCm 직접 비교¶
| 항목 | CUDA | ROCm | 승자 |
|---|---|---|---|
| 지원 하드웨어 | NVIDIA GPU 전용 | AMD GPU, 일부 CPU | 🟢 ROCm |
| 라이선스 | 독점 (Proprietary) | 오픈소스 (Apache 2.0) | 🟢 ROCm |
| 생태계 성숙도 | 압도적 (18년 역사) | 성장 중 (9년 역사) | ● CUDA |
| 프레임워크 지원 | PyTorch O, TensorFlow O, JAX O | PyTorch O, TensorFlow △, JAX △ | ● CUDA |
| 성능 (동급 GPU) | Baseline | 90-95% (일부 워크로드) | ● CUDA (근소) |
| CUDA 호환성 | N/A | HIP으로 90%+ 포팅 가능 | 🟢 ROCm |
| 딥러닝 라이브러리 | cuDNN (최적화 OO) | MIOpen | ● CUDA |
| 디버깅 툴 | Nsight, cuda-gdb, nvprof | rocgdb, rocprof | ● CUDA |
| 문서/커뮤니티 | 방대함 | 제한적 | ● CUDA |
| 가격 | GPU 가격 높음 | GPU 가격 낮음 (50% 저렴) | 🟢 ROCm |
| 최신 기능 지원 | 즉시 (FP8, TMA) | 1-2년 지연 | ● CUDA |
사용 권장 사항: - CUDA 선택: - 프로덕션 AI 워크로드 (안정성 중요) - 최신 GPU 기능 필요 (Transformer Engine, FP4) - 광범위한 프레임워크 지원 필요 - ROCm 선택: - HPC/과학 컴퓨팅 (FP64 성능 중요) - 오픈소스 스택 선호 - 클라우드 비용 절감 (MI300X/MI350X 가성비) - CUDA 코드 포팅 가능 (HIP 활용)
CUDA → ROCm 포팅 예시:
# CUDA 코드 (matmul.cu)
__global__ void matmul(float *A, float *B, float *C, int N) {
int row = blockIdx.y * blockDim.y + threadIdx.y;
int col = blockIdx.x * blockDim.x + threadIdx.x;
float sum = 0.0f;
for (int i = 0; i < N; i++) {
sum += A[row * N + i] * B[i * N + col];
}
C[row * N + col] = sum;
}
# HIP으로 자동 변환
hipify-perl matmul.cu > matmul.hip
# HIP 코드 (차이 거의 없음)
__global__ void matmul(float *A, float *B, float *C, int N) {
int row = hipBlockIdx_y * hipBlockDim_y + hipThreadIdx_y; // cuda → hip 접두사만 변경
int col = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x;
// ... 나머지 동일
}
NIC (Network Interface Card)¶
- 정의: 서버를 네트워크에 연결하는 하드웨어 인터페이스
- RDMA 지원 NIC: InfiniBand HCA: Mellanox ConnectX-7 (NDR 400Gbps), ConnectX-6 Dx (HDR 200Gbps)
RoCE NIC: Broadcom P2100G (100Gbps), Marvell FastLinQ (25/100Gbps)
iWARP NIC: Intel E810 (100Gbps, TCP/IP 기반 RDMA) - 일반 이더넷 NIC: Intel X710 (10Gbps), Mellanox ConnectX-4 Lx (25Gbps)
표준 TCP/UDP 소켓 사용 (커널 스택 경유) - 통신 프로토콜: RDMA: 레이턴시 1-5μs, CPU 사용률 낮음, 커널 우회
TCP: 레이턴시 50-100μs, 신뢰성 보장, 재전송
UDP: 레이턴시 10-50μs, 비연결형, 패킷 손실 가능 - 사용 사례: RDMA: NCCL AllReduce, 분산 학습
TCP: API 서버, DB 복제
UDP: Mooncake KV cache 전송
3. NCCL & GPU 통신 라이브러리¶
NCCL¶
- 정의: NVIDIA GPU 간 집합 통신(All-Reduce, All-Gather 등)을 최적화한 라이브러리
- 핵심 알고리즘: Ring AllReduce: 대역폭 효율적, O(N) 통신
Tree AllReduce: 레이턴시 효율적, O(log N)
Double Binary Tree: NCCL 2.4+ 기본값 - 지원 백엔드: NVLink/NVSwitch: 서버 내 GPU-GPU
PCIe: CPU를 거치는 fallback
InfiniBand/RoCE: 서버 간 GPU-GPU
TCP/IP: 범용 네트워크 (성능 낮음) - 버전: NCCL 2.30.4 (2026년 4월)
NCCL IB Plugin (nccl-rdma-sharp-plugins)¶
- 정의: NCCL이 InfiniBand/RoCE를 사용하도록 확장하는 플러그인
- 역할: RDMA Verbs API를 통해 GPU 메모리 직접 전송 (GPUDirect RDMA)
SHARP 지원
다중 레일(Multi-Rail) 활용 (여러 HCA 동시 사용) - 설치:
apt install libnccl-rdma-sharp-pluginsexport NCCL_IB_HCA=mlx5_0,mlx5_1export NCCL_IB_GID_INDEX=3 - 성능: TCP 대비 10배 빠름 (100GB 데이터 전송 시 10초 → 1초)
NIXL (NVIDIA Inference Xfer Library)¶
- 정의: 분산 LLM 추론에서 KV 캐시 텐서를 GPU 간 효율적으로 전송하기 위한 오픈소스 라이브러리 (GTC 2025 공개,
ai-dynamo/nixl) - 탄생 배경: Disaggregated Inference에서 Prefill → Decode 노드 KV 캐시 전송 시 NCCL은 GPU SM 소비, NIXL은 GPUDirect RDMA로 GPU 컴퓨팅 자원 미사용
- 주요 특징: GPU SM 미사용 (GPUDirect RDMA)
비동기 API (전송/컴퓨팅 오버랩)
플러그인 백엔드 (UCX, GDS/NVMe, S3, NVLink)
메모리 통합 (CPU DRAM, GPU VRAM, NVMe, 오브젝트 스토리지) - NCCL과 차이: 통신 패턴: Point-to-point (NCCL: Collective)
GPU SM 사용: 없음 (NCCL: 있음)
주 용도: KV 캐시 전송, 추론 (NCCL: 학습, 텐서 병렬) - 통합 프레임워크: NVIDIA Dynamo, TensorRT-LLM, vLLM (
NixlConnector), SGLang, AWS EFA
4. 분산 AI 추론¶
Mooncake¶
- 정의: ByteDance가 개발한 KV Cache 오프로딩 시스템 (분산 추론 최적화)
- 핵심 아이디어: Prefill GPU와 Decode GPU 분리 + KV Cache 네트워크 전송
- 아키텍처: Prefill GPU → KV Cache (50GB) → 네트워크 전송 → Decode GPU
- 네트워크 전송 방식: NCCL over InfiniBand: RDMA, 레이턴시 ~1ms
UDP 직접 전송: 커널 소켓, 레이턴시 ~5-10ms
압축 전송: FP16 → INT8 - 효과: Prefill/Decode 분리로 GPU 활용률 2배 향상
Mooncake의 KV Cache 전송¶
- KV Cache란?: Transformer의 Attention 계산 시 이전 토큰의 Key/Value 벡터 저장
- 크기: LLaMA-70B 모델, 시퀀스 길이 4096 → 약 50GB
- 전송 방법: 방법 1: GPUDirect RDMA
방법 2: GPU → CPU 메모리 → UDP 소켓 → CPU 메모리 → GPU - 최적화: NCCL Group Call로 All-Gather 오버랩
파이프라이닝 (전송 중 다음 토큰 생성)
선택적 전송 (Attention Score 낮은 토큰 제외)
Mooncake NCCL 통합¶
- 정의: Mooncake에서 NCCL을 사용해 KV Cache를 Prefill → Decode GPU로 전송
- 통신 패턴:
- Broadcast: Prefill GPU 1개 → Decode GPU N개
- All-Gather: 여러 Prefill GPU → 모든 Decode GPU
- 코드 예시 (의사코드):
- 성능: InfiniBand HDR 200Gbps 사용 시 50GB KV Cache 전송 시간 ~2초
vLLM (Virtual Large Language Model)¶
- 정의: UC Berkeley가 개발한 LLM 추론 엔진. 'v'는 가상 메모리(Virtual Memory)에서 착안 — PagedAttention이 핵심
- 핵심 기능: PagedAttention: KV Cache를 페이지 단위 관리
Continuous Batching: 토큰 단위 배칭
Prefix Caching: 공통 프롬프트 재사용
vLLM의 Disaggregated Prefill¶
- 정의: Prefill과 Decode를 별도 GPU 클러스터로 분리하는 아키텍처
- 배경: Prefill: 긴 입력 처리, Compute-bound (높은 TFLOPS 필요)
Decode: 짧은 생성, Memory-bound (높은 메모리 대역폭 필요) - 구조: Prefill Cluster (A100, 높은 FP16 성능) → KV Cache 생성 → 네트워크 전송 → Decode Cluster (H100, 높은 메모리 대역폭)
- 네트워크 전송: gRPC 또는 RDMA
- 효과: Prefill/Decode GPU를 독립 스케일링, 비용 최적화
SGLang (Structured Generation Language)¶
- 정의: 구조화된 생성 및 복잡한 프롬프트 워크플로우에 최적화된 LLM 추론 엔진
- 개발: LMSYS (UC Berkeley, UC San Diego, CMU, Stanford)
- 핵심 기술: RadixAttention: Radix Tree 기반 KV Cache 관리
Structured Generation: JSON, Regex, CFG 기반 출력 제약
Frontend Language: Python DSL로 프롬프트 체인 정의 - 성능 (H100): 처리량: 16,215 tok/s (vLLM 대비 29% 빠름)
TTFT: 112ms (vLLM 120ms)
Prefix-heavy: vLLM 대비 6.4배 빠름 - 프로덕션: 400,000+ GPU
- 버전: SGLang 0.4+ (2026년)
vLLM vs SGLang 비교¶
| 항목 | vLLM | SGLang | 승자 |
|---|---|---|---|
| 핵심 기술 | PagedAttention (고정 크기 블록) | RadixAttention (Radix Tree) | 각자 차별화 |
| 처리량 (H100) | 12,553 tok/s | 16,215 tok/s | 🟢 SGLang |
| TTFT (10 req) | 120ms | 112ms | 🟢 SGLang |
| Prefix 재사용 | Prefix Caching (수동) | RadixAttention (자동) | 🟢 SGLang |
| Prefix-heavy 워크로드 | Baseline | 6.4배 빠름 | 🟢 SGLang |
| 하드웨어 지원 | NVIDIA, AMD, TPU, Trainium, Gaudi | NVIDIA, AMD | ● vLLM (더 광범위) |
| 모델 호환성 | 광범위 (encoder-decoder 포함) | Decoder-only LLM | ● vLLM |
| 생태계 성숙도 | 높음 (3배 큰 커뮤니티) | 성장 중 | ● vLLM |
| Structured Output | JSON Schema (기본) | JSON, Regex, CFG (고급) | 🟢 SGLang |
| 프로덕션 사례 | Databricks, Anyscale | xAI (Grok 3), Azure | 각자 대규모 |
| 최적 사용처 | 배치 처리, 다양한 하드웨어 | 멀티턴 대화, RAG, Agent | 워크로드별 |
선택 기준:
| 워크로드 유형 | SGLang 선택 | vLLM 선택 |
|---|---|---|
| 대화 패턴 | 멀티턴 대화, AI 에이전트 | 배치 처리, 독립 프롬프트 |
| Prefix 공유 | RAG, 공유 prefix 많음 | 고유 프롬프트 많음 |
| 출력 제약 | Structured Output (JSON, Regex) | 자유 형식 생성 |
| 모델 타입 | Decoder-only LLM | Encoder-Decoder 지원 (T5, BART) |
| 하드웨어 | NVIDIA/AMD GPU | NVIDIA/AMD/TPU/Trainium/Gaudi |
| 생태계 | 성장 중 | 성숙 (대규모 커뮤니티) |
요약: - SGLang: 채팅봇, RAG, Agent (prefix 재사용 6.4배 빠름) - vLLM: 범용 추론, 다양한 하드웨어, 안정성
Kernel Socket vs RDMA 비교 (분산 추론 관점)¶
| 항목 | TCP (Kernel Socket) | UDP (Kernel Socket) | RDMA (InfiniBand/RoCE) |
|---|---|---|---|
| 레이턴시 | 50-100μs | 10-50μs | 1-5μs |
| 대역폭 | ~25Gbps | ~25Gbps | 200-400Gbps |
| 신뢰성 | O 재전송 보장 | X 패킷 손실 가능 | O 보장 (RC) |
| CPU 사용률 | 높음 (커널 처리) | 높음 (커널 처리) | 낮음 (NIC 오프로드) |
| 구현 난이도 | 낮음 (표준 소켓) | 낮음 (표준 소켓) | 높음 (Verbs API, QP) |
| 커널 경유 | O 커널 스택 | O 커널 스택 | X Kernel Bypass |
| 사용 사례 | API 서버, DB 복제 | Mooncake KV cache 전송 | NCCL, MPI, 분산 학습 |
Kernel Socket vs RDMA 핵심 차이:
- Kernel Socket (TCP/UDP): 표준 소켓 API (socket(), send(), recv()), 커널 스택 경유
- RDMA: Verbs API (ibv_post_send()), 커널 우회, NIC가 직접 DMA
Mooncake가 UDP를 선택한 이유: - 간단한 구현 (표준 UDP 소켓) - RDMA 하드웨어 없이도 동작 - KV Cache 전송 시 일부 패킷 손실 허용 가능 (재생성 비용 낮음)
5. 커널 & 시스템 레벨¶
NIC 커널 드라이버¶
- 역할: NIC 하드웨어와 OS 간 인터페이스
- RDMA 스택: Application → Verbs API (libibverbs) → RDMA Core (rdma-core) → Kernel Module (mlx5_core, ib_core) → NIC Hardware (ConnectX-7)
- 주요 모듈:
mlx5_core(ConnectX-5/6/7 드라이버)ib_uverbs(User-space Verbs)rdma_cm(Connection Manager) - 확인 방법: `lsmod \
GPUDirect RDMA¶
- 정의: GPU 메모리와 RDMA NIC 간 직접 DMA (CPU 메모리 우회)
- 동작 원리: 기존: GPU → CPU RAM → NIC
GPUDirect: GPU → NIC - 요구사항: NVIDIA GPU + Mellanox HCA
nv_peer_mem커널 모듈
CUDA 11.0+, NCCL 2.7+ - 성능 향상: 레이턴시 50% 감소, CPU 사용률 90% 감소
GID Index¶
- 정의: 하나의 HCA 포트가 여러 GID를 가질 때 각 GID의 인덱스
- 확인 방법:
show_gids(출력: DEV, PORT, INDEX, GID, IPv4, VER) - 용도: NCCL 설정 시 Routable GID 지정 (
NCCL_IB_GID_INDEX=3)
버전 정보 요약 (2026년 5월 기준)¶
| 항목 | 최신 버전 | 릴리스 날짜 |
|---|---|---|
| CUDA Toolkit | 13.2 Update 1 | 2026년 4월 |
| ROCm | 7.2.3 (Production) | 2026년 5월 |
| NCCL | 2.30.4 (CUDA 12.9) | 2026년 4월 27일 |
| cuDNN | 9.0+ | 2025+ |
| MIOpen | 3.2+ | 2025+ |
| NVIDIA GPU | B200 (출시), Rubin (2026 H2 예정) | 2024, 2026 H2 |
| AMD GPU | MI350X (출시) | 2025년 중반 |
공식 문서¶
- CUDA: CUDA Toolkit Documentation, CUDA 13.2 Release Notes
- ROCm: ROCm Documentation, ROCm 7.2.3 Release Notes
- NCCL: NVIDIA NCCL Documentation, NCCL GitHub
- RDMA: Linux RDMA
- RoCE: RoCEv2 Specification
- vLLM: vLLM GitHub, vLLM Documentation
- SGLang: SGLang GitHub, SGLang Documentation
GPU 하드웨어¶
- NVIDIA Blackwell: DGX B200, Blackwell Architecture
- NVIDIA Rubin: Rubin Platform (CES 2026)
- AMD MI350X: Instinct MI350X, MI350X Datasheet
- NVLink: NVLink & NVSwitch
- AMD Infinity Fabric: Hot Chips 2025: AMD Infinity Fabric
논문¶
- Mooncake: KVCache-centric Disaggregated Architecture for LLM Serving (2024)
- vLLM: Efficient Memory Management for Large Language Model Serving with PagedAttention (2023)
- SGLang: SGLang: Efficient Execution of Structured Language Model Programs (2023)
관련 문서¶
- 2026-05-14: SGLang vs vLLM 비교 추가 (RadixAttention vs PagedAttention, 처리량 29% 차이)
- 2026-05-13: 초안 작성, CUDA 13.2, ROCm 7.2.3, NCCL 2.30.4, MI350X, Rubin 정보 포함
최종 업데이트: 2026-05-14 | 버전: 1.1