Index
2026-08-13 — Analysis

worker 8-GPU NCCL Hang — torch cu128의 B200 함정

tau-0-wm | job 78541 step-0 hang 진단 → 스택 교체 → 78808 재제출

TL;DR

2h+
step 0 hang
1.0 s/it
cu129 (6×↑)
~9h
27k 예상
78808
재제출 job

1 진단 경로

sjob --json 78541 : GPU util [0,0,0,0,0,0,100,0] · fb [100×7, 84.6] GiB · TC<5% · tfevents 88B sprobe procs : main.py 프로세스 73개 = torchrun 1 + rank 8 + dataloader worker 64 (정상) rank 6만 R, 나머지 futex — 첫 collective 데드락 패턴 변수 격리 : 로그인도 같은 B200 → 커널 단독 원인 아님. 로그인(NCCL 없음) vs worker(8-rank NCCL) 참조 스택 : X-WAM은 같은 pod에서 torch 2.8.0+cu129 / NCCL 2.27.3로 8-GPU 검증 (NCCL 우회 없음)
inductor compile worker 풀(rank당 32)이 관찰됐으나 tau 코드에 torch.compile 호출이 없어 대기 풀로 판정 — red herring. 그래도 worker에 gcc가 없으므로 TORCHDYNAMO_DISABLE=1을 예방 적용.

2 결과

항목torch 2.7.1+cu128torch 2.8.0+cu129
worker 8-GPU NCCLstep 0 hang (2h+)78808로 검증 예정
로그인 NCCL 스모크2-GPU 30/30 통과
학습 속도 (bs12/GPU)6.0 s/it1.0 s/it
27k step 예상 (8 GPU)~45 h~9 h

30-step loss: action 8.0 → 1.7 (재초기화된 head 빠른 수렴), video 0.15 안정. 종료 시 rank 1 teardown race(exit 120)는 저장 완료 후 발생하는 cosmetic — sbmr는 FAILED를 재큐하지 않아 무한루프 위험 없음.

예방 조치: main.py에 faulthandler(SIGUSR1) 등록(§16a식 스택 덤프), train_robocasa.sh에 X-WAM과 동일한 NCCL flight recorder env 추가.

3 Takeaway

의미

이 클러스터 B200에서 pip 기본 cu126/cu128 torch 휠은 함정이다 — sm_100 최적화가 cu129 휠부터 온전하며, 성능 3× 저하와 다중 rank hang이 같은 뿌리였다. 새 env는 같은 클러스터에서 검증된 스택(torch 2.8.0+cu129)을 기본값으로 삼을 것. 부수 효과로 학습 예산이 45h→9h로 줄어 실험 회전이 5배 빨라졌다.