UK — The Register
PyTorch 2.15, '불량 GPU 한 대' 문제 해결에 나서다
AI2분 읽기
PyTorch 2.15 릴리스는 GPU 한 대가 고장 나도 전체 AI 학습을 처음부터 다시 시작하지 않아도 되도록 NCCL 통신 백엔드를 새로 고쳤다는 소식입니다.
무슨 일이 있었나
PyTorch 2.15에는 Nvidia의 NCCL(GPU들이 서로 데이터를 주고받게 도와주는 라이브러리)을 다시 설계한 백엔드가 들어갔습니다. 이제 GPU 한 대에 문제가 생겨도 학습 작업 전체를 처음부터 다시 돌릴 필요가 줄어듭니다. Meta 소프트웨어 엔지니어 Tristan Rice는 기존 인터페이스가 기술 부채에 파묻혀 있어서 다시 써야 했다고 말했습니다.
배경: NCCL이 하는 일
NCCL은 '니겔'이라고 읽으며, GPU끼리 통신하는 기능을 제공합니다. 한 대의 컴퓨터 안에 있는 GPU든, 여러 대의 컴퓨터에 나뉜 GPU든 서로 대화할 수 있게 해 줍니다. 대형 신경망을 돌리거나 LLM을 만들고 관리할 때 꼭 필요합니다. PyTorch는 원래 연구용 도구였지만, 이제는 실제 서비스에 쓰는 AI의 핵심 도구로 자리 잡아 가고 있습니다.
왜 중요한가
AI 학습에는 GPU가 수백, 수천 대 쓰이기도 합니다. 이때 GPU 한 대가 느려지거나 멈추면 전체 작업이 흔들릴 수 있습니다. 새 백엔드는 문제가 생긴 GPU를 빼고 대체 작업자를 넣을 수 있게 하고, 실패 원인을 알려 주는 '플라이트 레코더'도 추가했습니다. 그래서 운영하는 사람이 무엇이 잘못됐는지 더 쉽게 찾을 수 있습니다.
핵심 사실
- 새 NCCL 백엔드는 프로세스 그룹 하나당 통신자(communicator)를 하나만 씁니다.
- 기존 백엔드(ProcessGroupNCCL)는 프로세스 그룹 하나당 수십 개의 통신자를 만들 수 있었습니다.
- 기존 방식은 간헐적인 교착 상태(deadlock)와 예측하기 어려운 성능 문제를 일으켰습니다.
- 기존 버전은 2.15에 롤백용으로 남아 있고, 새 백엔드가 잘 작동하면 2.16(내년 초 예정)에서 제거됩니다.
앞으로 지켜볼 점
- 새 NCCL 백엔드가 실제 대형 학습 환경에서 기대대로 작동하는지
- 2.16 릴리스에서 기존 ProcessGroupNCCL이 정말 제거되는지
- 외부 오케스트레이터가 느린 GPU를 얼마나 잘 교체하는지
용어 풀이
- PyTorch
- AI 모델을 만들고 학습시킬 때 쓰는 오픈소스 소프트웨어 도구입니다.
- NCCL
- Nvidia의 GPU 간 통신 라이브러리로, 여러 GPU가 데이터를 빠르게 주고받게 해 줍니다.
- Meta
- Facebook과 Instagram을 운영하는 회사로, PyTorch 개발에 참여하고 있습니다.
- Nvidia
- AI 학습과 연산에 많이 쓰이는 GPU를 만드는 회사입니다.
- LLM
- 대형 언어 모델. 글을 이해하고 만드는 큰 규모의 AI 모델입니다.
- ProcessGroupNCCL
- PyTorch의 기존 NCCL 백엔드 이름으로, 이번에 새 버전으로 바뀌었습니다.