llama.cpp 빌드 b9455와 2x3090 조합에 대한 찬사
Another shout out to llama.cpp build b9455 2x3090
핵심 요약
llama.cpp b9455 빌드를 활용해 2x3090 환경에서 Qwen3.6-27B 모델을 70+ t/s 속도로 구동한 성능 테스트 결과입니다.
- 성능 최적화 — llama.cpp b9455 빌드와 텐서 분할을 통해 2x3090 환경에서 70+ t/s의 고속 추론을 달성함
- 모델 활용 — Qwen3.6-27B-MTP UD-Q8_K_XL 모델을 사용하여 코드 생성 품질과 속도를 모두 개선함
- 벤치마크 결과 — 다양한 컨텍스트 크기에서 일관된 프리필 및 디코드 성능을 기록함
- 기술적 설정 — MTP 추측 디코딩과 flash-attn 등을 적용하여 효율적인 서버 구동 환경을 구축함
여러분도 아시다시피, 그다음으로 높은 양자화 모델은 Unsloth의 Qwen3.6-27B-UD-Q8_K_XL.gguf입니다. 예전 llama.cpp로는 30-50 tk/s 정도가 나왔었죠. vllm은 텐서 분할을 통해 2x3090에서 70+ tk/s를 뽑아내며 몇 달 동안 llama를 압도하고 있었습니다. 하지만 vllm용으로 좋은 양자화 모델을 찾기가 어려워서 정체불명의 qwen3.6-mtp-8.0 모델을 쓰고 있었는데... 여기저기서 사소한 코딩 실수도 하더라고요. 이제 Unsloth의 UDQ8KXL을 70+ t/s로 돌릴 수 있게 되니 코드 출력 결과가 너무 깔끔해서 완전히 다른 괴물이 된 것 같습니다.
드디어 텐서 분할이 적용된 llama 버전 b9455b를 테스트해 봤는데, 세상에. 결과는 아래와 같습니다:
Qwen3.6-27B-MTP UD-Q8_K_XL(MTP 추측 디코딩)을 위한 llama.cpp 서버 설정입니다.
export LD_LIBRARY_PATH=/home/llama.cpp-b9455/build/bin:${LD_LIBRARY_PATH:-}
exec /home/llama.cpp-b9455/build/bin/llama-server \
--host 0.0.0.0 --port 8000 \
--model /home/projects/Qwen3.6-27B-MTP/Qwen3.6-27B-UD-Q8_K_XL.gguf \
--n-gpu-layers 99 \
--ctx-size 262144 \
--parallel 1 --kv-unified \
--batch-size 4096 \
--ubatch-size 512 \
--tensor-split 50,50 -sm tensor \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--spec-type draft-mtp \
--spec-draft-n-max 3 \
--jinja \
--no-mmap \
--temp 0.6 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.0 \
--presence-penalty 0.0 \
--metrics
이제 더 이상 지루하게 기다릴 필요가 없습니다:
- ctx = 실제 컨텍스트 (캐시 포함) 전송
- pp = 프리필 토큰 / 프리필 시간 / 프리필 t/s
- out = 디코드 토큰 / 디코드 시간 / 디코드 t/s
아래는 코딩 테스트 예시입니다:
ctx 27K · pp 27K/18.8s 1417t/s · out 248/3.0s 81t/s · cold
ctx 31K · pp 3.8K/3.2s 1171t/s · out 353/4.7s 74t/s · 27K cached
ctx 37K · pp 6.7K/5.7s 1184t/s · out 335/4.5s 74t/s · 31K cached
ctx 43K · pp 5.5K/4.9s 1121t/s · out 357/5.0s 71t/s · 37K cached
ctx 44K · pp 1.3K/1.5s 861t/s · out 377/5.2s 72t/s · 43K cached
ctx 2.7K · pp 2.0K/1.5s 1294t/s · out 691/9.7s 71t/s
ctx 13K · pp 7.2K/5.0s 1421t/s · out 964/13.0s 73t/s · 5.5K cached
ctx 46K · pp 27K/19.8s 1370t/s · out 694/10.2s 67t/s · 19K cached
ctx 52K · pp 2.4K/2.6s 919t/s · out 464/6.9s 66t/s · 50K cached
ctx 58K · pp 6.5K/6.3s 1036t/s · out 101/1.5s 69t/s · 52K cached
ctx 60K · pp 2.1K/2.3s 889t/s · out 163/2.2s 74t/s · 58K cached
ctx 2.1K · pp 2.1K/2.3s 880t/s · out 1.9K/32.7s 57t/s
ctx 63K · pp 6.0K/4.8s 1266t/s · out 856/12.3s 69t/s · 57K cached · queue 1
ctx 7.3K · pp cached · out 4.5K/82.5s 54t/s · 7.3K cached
ctx 64K · pp 7.8K/5.6s 1402t/s · out 453/5.8s 78t/s · 57K cached
ctx 65K · pp 2.3K/2.8s 823t/s · out 99/1.4s 71t/s · 63K cached
ctx 65K · pp 120/0.4s · out 93/1.3s 70t/s · 65K cached
ctx 68K · pp 68K/54.2s 1247t/s · out 2.0K/28.8s 68t/s · cold


