7900XTX(1~2개)에 최적화된 커스텀 llama.cpp 빌드 제작 (Qwen 3.8 Next 및 27B 지원)
I made a custom llama.cpp build optimized for 7900xtx (one or two). for qwen 3.8 next and 27B. includes optimizations for PciE x4 and tensor parallel. read inside! (no AI slop)
핵심 요약
AMD 7900XTX 환경에서 PCIe 대역폭과 텐서 병렬 처리를 최적화하여 추론 속도를 극대화한 커스텀 llama.cpp 빌드입니다.
- 성능 최적화 — PCIe 대역폭 압축 및 커스텀 HIP allreduce로 칩셋 뒤에 위치한 카드도 텐서 병렬 처리 가능
- AMD 전용 패치 — RDNA3/3.5 아키텍처에 최적화된 커널 튜닝 및 최신 llama.cpp PR 적용
- 유연한 설정 — MoE 전문가 캐시 지원 및 --adaptive-mtp를 통한 자동 MTP 조정 기능 포함
- 사용 주의사항 — Q8_0 양자화에 최적화되어 있으며, 27B 모델 사용 시 텐서 병렬 모드 권장
이 카드들 꽂을 자리가 꽤 남길래, 성능을 있는 대로 다 뽑아내려고 작정하고 특화 빌드 하나 만들었다. 일단 결과부터 까본다.
qwen 3.8 next Q3_K_XL: 920tk/s pp8192 (카드 2장, 램 오프로드), 일반 문장 24/27 tk/s, MTP 썼을 때 코드 40+ tk/s (MoE 전문가 캐시는 뺐음. 쓰고 싶으면 아래 읽어봐라)
qwen 3.8 27B Q8_0: 1600 tk/s pp8192, 일반 문장 60/65 tk/s, 코드 100+ tk/s, 텐서 병렬 적용. 이건 칩셋 뒤 X4 슬롯에 카드 하나 박아놓고 측정한 거다. CPU 직결 PCIe x8 슬롯에 꽂으면 더 나올 것 같은데, 해본 사람 있으면 알려줘라.
qwen 3.6 27B Q4_K_M: (싱글 카드) --> 이건 최적화 타겟은 아니었는데 MTP 써서 테스트해 봄. PP8192 1020tk/s, 일반 문장 58/60 tk/s, 코드 75/80 tk/s 나옴. Dflash 쓰면 더 빨라질 듯, 100tk/s 넘길 수 있을 것 같다.
내 목표는 이거였다:
-
3.8 Next에서 프롬프트 처리 속도를 올려서 코딩할 때 쓸만하게 만드는 거.
-
칩셋 뒤에 카드 하나 박혀있는 환경에서도 텐서 병렬을 활성화하고 최적화해서 qwen 27B Q8_0 속도 최대로 뽑는 거.
이번 빌드에 들어간 것들:
-
PCIe 전송 데이터 압축. 카드 간 데이터 전송을 Q8_0으로 압축해서 대역폭 아낌 (옵션).
-
칩셋 뒤에 있는 카드도 P2P 가능하게 만듦 (커스텀 HIP allreduce 경로). 그래서 나처럼 구린 환경에서도 텐서 병렬 돌릴 수 있다.
-
RDNA_BOOST의 모든 수정 사항이랑 기능 포함. --adaptive-mtp도 들어있어서 수락률에 따라 MTP n-max가 자동으로 조절됨.
-
아직 업스트림 안 된 AMD 전용 속도 튜닝이랑 커널 트윅 잔뜩 넣음. RDNA3.5용으로 라벨링 된 게 많긴 한데 RDNA3에서도 잘 돌아간다.
-
MoE 전문가 캐시도 넣어놨다. 난 프롬프트 처리 속도 빠른 게 좋아서 안 쓰지만, 필요하면 써라.
-
아직 업스트림 안 된 llama.cpp 최신 PR들. Ngram 테이블 읽기 속도를 엄청나게 올려주는 --lazy-mode on-direct 같은 것들 포함 (덕분에 PP 속도 개빠름).
-
텐서 병렬에서 DFLASH2 지원 (!)
전체 리스트는 Readme 확인해라.
여기 있다:
https://github.com/nasone32/llama.cpp-RDNA3-7900xtx-opt
참고: Q8_K_XL은 쓰지 마라. 더 느리다. 27B 모델은 INT8 연산에 최적화해 놨다. 컨텍스트는 알아서 조절해라. 카드 2장이면 200k f16까지는 가능할 거다. KV를 q8_0으로 압축하는 건 괜찮은데 좀 느려질 거다. 커스텀 HIP allreduce는 카드 2장 기준이다. 3~4장 쓰면 그냥 평소처럼 RCCL로 컴파일하고 allreduce=internal 플래그 빼라. 잘 될 거 같긴 한데 테스트는 안 해봤다.
UBUNTU 24랑 rocm 7.14에서 테스트했다. 환경 다르거나 문제 생기면 알아서 LLM한테 물어봐라. 난 이거 지원 안 할 거고 업데이트도 안 할 거다. 이 프랑켄슈타인 같은 빌드는 나중에 정식 버전으로 머지되고 조용히 사라지는 게 내 목표니까. :)
즐겨라.
EDIT: 가장 영향 큰 패치 요약:


