반응형
🔥 0단계: “이게 NCCL hang 맞나?” 빠른 판별
대표 증상
- 학습 로그가 여기서 멈춤
NCCL INFO AllReduce started
- GPU 사용률 0%인데 프로세스는 살아 있음
- Pod는 Running, Job은 안 끝남
- 재시작하면 가끔 됐다가 또 멈춤
👉 이러면 거의 100% NCCL
1️⃣ ECC 상태 점검 (최우선 ⚠️)
✅ ECC ON인지 확인
nvidia-smi -q | grep -i ecc
정상 예:
Ecc Mode
Current : Enabled
Pending : Enabled
❌ ECC OFF면?
- 원인 후보 1순위
- 특히:
- 장시간 학습
- MIG 사용
- 다중 노드
➡️ 바로 조치:
nvidia-smi -e 1
reboot
📌 MIG 생성 전에 반드시
🧨 ECC 에러 카운트 확인
nvidia-smi -q -d ECC
체크 포인트:
- Uncorrectable ECC Error > 0 ❌
- Volatile 값이 증가 중 ❌
👉 값 증가 중이면
GPU 하드웨어 불량 가능성 높음 → 노드 격리
2️⃣ MIG + ECC 순서 점검
확인
nvidia-smi -L
- MIG 인스턴스가 있음
- 그런데 ECC를 나중에 켰다? ❌
👉 이 조합에서 유령 NCCL hang 자주 발생
조치 순서
1. MIG 제거
2. ECC ON
3. reboot
4. MIG 재생성
3️⃣ NCCL 디버그 로그 활성화
기본 디버그
export NCCL_DEBUG=INFO
더 자세히
export NCCL_DEBUG=TRACE
로그에서 자주 보이는 신호
로그의미
| NET/IB : Using ... | IB 사용 중 |
| NET/Socket | IB 실패 → TCP fallback |
| 특정 rank에서 멈춤 | 통신 불일치 |
📌 rank 0에서만 멈추면 ECC 의심
4️⃣ IB(InfiniBand) 상태 점검 (NCCL 2대 원인)
🔌 IB 포트 상태
ibstat
정상:
State: Active
Physical state: LinkUp
Rate: 200 Gb/sec
❌ 하나라도 다르면 위험
🔍 IB 디바이스 확인
ibv_devinfo
- HCA가 안 보이면 → NCCL은 무조건 hang 가능
📡 링크 오류 카운터
perfquery
또는
ethtool -S ib0
체크:
- Symbol error
- Link error
- Recovery error
➡️ 증가 중이면 케이블 / 스위치 / 포트 문제
5️⃣ NCCL IB 설정 강제 확인
올바른 인터페이스 지정
export NCCL_SOCKET_IFNAME=ib0
IB 사용 강제
export NCCL_IB_DISABLE=0
RoCE 환경이면
export NCCL_IB_HCA=mlx5_0
📌 잘못되면 NCCL이 조용히 TCP로 전환함
6️⃣ Kubernetes 환경 특이 체크
Pod에 IB 디바이스 보이는지
ls /dev/infiniband
없으면 ❌
- SR-IOV 미설정
- device-plugin 문제
RDMA 권한
kubectl describe pod <pod>
확인:
- privileged
- NET_ADMIN
- RDMA resource 할당 여부
7️⃣ 테스트로 바로 재현 여부 확인
NCCL Test (추천)
all_reduce_perf -b 8 -e 1G -f 2 -g 1
- 여기서 hang → 환경 문제 확정
- 학습 코드 문제 ❌
8️⃣ ECC + IB 동시 문제 패턴 (실제 자주 봄)
| 증상 | 원인 |
| 가끔만 hang | ECC OFF |
| 특정 노드만 hang | ECC 에러 누적 |
| 노드 수 늘리면 발생 | IB 링크 불안 |
| 재부팅하면 잠깐 정상 | 하드웨어 열화 |
9️⃣ “이건 바로 격리” 신호 🚨
- Uncorrectable ECC Error > 0
- 동일 노드에서 NCCL hang 반복
- IB error counter 지속 증가
➡️ 노드 cordon + drain 필수
🔚 한 줄 운영 결론
NCCL hang = 소프트웨어보다 하드웨어 먼저 의심
1️⃣ ECC
2️⃣ MIG 순서
3️⃣ IB 링크
4️⃣ NCCL 설정
이 순서로 보면 삽질 거의 없음.
반응형
'[GPUaaS] > GPUmgt' 카테고리의 다른 글
| [NVMe 번호는 고정 아님] 부팅 시 인식 순서가 달라짐 !! (0) | 2026.02.12 |
|---|---|
| [MBR(msdos) 파티션] MBR 방식 = 2TB 한계 / GPT 방식 (2TB 제한 제거 🔥) (0) | 2026.02.12 |
| [GPU/SCP/파일질라] nvidia-bug-report.sh 위치 (0) | 2026.02.09 |
| [NCP] SSL VPN 다운로드 (0) | 2026.02.09 |
| [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 |
| [NCCL] NVIDIA Collective Communications Library (0) | 2026.02.03 |
댓글