IL-0419 IBM · 2025-01-13 (게시일)ai-infra
Vela 에서 GPU 768개로 돌던 Granite-20B 학습 작업의 스텝 시간이 거의 3배로 늘었다
Vela 는 IBM Cloud 안에 구축된 IBM 의 AI 슈퍼컴퓨터이고, 노드마다 80GB A100 GPU 8개가 있다. 일반 클라우드 랙은 이중화된 PDU 두 개가 각각 20kW 를 공급해서, 전원 이중화를 지키면 최대 6kW 를 쓰는 GPU 서버를 세 대만 둘 수 있다. IBM 은 랙에 서버 여섯 대를 두려고 협력사와 power brake 기능을 만들었다. PSU 가 고장 나면 업데이트한 서버 펌웨어가 약 2초 안에 power brake 를 걸어 서버를 3.2kW 로 낮추고, 각 GPU 는 약 400W 에서 150W 로 떨어진다. 정상 PDU 의 차단기는 5초까지의 전력 급증을 견디므로 랙의 전력을 안전하게 초과 할당할 수 있었다. IBM 은 2023년에 이 방식으로 같은 공간에서 Vela 의 GPU 밀도를 두 배로 늘렸다.
한 번은 GPU 768개, 노드 96대로 돌던 Granite-20B 학습 작업의 스텝 시간이 갑자기 거의 3배로 늘었다. 노드 96대를 모두 디버깅한 끝에 한 노드의 전원 카드 문제를 찾았다. 그 노드는 GPU 와 정상 PSU 를 보호하려고 스스로 전력 소비를 낮춰 다른 노드보다 약 3배 느리게 계산했다. 작업 전체가 그 노드의 속도로 느려졌다. 분산 학습에서는 노드 한 대의 성능만 떨어져도 작업 전체가 느려진다. 그 상태는 느린 노드를 찾아 작업에서 빼거나 고치고, 새 노드로 작업을 다시 시작할 때까지 이어진다. IBM 은 이런 경우를 위해 인프라 계층에 경보를 더했다. 또 nvidia-smi 의 GPU 카운터로 전원 문제가 있는 노드를 찾는 검사를 Autopilot 에 넣고, 그 결과를 Grafana 대시보드에 표시했다. Autopilot 은 IBM Research 가 만들어 공개한 관측 도구로, GPU 노드마다 데몬으로 돌며 헬스 체크를 한다.
- 심각도
- –
- 영향 범위
- A Granite-20B training job on 768 GPUs ran with an almost 3x longer step time
- 영향 사용자
- The team running the Granite-20B training job
- 지역
- –
- 감지까지
- –
- 복구까지
- –
증상
Vela 에서 GPU 768개로 Granite-20B 를 학습하던 중 스텝 시간이 갑자기 거의 3배로 늘었고, 팀이 이 성능 저하를 알아챘다.
팀은 이 작업이 쓰던 노드 96대를 모두 디버깅한 끝에 노드 한 대에서 전원 카드 문제를 찾았다. 이 노드는 GPU 와 정상 PSU 를 보호하려고 스스로 전력 소비를 낮췄다. GPU 전력이 400W 에서 약 150W 로 떨어져 이 노드는 다른 노드보다 약 3배 느리게 계산했다. 노드 한 대가 느려지자 작업 전체가 그 노드의 속도로 느려졌다.
서버의 전원 문제는 GPU 스로틀링으로 나타나 GPU 계산 능력을 크게 떨어뜨렸다. 이 상태는 nvidia-smi 가 보여 주는 power break slowdown 같은 GPU 카운터에서 확인할 수 있었다.
증상 처리량 저하
원인
원인 하드웨어 고장
- 촉발
- 작업에 속한 노드 96대 가운데 한 대의 전원 카드에 문제가 생겼다.
감지
학습 팀은 스텝 시간이 거의 3배로 늘어난 것을 알아챘다. 이 고장은 호스트를 죽이지 않고 작업을 느리게만 만드는 종류였다. 팀은 작업이 쓰던 노드 96대를 모두 디버깅해서 원인 노드를 찾았다.
조치
- 작업이 쓰던 노드 96대를 모두 디버깅해 전원 카드 문제로 전력을 낮춘 노드 한 대를 찾았다.
후속 조치
- AI 연구자와 시스템 관리자가 문제 노드를 빨리 찾고 버퍼 노드로 작업을 빨리 다시 시작할 수 있도록 인프라 계층에 경보를 더한다. 경보는 호스트 VM 로그, 애플리케이션 로그, 호스트 BMC 로그의 메시지로 만든다.
- nvidia-smi 의 power break slowdown 같은 GPU 카운터로 전원 문제가 있는 노드를 찾는 검사를 Autopilot 에 넣고, Grafana 대시보드에 표시한다.
교훈
수백, 수천 개의 GPU 를 함께 쓰는 분산 학습에서는 노드 한 대의 성능만 떨어져도 작업 전체의 성능이 떨어진다. 그 상태는 느린 노드를 찾아 빼거나 고치기 전까지 이어진다. 호스트를 죽이지 않는 미묘한 하드웨어 고장도 작업을 실패시키거나 느리게 만들 수 있어서, IBM 은 로그 기반 경보와 Autopilot 의 주기 검사로 이런 노드를 먼저 찾는다. 이런 기능 덕분에 IBM 의 SRE 는 사용자가 신고하면 디버깅하던 방식에서 사용자가 알기 전에 먼저 알리는 방식으로 바뀌었고, 근본 원인을 찾는 시간을 2배 넘게 줄였다.
출처
- https://arxiv.org/abs/2407.05467 · paper · 보관본
참고 문서
관련 사례
–
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0419
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0419/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.