
MI50 전력 곡선 테스트
요약
AMD MI50 GPU의 전력 제한(power limiting) 설정에 따른 추론 성능 변화를 분석한 테스트 결과입니다. 전력 제한 시 생성 속도는 메모리 대역폭 제한 특성 덕분에 비교적 안정적으로 유지되지만, 프롬프트 처리 속도는 연산 제한 특성으로 인해 더 크게 저하됩니다.
핵심 포인트
- 50W 설정 시 피크 대비 70%의 생성 속도를 유지하며 에너지 효율은 3.6배 향상됨
- 디코딩 단계는 메모리 대역폭 제한(memory-bandwidth bound) 성격이 강함
- 프롬프트 처리는 연산 제한(compute-bound) 성격이 강해 전력 제한 시 성능 저하가 더 큼
- 추론 중심 배포를 위한 MI50의 최적 작동 지점은 50W로 권장됨
- 전력 제한이 낮을수록 스케줄러가 그래프 재사용을 늘려 연산량을 보완함
LACT에서 GPU 전력 제한(power limiting)을 통해 수행된 테스트 결과입니다. 실제 전력 사용량은 변동 폭이 매우 큽니다. 20W 설정 시 25W에서 56W 사이를 오가며, 모든 설정에서 동일한 현상이 발생합니다. 테스트 실행에 사용된 프롬프트: https://github.com/lukesdevlab/youtube/blob/main/prompts/agent-maze.txt (mimo 2.5의 분석)
주요 결과:
• 생성 속도는 전력 스로틀링(power throttling)에 놀라울 정도로 탄력적입니다. 100W는 190W 생성 속도의 97.5%를 제공합니다 (31.98 vs 32.79 t/s). 이는 디코딩(decode)이 연산 제한(compute bound)이 아닌 메모리 대역폭 제한(memory-bandwidth bound)이기 때문입니다.
• 50W에서는 피크 전력의 26%만 사용하면서 피크 생성 속도의 70%를 얻을 수 있습니다. 이는 에너지 효율이 3.6배 더 높음을 의미합니다 (0.458 vs 0.173 t/s/W).
• 20W에서 카드는 190W보다 6.0배 더 높은 에너지 효율을 보이지만, 프롬프트 처리(prompt processing) 속도는 피크의 53%로 떨어집니다.
• 그래프 재사용(Graph reuse)은 전력과 반비례 관계를 보입니다. 190W에서는 44,790개의 그래프를 재사용하는 반면 100W에서는 11,669개를 재사용하지만, 20W에서는 38,248개를 재사용합니다. 전력 제한이 낮을수록 스케줄러(scheduler)가 제한된 연산량을 보완하기 위해 더 많은 부분적 그래프 재사용을 유도합니다.
• 전력 제한 시 프롬프트 처리 성능은 생성 성능보다 더 빠르게 저하됩니다. 190W에서 20W로 변경 시: 프롬프트 처리는 53%로 감소(691→366 t/s), 생성은 63%로 감소(32.8→20.8 t/s). 프롬프트 처리는 메모리 제한(memory-bound)보다 연산 제한(compute-bound) 성격이 더 강합니다.
• 추론 중심(inference-heavy) 배포의 경우, MI50의 최적 작동 지점은 50W입니다. 전력 소모와 냉각 요구 사항을 극적으로 낮추면서도 피크에 근접한 생성 속도를 유지할 수 있습니다.
3회 실행 평균: 190W 설정은 다른 모든 설정보다 일관되게 훨씬 적은 총 토큰을 처리했으며, 3회 실행 중 1회에서는 작동하는 파일을 생성하지 못했습니다.
| TDP | Prompt Speed | Gen Speed | Total Time | Total Tokens | Gen t/s per Watt | Graphs Reused | Relative Perf |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | : |
| 190W | 691.28 t/s | 32.79 t/s | 212.4 s | 14,892 | 0.173 t/s/W | 44,790 | 100% |
| 100W | 603.08 t/s | 31.98 t/s | 244.9 s | 21,529 | 0.320 t/s/W | 11,669 | 97.5% |
| 50W | 401.14 t/s | 22.92 t/s | 315.1 s | 20,861 | 0.458 t/s/W | 31,967 | 70.0% |
| 20W | 366.05 t/s | 20.80 t/s | 319.9 s | 20,295 | 1.040 t/s/W | 38,248 | 63.4% |
llama.cpp 파라미터:
[+] 모델 (Model): qwen/Qwen3.6-35B-A3B-UD-IQ4_NL_XL.gguf
[+] 컨텍스트 (Context): 262144 (256K tokens)
[+] 대상 KV (Target KV): K=q8_0 / V=q8_0
[+] MoE 배치 (MoE placement): PARTIAL (21개의 MoE 레이어는 CPU에, 나머지는 GPU에 배치)
[+] MTP: OFF (non-MTP 모델)
[+] 포트 (Port): 8882
[+] 컨테이너 (Container): llama-gfx906-qwen35b-no-mtp
[+] 병렬 (Parallel): 2 슬롯 (slot(s))
[+] GPU 레이어 (GPU layers): 99
[+] 스레드 (Threads): 6 / 6 (배치)
[+] 배치/U배치 (Batch/Ubatch): 2048 / 1024
[+] Ctx 체크포인트 (Ctx checkpoints): 0
사용된 하드웨어 (hardware used):
Ryzen 5 5600
2x16Gb DDR4 2667
MI50 16Gb
소프트웨어 (software):
harness 사용: pi.dev
Kernel 7.1.4-arch1-1이 포함된 Arch Linux
docker.io/mixa3607/llama.cpp-gfx906:b10087-rocm-6.3.3
r/LocalLLaMA의 /u/Atretador에 의해 제출됨 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기