ROCm 7.2.1 + llama.cpp 혼합 Vega GPU 구동(gfx900 Vega64 + gfx906 MI50) — 패치한 rocBLAS 페이로드로 Gemma 3 27B Q4에서 52~57 tok/s 기록 [저장소 + Dockerfile]
원문 제목 — ROCm 7.2.1 + llama.cpp on mixed Vega GPUs (gfx900 Vega64 + gfx906 MI50) — got 52-57 tok/s on Gemma 3 27B Q4 with patched rocBLAS payloads [repo + Dockerfile]
📄 전문 번역
한 사용자가 Radeon RX Vega 64(Vega10, gfx900, 8GB HBM2)와 Radeon Instinct MI50(Vega20, gfx906, 16GB HBM2, 시스템에서 Radeon VII로 표시)을 함께 장착한 혼합 AMD Vega 시스템에서 최신 llama.cpp를 구동하는 재현 가능한 설정을 공개했다. 관련 저장소와 Dockerfile, 테스트 프로그램이 GitHub에 공개되었다.
최신 ROCm도 HIP을 통해 이 구형 Vega GPU들을 정상적으로 나열하고 HIP 컴파일과 llama-server의 장치 목록 조회도 동작하지만, 미리 빌드된 rocBLAS/Tensile 페이로드에 구형 아키텍처용 커널이 더 이상 포함되지 않아 첫 실제 GEMM 호출이 실패하는 것이 핵심 문제다. 이 설정은 gfx906용으로 패치된 ROCm 7.2.1 이미지(mixa3607/rocm-gfx906:7.2.1-complete)에 ROCm 6.3.4에서 가져온 gfx900용 rocBLAS/Tensile 페이로드를 복사해 넣고, GPU_TARGETS를 gfx900과 gfx906으로 지정해 llama.cpp를 빌드하는 방식으로 문제를 해결한다.
테스트 하드웨어는 Ryzen 5 3600, 64GB DDR4, Vega 64 8GB(gfx900), MI50 16GB(gfx906)이며 /dev/kfd와 /dev/dri 장치를 전달한 Docker 환경에서 진행되었다. ROCm 6.3.4 이미지에서 gfx900용 라이브러리를 복사한 최종 이미지에는 gfx900용 128개, gfx906용 156개 파일이 담기며, rocminfo로 두 아키텍처의 인식을 확인한 뒤 SGEMM 테스트 프로그램으로 gfx900에서 rocBLAS가 실제로 동작함을 검증한다. 이어서 llama.cpp를 양쪽 아키텍처 대상으로 빌드해 llama-server를 띄우면 Vega 64(8176 MiB)와 Radeon VII(16368 MiB) 두 장치가 표시된다.
혼합 GPU 실행에서는 텐서 분할 비율이 중요했는데, 1,2로 설정하면 8GB Vega 64에 과부하가 걸려 수 초간 추론이 멈추는 현상이 발생했고 1,4로 설정하자 여유가 생기며 매끄럽게 동작했다. Gemma 3 27B Q4_K_M 모델을 8192 컨텍스트로 구동한 결과 낮은 컨텍스트에서 약 57.6 tok/s, 3.6K에서 약 56.5 tok/s, 4.4K에서 약 55.5 tok/s, 6.6K에서 약 54.3 tok/s, 8K 부근에서 약 53.8 tok/s, 8191/8192에서 약 52.8 tok/s를 기록했고 긴 멈춤은 없었다. 단일 MI50 기준으로는 낮은 컨텍스트에서 약 58~59 tok/s, 8K 부근에서 약 52~53 tok/s로, 이 모델에서는 Vulkan 경로보다 훨씬 나은 성능이었다.
작성자는 이 구성이 공식 지원 대상이 아니며 실험적이므로 자기 책임 하에 사용해야 한다고 강조하면서, 커스텀 ROCm 이미지를 호스트와 분리해 유지하고 바인드 마운트를 활용해 docker --rm을 안전하게 쓰라고 조언했다. 단일 GPU 테스트에는 HIP_VISIBLE_DEVICES=1을 사용하고, 실제 gfx900과 gfx906이 올바르게 인식되므로 HSA_OVERRIDE_GFX_VERSION은 설정하지 말라고 덧붙였다. mixa3607의 gfx906 이미지, daimonionnn의 amd-vega-rocm-vulkan-llm-toolkit, Frigate Vega 백포트 실험에 감사를 표하며, 미국에서 재현을 원하는 이에게 여분의 Vega 64를 제공할 수 있다고 밝혔다.
💬 주요 댓글 번역 (1)
🔍 루키 분석
최신 ROCm에서 공식 지원이 끊긴 구형 Vega 아키텍처를, 구버전 rocBLAS 페이로드 이식과 커뮤니티 패치 이미지를 조합해 ROCm 7.2.1 환경에서 되살린 사례다. Vega 64와 MI50의 혼합 구성으로 Gemma 3 27B Q4 모델에서 52~57 tok/s를 기록했으며, 단일 MI50과의 성능 차이는 크지 않지만 Vulkan 경로보다는 빠르다. 8GB VRAM의 Vega 64 과부하를 피하기 위한 텐서 분할 비율 조정이 안정성의 핵심 변수로 지목되었고, 공식 지원 밖의 실험적 구성이라는 점도 함께 강조되었다.
— 루키 · glm-5.3-flash:cloud
이거 정말 마음에 드네요...