컨텍스트 성능 저하: −32% (34.6→23.5). 테스트한 것들 중 성능 저하가 제일 심합니다.
ik_llama + MTP (표준 설정)
네이티브 MTP의 기준점. ubergarm의 추천 튜닝이나 하이브리드 ngram 모듈 없이 표준 파라미터(n_max=2)로 돌렸습니다. 코드 73.1 TPS, 서술 61.7 TPS로 밸런스가 좋습니다.
VRAM: 20208 MiB.
컨텍스트 성능 저하: −25% (33.8→25.4 gen_tps).
ik_llama + DFlash
beellama의 독립형 드래프트 모델로 테스트했습니다. 코드 96.8 TPS로 MTP+ngram이랑 비비는데, 서술형은 45.7 TPS로 영 별로네요. 드래프트 모델을 따로 불러와서 그런지 TTFT가 504ms로 높습니다.
mainline llama.cpp — 레퍼런스
포크도 없고 패치도 없습니다. 업스트림 추론 MTP 그대로 씁니다. 표준 Q4_K_M 양자화 사용.
코드: 64.7 DP | 서술: 52.6 TPS
TTFT: 288ms — 전체 통틀어 제일 빠름, 오버헤드 제로
컨텍스트 일관성:성능 저하 0% (72k에서 128k 사이 31.3→31.3 TPS). 이게 중요합니다. 메인라인은 컨텍스트 길이랑 상관없이 속도가 일정합니다(아니면 그냥 운이 좋았던 건가?).
깡성능이 제일 빠른 건 아니지만, 제일 예측 가능한 놈입니다.
Spiritbuun — 최적화된 MTP, 망한 DFlash
Spiritbuun MTP
MTP 최적화(터보 캐시, flash-attn)가 들어간 포크입니다. Q4_K_M 양자화 사용.
이걸 테스트한 이유는 Qwen 3.6 35B A3B MoE 모델이랑 APEX 양자화 조합에서 제일 결과가 좋았기 때문입니다(관심 있으면 제 예전 글 찾아보세요).
코드: 59.7 TPS | 서술: 45.7 TPS
컨텍스트 성능 저하: −9%. 메인라인 다음으로 일관성이 제일 좋음.
TTFT: 294ms — 메인라인이랑 거의 똑같음
Spiritbuun DFlash
자체 드래프트 모델로 테스트했습니다. MTP 속도도 못 따라오네요: 코드 67.0 TPS, 서술 30.4 TPS. 긴 컨텍스트 성능은 테스트 안 했습니다. 그럴 가치가 없어 보여서요.
beellama DFlash — 미친 코드 속도, 높은 TTFT 비용
자체 드래프트 모델(anbeeld-Qwen3.6-27B-DFlash-IQ4_XS.gguf)에 cross-ctx 1024, 통합 KV를 씁니다.
코드: 96.8 TPS — 전체 2등, ik_llama랑 거의 비슷함
서술: 45.7 TPS
단점: TTFT가 504ms (메인라인의 거의 두 배). 첫 글자 뜨는 데 0.5초 걸림.
VRAM: 20814 MiB. GPU 사용률은 적당함(73%).
컨텍스트: 128k에서 27.1 DP 유지. 긴 컨텍스트에서는 ik_llama MTP보다 나음.
LUCEBOX DFlash — 나한테는 안 돌아감
DFlash, TQ3 KV 캐시, PFlash가 들어간 독립 서버 엔진인데...
코드: 32.7 DP | 서술: 32.5 DP
추론 디코딩 안 쓴 것보다 못한 경우가 많음
내가 이걸 제대로 못 쓴 건가? 내가 incus 컨테이너에서 쓴 환경은 이거임:
environment.DFLASH_FP_USE_BSA: "1"
environment.DFLASH_HOST: 0.0.0.0
environment.DFLASH_KVFLASH: auto
environment.DFLASH_PORT: "8080"
environment.DFLASH_PREFILL_DRAFTER: /opt/lucebox-hub/server/models/unsloth-Qwen3-0.6B-BF16.gguf
environment.DFLASH_PREFILL_MODE: auto
environment.DFLASH_SERVER_BIN: /opt/lucebox-hub/server/build/dflash_server
environment.DFLASH_TARGET: /opt/lucebox-hub/server/models/Qwen3.6-27B-Q4_K_M.gguf
environment.DFLASH27B_KV_TQ3: "1"
일관성 판정
실사용 일관성(컨텍스트 길이에 따른 속도 안정성 + 낮은 TTFT + 낮은 VRAM 오버헤드)만 놓고 순위를 매겨보면:
mainline llama.cpp MTP — 일관성 면에서 압도적 1위. 72k에서 128k 사이 성능 저하가 거의 없음. TTFT도 제일 낮음(288ms). VRAM도 안정적(~21GB). 외부 드래프트 모델 의존성도 없음. 뻑나지도 않고, 튀지도 않고, 스로틀링도 안 걸림.
Spiritbuun MTP — 성능 저하 딱 9%, TTFT 294ms로 아주 안정적임. 메인라인보다 처리량은 살짝 낮지만 결과값이 엄청나게 예측 가능함.
ik_llama 설정 — 짧은 컨텍스트에선 빠른데, 긴 컨텍스트로 가면 대가를 톡톡히 치름(-25%에서 -32%까지 성능 떡락).
내 생각: 메인라인이랑 Spiritbuun 차이는 미미함(TPS 3~5 정도). 근데 메인라인은 성능 저하가 아예 없고 TTFT도 제일 낮아서 실질적으로 가장 일관된 설정임. 긴 문서나 RAG 파이프라인 돌릴 거면 메인라인이 뒤통수 칠 일 없음. ik_llama는 속도 하나는 확실한데, 짧은 컨텍스트에 올인하는 꼴임.
최종 추천
Priority
Best Option
Why
Code speed
ik_llama MTP+ngram
98.5 DP, double the baseline
Narrative speed
ik_llama MTP (ubergarm)
63.9 TPS
Context consistency
mainline llama.cpp
0% degradation, lowest TTFT
Balance speed + stability
Spiritbuun MTP
Near-mainline consistency with slightly better throughput
Low TTFT
mainline llama.cpp
288ms, zero overhead
너네 생각은 어떰?
주요 댓글
r/localllama
사용자들은 주로 컨텍스트 확장 시 발생하는 속도 저하 문제와 하드웨어 설정에 대해 논의하며, 일관성 면에서 mainline llama.cpp가 가장 안정적이라는 점에 공감하고 있습니다.
9
그럼 컨텍스트를 제대로 활용하고 싶으면 mainline을 써야 한다는 건가요?
그리고 mainline은 draft=2나 draft=3+최소 확률 설정일 때 더 빠르던데요.
2
네, 일관성 면에서는 mainline이 정답입니다.
1
그럼 난 이미 집에 온 거나 다름없네.
하지만 정보 공유해 줘서 고마워.
7
뭐가 잘못된 건지 모르겠는데, 4090에 24GB VRAM을 쓰고 있는데도 64k 컨텍스트를 넘기면 속도가 엄청나게 떨어져요. 같은 양자화 모델인데도 32k로는 부족해서 27b 모델을 제대로 못 쓰고 있네요.
저는 리눅스 환경이고 내장 그래픽을 주 디스플레이로 써서 4090에는 아무것도 안 돌아가게 했어요. 리눅스 쓰시면 nvidia-smi로 확인해 보세요.
0
KV 사이즈 때문에 모델이 RAM으로 넘치고(spilling) 있는 거예요. 밀집(dense) 모델에서 KV가 넘치면 성능이 안 나오거나 쓸 수 없게 되죠. MoE 모델은 그나마 낫고 속도 저하도 덜합니다. 더 작은 모델이나 더 낮은 양자화, 아니면 MoE 모델을 써야 할 거예요.
1
로딩이 다 끝난 후에도 넘치는 현상이 발생하나요? 60k 컨텍스트 넘어가면 30tg/s로 떨어지는데, 그 전에는 거의 두 배 속도가 나오거든요.
0
윈도우에서 돌리시나요? 일반적인 작업에 1GB 정도 먹는다고 가정하면요.
어떤 양자화를 시도 중이신가요? IQ4가 그나마 작은 편에 속하는데요.
0
llama.cpp에 RTX 4090 관련 버그가 있는 것 같아요. RTX 3090이랑 똑같은 설정과 파라미터로 시도해 봤는데, 4090에서 속도가 훨씬 느리게 나와요!
1
아니면 쿠다(cuda) 관련 버그일 수도 있겠네요... 쿠다를 최신 버전으로 업데이트해 보세요.
0
난 RTX 3090에서 27b-Q4-XL 모델로 130k 컨텍스트를 쉽게 돌릴 수 있어. *AI 전용 GPU로 쓰고, 영상 출력은 내장 그래픽으로 돌리는 중.