반응형
NCCL 테스트는 그냥 “벤치마크”가 아니라,
👉 GPU 클러스터가 분산 학습을 제대로 할 수 있는지 검증하는 필수 관문이야.
아래를 보면 왜 다들 NCCL 테스트부터 하는지 바로 감 잡힐 거야.
1️⃣ NCCL 테스트가 뭐냐? (한 줄 요약)
NCCL 테스트 = GPU ↔ GPU 간 통신 성능과 안정성을 검증하는 테스트
- 만든 곳: NVIDIA
- 대상:
- 단일 노드 멀티 GPU
- 멀티 노드 멀티 GPU
- 목적:
- 분산 학습 전 통신 병목/에러 사전 차단
👉 “학습 코드 돌리기 전에 인프라 체력검사”
2️⃣ 왜 NCCL 테스트를 꼭 해야 하냐?
분산 학습에서 실제 계산보다 중요한 게 이거야:
[GPU 계산] ↔ [Gradient 통신]
통신이 느리면?
- GPU 대기 증가
- Scaling 안 됨
- 학습 시간 폭증
통신이 깨지면?
- NCCL timeout
- Rank hang
- 학습 중간에 멈춤 😱
👉 그래서 학습 전에 NCCL 테스트 필수
3️⃣ NCCL 테스트로 뭘 확인하냐?
① GPU ↔ GPU 대역폭 (Bandwidth)
- NVLink 제대로 붙었나?
- PCIe 병목 있나?
- IB/RoCE 속도 정상인가?
② 지연 시간 (Latency)
- 작은 메시지 통신 성능
- Control path 문제 확인
③ 토폴로지 인식
- NCCL이 올바른 경로 선택했는지
- NVLink > PCIe > NIC 순서 지켜졌는지
④ 네트워크 안정성
- 패킷 드롭
- IB 설정 오류
- MTU, GID, PKey 문제
4️⃣ 대표적인 NCCL 테스트 종류
NVIDIA가 공식 제공하는 nccl-tests 패키지가 있다.
🔹 1) all_reduce_perf ⭐ (가장 중요)
분산 학습의 핵심 연산
- 모든 GPU가 값을 모아서 평균/합산
- 실제 DDP / Horovod와 거의 동일
./all_reduce_perf -b 8 -e 1G -f 2 -g 8
옵션 의미
옵션의미
| -b | 최소 메시지 크기 |
| -e | 최대 메시지 크기 |
| -f | 증가 배수 |
| -g | GPU 개수 |
🔹 2) all_gather_perf
- 각 GPU 데이터 모아서 전체 공유
- 모델 파라미터 브로드캐스트 검증
🔹 3) broadcast_perf
- Rank 0 → 전체 전송
- 초기 모델 배포 확인
🔹 4) reduce_scatter_perf
- 대규모 모델 분할 학습에서 중요
5️⃣ Single Node vs Multi Node 테스트 차이
🟢 Single Node
./all_reduce_perf -g 8
확인 포인트:
- NVLink Bandwidth
- PCIe fallback 여부
정상:
- A100 NVLink → 600GB/s 급
- PCIe → ~100GB/s 이하
🔵 Multi Node (진짜 중요)
보통 이렇게 실행:
mpirun -np 16 \ -H node1:8,node2:8 \ ./all_reduce_perf -b 8M -e 1G -f 2
확인 포인트:
- IB/RoCE 사용 여부
- 노드 간 대역폭
- Rank hang 발생 여부
6️⃣ 결과 해석하는 법 (실무 기준)
출력 예시
# size count type redop time algbw busbw 1048576 262144 float sum 0.24 85.0 160.0
봐야 할 핵심
항목의미
| algbw | 알고리즘 기준 대역폭 |
| busbw | 실제 버스 사용 대역폭 |
| time | 통신 시간 |
👉 busbw가 하드웨어 스펙 대비 너무 낮으면 문제
7️⃣ 자주 터지는 문제들 (현업 빈출)
❌ IB 안 타고 TCP로 감
NCCL_DEBUG=INFO
로그에:
NET/Socket
👉 ❌ 문제
정상은:
NET/IB
❌ 특정 Rank에서 hang
원인:
- MTU 불일치
- 방화벽
- PKey / GID 설정
- 한 노드 NIC 불량
❌ 성능 들쭉날쭉
원인:
- NUMA 미고정
- CPU affinity 없음
- IRQ 몰림
8️⃣ 실전에서 쓰는 NCCL 환경변수
export NCCL_DEBUG=INFO export NCCL_IB_DISABLE=0 export NCCL_SOCKET_IFNAME=ib0 export NCCL_IB_GID_INDEX=3 export NCCL_IB_TC=106
👉 “테스트 성공 + 안정적”이면 학습 돌린다
9️⃣ DDN / 스토리지랑 NCCL 테스트 관계
중요 포인트 ⚠️
👉 NCCL 테스트는 스토리지 성능 테스트가 아니다
- NCCL: GPU ↔ GPU 통신
- DDN: GPU ↔ Storage I/O
하지만 둘 다:
- InfiniBand 사용
- NIC 공유
👉 NCCL이 불안하면 DDN도 불안해질 확률 큼
🔟 한 줄 요약
NCCL 테스트는 “이 클러스터에서 분산 학습을 돌려도 되는가?”를 판정하는 리트머스 시험지다
이거 통과 못 하면
DDP / Horovod / Megatron-LM
👉 전부 지옥 시작 😈
반응형
'[GPUaaS] > GPUmgt' 카테고리의 다른 글
| 🚨[ NCCL Hang 발생 시] ECC + IB 점검 체크리스트 (실전용) (0) | 2026.02.06 |
|---|---|
| [ECC ON / OFF] MIG · NCCL · 성능 영향 정리 (0) | 2026.02.06 |
| [쿠버네티스 명령어 모음] (0) | 2026.02.06 |
| [GPU의 ECC(Error-Correcting Code)] nvidia-smi -e 1 (0) | 2026.02.06 |
| [DDN(DataDirect Networks)] AI·HPC용 고성능 스토리지의 교과서 (0) | 2026.02.03 |
| [중요2][NCP 실전] NKS 쿠버네티스 설치 - 제9회 K PaaS 활용 공모전 온라인 교육 NAVER Cloud (0) | 2026.01.24 |
| [GPU 클러스터] InfiniBand Cluster !! (0) | 2026.01.23 |
| [NVIDIA] 서버 / 데이터센터용 GPU 6종 !! (0) | 2026.01.23 |
댓글