IL-0427 BigScience · 2021-08-12ai-infra
tr1-13B 학습이 고장 난 GPU 가 있는 노드에서 연달아 두 번 죽었다
tr1-13B 학습은 JZ 에서 Slurm job array 로 돌았다. job array 의 작업 하나가 여러 시간 학습한 뒤 iteration 43680 에서 역전파 도중 `cudaErrorECCUncorrectable: uncorrectable ECC error encountered` 로 죽었다.
그때 아무도 지켜보지 않았고, Slurm 스케줄러는 job array 의 다음 학습 작업을 띄웠다. 스케줄러가 같은 노드를 다시 배정해서 이 작업은 2021-08-12 08:19 에 시작하자마자 `torch.distributed.barrier()` 에서 `RuntimeError: CUDA error: out of memory` 로 죽었다.
팀은 GPU 하나에 하드웨어 문제가 있다고 보고 JZ 관리자에게 연락했고, 관리자는 노드 하나가 고장 난 것을 확인했다. 그다음 학습 작업은 그 노드에 배정되지 않아 학습이 이어졌다. 당시에는 예외가 난 노드의 호스트 이름을 알 방법이 없었다. 그래서 팀은 `#SBATCH --output` 에 `%N` 을 넣어 노드마다 로그 파일을 따로 남기기로 했다.
- 심각도
- –
- 영향 범위
- The tr1-13B training run crashed twice in a row on the same faulty node and stopped until the next job landed on other nodes
- 영향 사용자
- –
- 지역
- –
- 감지까지
- –
- 복구까지
- –
증상
tr1-13B 학습이 여러 시간 돌다가 iteration 43680 에서 죽었고, Slurm 이 이어서 띄운 다음 작업도 시작하자마자 죽었다.
첫 충돌은 DeepSpeed 파이프라인 엔진의 `_exec_backward_pass` 에서 역전파를 하던 중에 났다. 로그에는 `RuntimeError: transform: failed to synchronize: cudaErrorECCUncorrectable: uncorrectable ECC error encountered` 가 찍혔고, 이어서 `terminate called after throwing an instance of 'c10::Error'` 와 `what(): CUDA error: uncorrectable ECC error encountered` 가 찍혔다.
두 번째 작업은 2021-08-12 08:19 에 시작해 퓨즈드 커널을 컴파일하고 불러오는 단계의 `torch.distributed.barrier()` 에서 `RuntimeError: CUDA error: out of memory` 로 죽었다.
팀은 두 번 연달아 죽은 것을 보고 GPU 하나에 하드웨어 문제가 있다고 봤다. 하지만 예외를 그 예외가 난 노드의 호스트 이름과 이어 볼 방법이 없어서 로그만으로는 어느 노드가 고장인지 알 수 없었다.
원인
원인 하드웨어 고장
- 촉발
- 학습에 배정된 노드 하나의 GPU 에 하드웨어 문제가 생겨 정정할 수 없는 ECC 오류가 났다.
감지
첫 충돌 때는 아무도 지켜보지 않았고, 스케줄러가 띄운 다음 작업도 죽은 뒤에야 문제를 알았다. 팀은 두 번의 실패를 보고 GPU 하드웨어 문제를 의심했고, JZ 관리자에게 물어 노드 하나가 고장 난 것을 확인했다.
조치
- JZ 관리자에게 연락해 노드 하나가 고장 난 것을 확인했다.
- 다음 학습 작업이 고장 난 노드에 배정되지 않아 학습이 이어졌다.
후속 조치
- `#SBATCH --output=%x-%j-%N.out` 처럼 출력 파일 이름에 `%N` 을 넣어 노드마다 로그 파일을 따로 남기고, 그 로그로 어느 노드의 GPU 가 고장인지 가린다.
- 고장 난 노드의 호스트 이름을 알아내면 `sbatch --exclude=node1,node2,... ` 로 다음 작업에서 그 노드를 뺀다.
교훈
예외가 난 노드의 호스트 이름을 알 수 없으면, 다음 작업이 고장 난 노드에 다시 배정돼 학습이 거듭 죽는다. 호스트 이름을 알면 `sbatch --exclude` 로 그 노드를 뺄 수 있으므로, 예외와 노드를 이어 주는 수단이 꼭 있어야 한다.
출처
관련 사례
같은 원인 · 공통 GPU 하드웨어·메모리, Slurm 작업 스케줄러
같은 원인 · 공통 GPU 하드웨어·메모리
IL-0415Delta 의 A100 GPU 에서 GSP 오류, GPU Fallen Off the Bus 오류, NVLink 오류가 나 GPU 가 오류 상태에 빠지고 그 위의 작업이 실패했다NCSA · 2025같은 원인 · 공통 GPU 하드웨어·메모리
같은 원인 · 공통 GPU 하드웨어·메모리
IL-0421Alibaba 의 LLM 학습 클러스터에서 GPU 결함을 비롯한 오류로 작업이 거듭 죽어 2023년 6월 한 작업이 시간의 31.19% 를 잃었다Alibaba Group · 2025같은 원인 · 공통 GPU 하드웨어·메모리
IL-0414NCSA Delta 의 H100 GPU 에서 uncorrectable 메모리 오류가 A100 보다 잦게 나 사용자 작업이 실패하고 노드가 내려갔다NCSA · 2025같은 원인 · 공통 GPU 하드웨어·메모리
IL-0238PCIe A100 1만 장 규모의 Fire-Flyer 2 학습 클러스터에서 GPU Xid 오류와 InfiniBand 링크의 순간 끊김으로 학습 작업이 끊기고 실패했다DeepSeek · 2024같은 원인 · 공통 GPU 하드웨어·메모리
같은 원인 · 공통 GPU 하드웨어·메모리
IL-0239LLM 개발 클러스터 Acme 의 Seren 과 Kalos 에서 사전 학습 작업이 하드웨어, 네트워크, 프레임워크 오류로 자주 실패해 학습 진행을 잃었다Shanghai AI Laboratory · 2024같은 원인 · 공통 GPU 하드웨어·메모리
IL-0125Jean Zay 에서 진행한 176B 다국어 모델 학습에서 GPU 가 고장 나도 학습 작업이 끝나지 않고 멈춰 버려 SLURM 이 작업을 자동으로 재시작하지 못했다.BigScience · 2022같은 원인 · 공통 Slurm 작업 스케줄러
같은 원인 · 공통 GPU 하드웨어·메모리
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0427
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0427/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.