GPU 스케줄러 개발로 학습 자원 효율화
AI 모델 학습을 위한 GPU 스케줄러를 직접 개발한 경험이 있습니다. 여러 팀이 공유 GPU 클러스터를 사용하다 보니 자원 충돌과 유휴 GPU 낭비가 심각했고, Kubernetes 기본 스케줄러는 GPU-aware하지 않아 커스텀 솔루션이 필요했습니다.
Python + gRPC로 스케줄러 서버를 구현하고, nvidia-smi 메트릭을 주기적으로 수집해 GPU 메모리 여유, 온도, 활용률을 기반으로 최적 노드를 선택했습니다. 가장 어려웠던 점은 다중 GPU 작업의 원자적 할당이었는데, 분산 락(Distributed Lock)을 Redis로 구현해 race condition을 제거했습니다. 기술 선택 이유는 gRPC의 낮은 지연과 Python 생태계의 ML 친화성이었습니다. 결과적으로 GPU 유휴율이 40%에서 12%로 감소했고, 팀 대기 시간도 크게 줄었습니다. 이 경험으로 인프라와 ML 경계를 넘나드는 시스템 설계 능력을 키웠습니다.