핵심 요약
공식 지원이 중단된 AMD MI50 GPU에서 ROCm 6.4와 llama.cpp를 활용해 고속 추론 환경을 구축하는 3단계 해결 방법을 제시한다.
배경
AMD Instinct MI50(gfx906) 카드가 ROCm 6.4 이상에서 공식 지원이 중단됨에 따라 llama.cpp 실행 시 발생하는 커널 누락 및 런타임 오류를 해결하고 듀얼 GPU 환경을 구축하기 위해 작성되었다.
의미 / 영향
이 토론은 제조사의 공식 지원 중단 이후에도 커뮤니티의 노력을 통해 구형 고성능 하드웨어의 수명을 연장할 수 있음을 보여준다. 특히 대용량 VRAM을 갖춘 MI50과 같은 카드는 적절한 소프트웨어 패치를 통해 최신 LLM 추론 환경에서 여전히 강력한 경쟁력을 가질 수 있다는 컨센서스가 형성되었다.
커뮤니티 반응
공식 지원이 끊긴 구형 엔터프라이즈 하드웨어를 최신 소프트웨어 스택에서 활용하려는 시도에 대해 매우 긍정적인 반응이다. 특히 가성비 좋은 MI50 카드를 대량으로 보유한 사용자들에게 실질적인 가이드라인을 제공했다는 평가를 받았다.
실용적 조언
- MI50 32GB 모델 사용 시 VRAM 16GB 제한이 있다면 Radeon Pro V420 VBIOS로 플래싱하여 해결할 수 있다.
- 실행 시 HSA_ENABLE_SDMA=0 환경 변수를 설정하면 SDMA 엔진 대신 블릿 커널을 사용하여 데이터 전송 안정성을 높일 수 있다.
- IQ4_XS와 같은 특정 양자화 형식은 gfx906에서 충돌을 일으킬 수 있으므로 Q4_K_M, Q8_0 등 표준 형식을 권장한다.
언급된 도구
gfx906 아키텍처 최적화 및 ISA 매칭 수정이 포함된 LLM 추론 엔진
llama-server를 백엔드로 사용하는 사용자 인터페이스
섹션별 상세
sudo cp /path/to/extracted/rocblas/opt/rocm/lib/rocblas/library/*gfx906* /opt/rocm/lib/rocblas/library/
ls /opt/rocm/lib/rocblas/library/ | grep gfx906ROCm 6.4에서 누락된 gfx906용 rocBLAS 커널 파일을 수동으로 복사하고 확인하는 과정
// SCRIPT_compile_MI50.sh 수정
AMDGPU_ARCH="gfx906:sramecc+:xnack-"정확한 ISA 매칭을 위해 컴파일 스크립트의 GPU 아키텍처 변수를 하드코딩하는 방법
bool common_speculative_is_compat(llama_context * ctx_tgt) {
#if defined(GGML_USE_HIP)
return false;
#endif
auto * mem = llama_get_memory(ctx_tgt);
// ...gfx906에서 충돌을 일으키는 투기적 디코딩 호환성 체크를 비활성화하는 패치
HSA_OVERRIDE_GFX_VERSION=9.0.6 HSA_ENABLE_SDMA=0 \
./build/bin/llama-server \
-m /your/model.gguf \
--device ROCm0,ROCm1 \
--split-mode layer \
-ngl 99환경 변수 설정과 함께 듀얼 GPU로 llama-server를 실행하는 최종 명령어
실무 Takeaway
- ROCm 6.4+ 환경에서 gfx906 커널 파일을 수동으로 /opt/rocm/lib/rocblas/library/에 추가해야 작동한다.
- iacopPBK의 전용 포크를 사용하고 컴파일 시 AMDGPU_ARCH를 gfx906:sramecc+:xnack-로 명시해야 한다.
- common/speculative.cpp에서 호환성 체크 함수가 무조건 false를 반환하도록 수정하여 서버 충돌을 방지한다.
- 듀얼 MI50 구성 시 64GB HBM2 VRAM을 활용할 수 있으며 Qwen3-8B 모델에서 약 62 t/s의 속도를 낼 수 있다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료