본문으로 건너뛰기
r/LocalLLaMA조회 1

GPU 언더볼팅 안정성을 nanochat 학습으로 검증

Radeon r9700의 -65mV 언더볼팅은 게임과 추론에서는 정상이어도 nanochat 학습에서 nan을 일으켰고 -45mV에서 안정화됐다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

GPU 언더볼팅은 부팅이나 게임, 일반적인 추론이 정상이어도 모델 학습에서 부동소수점 오류를 일으킬 수 있습니다. 작성자는 ROCm을 지원하도록 수정한 nanochat의 small 학습을 안정성 테스트로 사용했고, Radeon r9700에서 -65mV 설정은 수백 단계 뒤 loss가 nan으로 붕괴했지만 -50mV에서 안정화됐으며 최종적으로 -45mV를 선택했습니다. 단일 AMD/Linux 환경에서 small 학습은 20~30분이 걸렸고, 출력이 끝까지 숫자로 유지되는지를 기준으로 삼았습니다. 메모리 속도는 발열 때문에 기본값을 유지했으며, 다른 GPU와 다중 카드에서는 별도 검증이 필요합니다.

실용적 조언

  • 언더볼팅 안정성을 부팅이나 게임만으로 판단하지 말고 nanochat의 small 학습을 끝까지 실행해 loss에 nan이 나타나는지 확인하는 편이 낫습니다. nan이 발생하면 전압 감소 폭이 과도할 가능성이 있으므로 설정을 완화해야 합니다. 작성자의 Radeon r9700에서는 -65mV가 실패했고 -50mV에서 안정화됐으며 최종 설정은 -45mV였습니다.
  • GPU 모델과 실리콘 편차에 따라 안정 전압이 달라지므로 작성자의 수치를 그대로 적용하면 안 됩니다. 메모리 오버클록은 2600 Mhz에서도 즉시 문제가 보이지 않았지만 메모리 칩 온도가 빠르게 올라 기본 속도로 되돌렸습니다. 검증 범위가 AMD/Linux와 단일 Radeon r9700에 한정된 만큼 다른 하드웨어에서는 별도 확인이 필요합니다.

섹션별 상세

01
GPU 언더볼팅은 전력과 발열을 낮추면서도 추론 성능 손실을 한 자릿수 비율로 제한할 수 있지만, 부팅·게임·vLLM·llama.cpp가 정상적으로 작동한다는 사실만으로는 안정성을 보장하지 못합니다. 추론과 학습은 GPU의 연산 경로를 다르게 사용할 수 있고, 초당 수조 회의 연산에서 작은 오류가 누적되면 잘못된 출력이나 학습 붕괴로 이어질 수 있습니다. 작성자는 AMD용 GPU Burn 대안으로 nanochat 학습을 활용해 더 강한 연산 부하에서 언더볼팅 상태를 확인했습니다.
02
AMD Radeon r9700에서 -65mV 설정은 부팅, 게임, vLLM, llama.cpp와 장시간 작업에서는 문제없이 작동했지만 nanochat 학습은 수백 단계 뒤 loss가 nan으로 변하며 중단됐습니다. 작성자는 전압을 -50mV로 되돌린 뒤 학습이 안정되는 것을 확인했고, 추가 여유를 위해 최종적으로 -45mV를 사용했습니다. small 모델 학습에는 단일 r9700에서 20~30분이 걸렸으며, 출력이 마지막까지 숫자로 유지되는지를 안정성 판단 기준으로 삼았습니다.
03
메모리 속도는 2600 Mhz까지 올려도 겉으로 드러나는 문제는 없었지만 메모리 칩 온도가 빠르게 상승해 기본 속도를 선택했습니다. Power cap은 학습 안정성에 영향을 주지 않았습니다. 결과는 단일 Radeon r9700과 AMD/Linux 환경에서만 확인됐고, 다른 AMD 모델이나 NVIDIA 카드 및 다중 GPU 구성에는 같은 결과가 보장되지 않습니다.
04
nanochat fork에는 AMD의 ROCm 지원과 일부 버그 수정이 추가됐으며, small 인자를 받은 speedrun_amd.sh와 speedrun.sh가 필요한 의존성을 내려받은 뒤 학습을 실행합니다. GPU 세대에 맞춰 학습 숫자 형식을 고르고 Radeon r9700에서는 bf16을 사용하며, NANOCHAT_DTYPE 환경 변수로 형식을 덮어쓸 수 있습니다. PyTorch를 통한 다중 GPU 학습도 이론상 가능하지만 작성자는 해당 구성을 시험하지 않았습니다.

용어 해설

GPU 언더볼팅(Undervolting)
GPU의 전압을 낮춰 전력 소비와 발열을 줄이는 조정 방식입니다. 전압을 과도하게 낮추면 부동소수점 연산에 오류가 생길 수 있으며, 게임이나 부팅처럼 연산 패턴이 제한된 작업에서는 드러나지 않던 불안정성이 모델 학습과 추론에서 나타날 수 있습니다.
양자화(Quantization)
모델 가중치나 K/V 값을 더 낮은 정밀도의 숫자 형식으로 저장해 메모리 사용량과 연산 비용을 줄이는 기법입니다. 원문에서는 이미 손실이 있는 quant weights와 quant K/V 위에 GPU 연산 오류가 더해지면 출력이 빠르게 무너질 수 있다는 맥락으로 등장합니다.
ROCm
AMD GPU에서 PyTorch와 같은 소프트웨어가 연산을 수행하도록 지원하는 컴퓨팅 플랫폼입니다. 작성자는 nanochat에 ROCm 지원을 추가해 CUDA용 GPU Burn과 유사한 GPU 안정성 검사를 모델 학습으로 수행하도록 구성했습니다.
bfloat16(bf16)
신경망 학습에서 사용하는 부동소수점 숫자 형식으로, 원문에서는 GPU 세대에 따라 nanochat 학습에 사용할 숫자 형식을 자동 선택하는 값으로 쓰입니다. Radeon r9700에서는 bf16이 선택되며 NANOCHAT_DTYPE 환경 변수로 float32 같은 형식으로 바꿀 수 있습니다.

코드 예제

bash
bash runs/speedrun_amd.sh small # For AMD

bash runs/speedrun.sh small # For Nvidia

AMD 또는 NVIDIA GPU에서 nanochat의 small 모델 학습을 실행하는 명령입니다.

text
step 00280/06500 (4.31%) | loss: 5.394929 | lrm: 1.00 | dt: 85.02ms | tok/sec: 192,705 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.38m | eta: 8.7m
step 00281/06500 (4.32%) | loss: 5.393692 | lrm: 1.00 | dt: 83.51ms | tok/sec: 196,193 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.38m | eta: 8.7m
step 00282/06500 (4.34%) | loss: 5.390520 | lrm: 1.00 | dt: 84.76ms | tok/sec: 193,305 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.38m | eta: 8.7m
step 00283/06500 (4.35%) | loss: 5.376654 | lrm: 1.00 | dt: 84.68ms | tok/sec: 193,490 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.38m | eta: 8.7m
step 00284/06500 (4.37%) | loss: nan | lrm: 1.00 | dt: 84.20ms | tok/sec: 194,580 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.38m | eta: 8.7m
step 00285/06500 (4.38%) | loss: nan | lrm: 1.00 | dt: 81.88ms | tok/sec: 200,086 | bf16_mfu: 0.00 | epoch: 1 pq: 0 rg: 13 | total time: 0.39m | eta: 8.7m

학습 중 loss가 정상적인 수치에서 nan으로 바뀌며 부동소수점 연산이 붕괴한 사례를 나타내는 출력입니다.

언급된 도구

nanochat추천링크

GPU 언더볼팅 상태를 모델 학습으로 검증하는 학습 코드이며, 작성자의 fork에는 ROCm 지원과 버그 수정이 포함됐습니다.

GPU Burn중립링크

CUDA GPU에 부하를 걸어 안정성을 확인하는 도구이며, 작성자는 AMD용 대안을 찾는 과정에서 비교 대상으로 삼았습니다.

vLLM중립

언더볼팅 상태에서 정상 작동했지만 nanochat 학습 안정성을 보장하지 못한 추론 도구입니다.

llama.cpp중립

언더볼팅 상태에서 정상 작동했지만 학습 테스트를 대신하지 못한 실행 도구입니다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 23.수집 2026. 08. 23.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.