728x90

DDP 2

Kubernetes + PyTorch DDP에서 NCCL ALLREDUCE 타임아웃 해결기

(NCCL_P2P_DISABLE / NCCL_IB_DISABLE 2줄로 해결) 최근 Kubernetes GPU 노드에서 PyTorch DDP(DistributedDataParallel) 학습을 돌리던 중,GPU 2장이 모두 정상적으로 할당되고 nvidia-smi도 잘 찍히는데,항상 일정 시간이 지나면 NCCL ALLREDUCE 타임아웃이 발생하면서 학습이 죽어버리는 문제가 있었다. 로그는 아래처럼 폭발적으로 길어지며 결국 DistBackendError로 종료된다.Watchdog caught collective operation timeout:WorkNCCL(SeqNum=1, OpType=ALLREDUCE)c10::DistBackendError: watchdog thread terminated with e..

<ML> 2025.11.13

✅2개의 GPU 환경에서 DDP 분산 학습 구축하기: 오늘의 기술 실험 기록

오늘은 “데이터 병렬은 안 되는데… 그렇다고 GPU를 놀릴 순 없고…” 라는 현실적인 고민에서 출발했다.하루 종일 CUDA 지형도를 탐사하며, GPU 간 통신부터 DDP 구조까지 파고든 실전 기록을 남긴다. 1. 문제의 시작: DataParallel이 먹통이었다초기 목표는 단순했다.“GPU 두 장 있으니 DataParallel로 성능 두 배!”하지만 NVIDIA의 냉정한 진단 한 줄.nvidia-smi topo -p2p a결과는…GPU0 ↔ GPU1 : NS (Not Supported)즉, 두 GPU가 서로 직접 접근(P2P, peer-to-peer)을 지원하지 않는 구조였다.메인보드의 PCIe 토폴로지 때문인데, 이건 소프트웨어로 바꿀 수 있는 문제가 아니다. 따라서 DataParallel은 비효율, ..

<ML> 2025.11.10
728x90