728x90

<ML> 4

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

SOM 자기조직화지도

1. 기본 구조 상단의 2차원 그림은 output벡터이다. (위는 예시일뿐, 2차원뿐 아니라 3차원, ... , n차원 가능) 가중치 wij는 가중치라기 보단 해당 뉴런의 좌표 위치이다. (xk,yk) 총 가로8x세로9 = 72개의 wij 인공신경망의 원리를 이용했다는 것은 다른게 아니라 fully-connected로 연결되는 것(=좌표 사이의 모든 거리를 구한다.)을 보여주는 것이다. input vector n개 x output vector 72개 = 총 72n개의 계산량 2. 알고리즘 구조 자기조직화지도 인공신경망 기법중에서 가장 단순한 알고리즘 중 하나이다. 알고리즘에서 입력 벡터와 경쟁층 노드간의 거리를 나타내는 DijDij와 노드의 가중치를 수정하는 연산은 항목 4에 따로 설명한다. 자기조직화지..

<ML> 2023.01.02
728x90