GPU 클러스터 통신 병목 최적화
대규모 분산 학습 환경에서 GPU 간 통신 병목을 최적화한 경험이 있습니다. 8개 노드, 64 GPU 환경에서 모델을 학습할 때 AllReduce 통신 대기 시간이 전체 학습 시간의 40%를 차지하고 있었습니다. 원인을 분석하니 네트워크 토폴로지와 맞지 않는 통신 패턴이 문제였습니다.
NCCL 프로파일러로 병목 구간을 정확히 찾아내고, Ring-AllReduce 대신 계층적 AllReduce를 적용해 노드 내·간 통신을 분리했습니다. 또한 Gradient Compression과 FP16 혼합 정밀도를 도입해 통신량 자체를 줄였습니다. 결과적으로 학습 처리량이 1.8배 향상됐고 GPU 활용률이 85% 이상을 유지했습니다.
기술 스택은 PyTorch DDP + NCCL + Horovod 조합이었고, 이 경험으로 분산 학습 성능 분석 방법론을 체계화했습니다.