llama.cpp 를 활용한 16GB VRAM LLM 벤치마크 (속도 및 컨텍스트)

16GB VRAM 환경에서의 llama.cpp 토큰 속도 (테이블)

Page content

여기서는 VRAM 16GB 를 보유한 GPU 에서 여러 LLM 의 속도를 비교하고, 자체 호스팅에 가장 적합한 모델을 선별해 보고 있습니다.

저는 llama.cpp 를 사용하여 19K, 32K, 64K 토큰 컨텍스트 윈도우에서 이러한 LLM 을 실행해 보았습니다.

Stylized GPU with VRAM blocks and benchmark-style charts

이 글에서는 속도 측면에서 최대한의 성능을 끌어낼 수 있는 시도를 기록하고 있습니다.

LLM 속도 비교 표 (초당 토큰 수 및 VRAM)

모델 크기 19K VRAM 19K GPU/CPU 19K T/s 32K VRAM 32K Load 32K T/s 64K VRAM 64K Load 64K: T/s
Qwen3.5-35B-A3B-UD-IQ3_S 13.6 14.3GB 93%/100% 136.4 14.6GB 93%/100% 138.5 14.9GB 88%/115% 136.8
Qwen3.5-27B-UD-IQ3_XXS 11.5 12.9 98/100 45.3 13.7 98/100 45.1 14.7 45/410 22.7
Qwen3.5-122B-A10B-UD-IQ3_XXS 44.7 14.7 30/470 22.3 14.7 30/480 21.8 14.7 28/490 21.5
nvidia Nemotron-Cascade-2-30B IQ4_XS 18.2 14.6 60/305 115.8 14.7 57/311 113.6 14.7 55/324 103.4
gemma-4-26B-A4B-it-UD-IQ4_XS 13.4 14.7 95/100 121.7 14.9 95/115 114.9 14.9 75/190 96.1
gemma-4-31B-it-UD-IQ3_XXS 11.8 14.8 68/287 29.2 14.8 41/480 18.4 14.8 18/634 8.1
GLM-4.7-Flash-IQ4_XS 16.3 15.0 66/240 91.8 14.9 62/262 86.1 14.9 53/313 72.5
GLM-4.7-Flash-REAP-23B IQ4_XS 12.6 13.7 92/100 122.0 14.4 95/102 123.2 14.9 71/196 97.1

19K, 32K, 64K 는 컨텍스트 크기를 의미합니다.

위 표의 loadGPU 부하를 나타냅니다. 이 열에서 낮은 수치를 보인다면, 해당 모델이 주로 CPU 에서 실행되고 있어 이 하드웨어에서 적절한 속도를 얻을 수 없음을 의미합니다. 이러한 패턴은 모델의 너무 작은 부분이 GPU 에만 담기거나 컨텍스트가 호스트로 다시 밀려날 때 사람들이 흔히 경험하는 현상과 일치합니다.

llama.cpp, LLM 성능, OpenCode 및 기타 비교에 대하여

설치 경로, llama-clillama-server 예시, 그리고 VRAM 과 초당 토큰 수 (컨텍스트 크기, 배치 처리, -ngl) 에 영향을 미치는 플래그에 대해 알고 싶다면 llama.cpp CLI 와 서버로 빠른 시작 를 참조하세요.

전반적인 성능 그림 (처리량 대 지연 시간, VRAM 한계, 병렬 요청, 하드웨어 및 런타임 간 벤치마크의 통합 등) 에 대해서는 2026 년 LLM 성능: 벤치마크, 병목 현상 및 최적화 를 참고하시기 바랍니다.

응답의 품질은 다른 글들에서 분석되었습니다. 예를 들어:

저는 Ollama 에서 LLM 에 대해 유사한 테스트를 수행했습니다: 16GB VRAM GPU 에서 Ollama 에 가장 적합한 LLM.

컨텍스트 길이가 초당 토큰 수에 영향을 미치는 이유

19K 에서 32K 또는 64K 토큰으로 이동할 때 KV 캐시가 커지고 VRAM 압력이 높아집니다. 일부 행에서는 64K 에서 초당 토큰 수가 크게 떨어지는 반면, 다른 행에서는 평탄하게 유지되는 것을 볼 수 있습니다. 이는 모델이 일반적으로 “느리다"고 가정하기보다는 양자화 (quants), 컨텍스트 한계 또는 레이어 오프로딩을 재검토해야 함을 나타내는 신호입니다.

저는 테스트할 모델과 양자화를 스스로 실행하여 이 장비에서 비용/효과 측면에서 좋은 이득을 주는지 확인하기 위해 선택했습니다. 따라서 20 만 컨텍스트를 가진 q8 양자화는 여기에서 제외되었습니다 :) …

GPU/CPU 는 nvitop로 측정된 부하입니다.

llama.cpp 는 GPU 로 레이어를 자동으로 언로드할 때 1GB 를 여유롭게 남기도록 설정하려고 시도합니다. 우리는 명령줄 파라미터 -ngl를 통해 이 매개변수를 수동으로 지정하지만, 여기서는 미세 조정하지 않습니다. 단지 32k 에서 64k 로 컨텍스트 윈도우 크기를 증가시킬 때 성능이 현저히 떨어지는 경우, 언로드된 레이어 수를 미세 조정하여 64k 에서 속도를 높일 수 있다는 점을 이해하면 됩니다.

테스트 하드웨어 및 llama.cpp 설정

저는 다음 사양의 PC 에서 LLM 속도를 테스트했습니다:

  • CPU i-14700
  • RAM 64GB 6000Hz (2x32GB)
  • GPU RTX-4080
  • NVidia 드라이버가 설치된 Ubuntu
  • llama.cpp/llama-cli, 언로드된 레이어 지정 없음
  • llama-cli 시작 전 초기 VRAM 사용량: 300MB

128K 컨텍스트에서의 추가 실행 (Qwen3.5 27B 및 122B)

모델 128K Load 128K: T/s
Qwen3.5-27B-UD-IQ3_XXS 16/625 9.6
Qwen3.5-122B-A10B-UD-IQ3_XXS 27/496 19.2

16GB VRAM 빌드를 위한 주요 결론

  • 저의 현재 최애인 Qwen3.5-27B-UD-IQ3_XXS 는 50k 컨텍스트 (약 36t/s) 의 최적점에서 매우 잘 작동하는 것으로 보입니다.
  • Qwen3.5-122B-A10B-UD-IQ3_XXS 는 64K 이상의 컨텍스트에서 성능 면에서 Qwen3.5 27B 를 앞질러가는 것으로 나타납니다.
  • Qwen3.5-35B-A3B-UD-IQ3_S 를 10 만 토큰 컨텍스트까지 처리하도록 밀어올릴 수 있으며 VRAM 에도 잘 들어맞아 성능 저하가 없습니다.
  • 16GB VRAM 에서는 gemma-4-31B 를 사용하지 않을 것이지만, gemma-4-26B 는 중간 정도일 것 같습니다. 테스트가 필요합니다.
  • Nemotron cascade 2 와 GLM-4.7 Flash REAP 23B 가 얼마나 잘 작동하는지 테스트해야 합니다. Qwen3.5-35B q3 보다 더 나을까요? 저는 의문스럽지만 여전히 의심을 확인하기 위해 테스트해 볼 것입니다.