Testy wydajności LLM z 16 GB VRAM przy użyciu llama.cpp (prędkość i kontekst)

Prędkość tokenów llama.cpp przy 16 GB VRAM (tabele).

Page content

Porównuję tutaj szybkość kilku modeli LLM działających na GPU z 16 GB VRAM, wybierając najlepszy do hostowania własnego.

Uruchniałem te modele LLM w ramach llama.cpp z oknami kontekstu o długości 19K, 32K i 64K tokenów.

Stylizowana grafika GPU z blokami VRAM i wykresami benchmarkowymi

W tym poście dokumentuję moje próby wydobywania jak największej wydajności pod kątem szybkości.

Tabela porównawcza szybkości LLM (tokeny na sekundę i VRAM)

Model Size 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 i 64K to rozmiary kontekstu.

Powyższy parametr load to Obciążenie GPU. Jeśli widzisz niską liczbę w tej kolumnie, oznacza to, że model działa głównie na CPU i nie osiąga na tym sprzęcie żadnej godnej uwagi szybkości. Ten wzorzec jest zgodny z tym, co obserwują użytkownicy, gdy zbyt mała część modelu zmieści się na GPU lub gdy kontekst zmusza do przenoszenia pracy z powrotem na hosta.

O llama.cpp, wydajności LLM, OpenCode i innych porównaniach

Jeśli chcesz uzyskać ścieżki instalacji, przykłady llama-cli i llama-server, a także flagi istotne dla VRAM i liczby tokenów na sekundę (rozmiar kontekstu, grupowanie, -ngl), zacznij od Szybki start llama.cpp z CLI i serwerem.

Aby uzyskać szerszy obraz wydajności (przepustowość vs opóźnienia, limity VRAM, równoległe żądania oraz jak benchmarky łączą się w zależności od sprzętu i środowisk uruchomieniowych), zobacz Wydajność LLM w 2026: Benchmarki, wąskie gardła i optymalizacja.

Jakość odpowiedzi analizowana jest w innych artykułach, na przykład:

Przeprowadziłem podobny test dla LLM na Ollama: Najlepsze LLM dla Ollama na GPU z 16 GB VRAM.

Dlaczego długość kontekstu zmienia liczbę tokenów na sekundę

Przy przejściu od 19K do 32K lub 64K tokenów rośnie pamięć podręczna KV, a presja na VRAM się zwiększa. Niektóre wiersze pokazują duży spadek liczby tokenów na sekundę przy 64K, podczas gdy inne pozostają płaskie – to sygnał, że należy ponownie przemyśleć kwantyzację, limity kontekstu lub offload warstw, zamiast zakładać, że model jest ogólnie „wolny".

Modele i kwantyzacje, które wybrałem do testów, mają na celu sprawdzenie, czy dają dobry zysk pod względem kosztu i korzyści na tym sprzęcie, czy nie. Więc tu nie ma kwantyzacji q8 z kontekstem 200k :) …

GPU/CPU to obciążenie, mierzone przez nvitop.

llama.cpp przy automatycznej konfiguracji warstw odciążanych do GPU stara się zachować 1 GB wolnej pamięci. Mamy możliwość ręcznego ustawienia tego parametru za pomocą parametru linii poleceń -ngl, ale tutaj nie dostosowuję go precyzyjnie, po prostu trzeba zrozumieć, że jeśli nastąpił znaczący spadek wydajności przy zwiększaniu rozmiaru okna kontekstu z 32k do 64k – możemy spróbować zwiększyć prędkość przy 64k, dostosowując liczbę odciążonych warstw.

Sprzęt testowy i konfiguracja llama.cpp

Testowałem szybkość LLM na komputerze PC o następującej konfiguracji:

  • CPU i-14700
  • RAM 64GB 6000Hz (2x32GB)
  • GPU RTX-4080
  • Ubuntu z sterownikami NVidia
  • llama.cpp/llama-cli, bez określonych warstw odciążonych
  • Początkowe zużycie VRAM przed uruchomieniem llama-cli: 300MB

Dodatkowe testy z kontekstem 128K (Qwen3.5 27B i 122B)

Model 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

Wnioski dla budów z 16 GB VRAM

  • Moim obecnym faworytem, Qwen3.5-27B-UD-IQ3_XXS, wygląda dobrze w swoim optymalnym zakresie kontekstu 50k (osiągam około 36t/s).
  • Qwen3.5-122B-A10B-UD-IQ3_XXS pod względem wydajności wyprzedza Qwen3.5 27B w kontekstach powyżej 64K.
  • Mogę wymusić na Qwen3.5-35B-A3B-UD-IQ3_S obsłużenie kontekstu 100k tokenów, a on mieści się w VRAM, więc nie ma spadku wydajności.
  • Nie będę używać gemma-4-31B na 16GB VRAM, ale gemma-4-26B może być średnio dobra…, trzeba przetestować.
  • Należy przetestować, jak dobrze działają Nemotron cascade 2 i GLM-4.7 Flash REAP 23B. Czy będą lepsze niż Qwen3.5-35B q3? Wątpię, ale i tak warto przetestować, aby potwierdzić podejrzenia.