
O tym, czy LLM zmieści się na karcie, nie decyduje wyłącznie wielkość pobranego pliku. W naszej zakończonej próbie Qwen3-8B Q4_K_M miał plik wag o rozmiarze około 4,68 GiB. Najwyższy zaobserwowany odczyt pamięci GPU dla pracującego serwera wyniósł około 9,88 GiB — z czterema slotami, kontekstem 8704 tokenów na slot i KV cache F16.
Ta różnica nie jest „zmarnowaną pamięcią”. Przy planowaniu trzeba uwzględnić poza wagami również kontekst, bufory obliczeniowe i środowisko wykonawcze. Porównanie samego rozmiaru GGUF z napisem „96 GB” na GPU pomija te składniki.
Zakończone testy obsługi zapytań
| Model i format | Suma rozmiarów plików wag | Najwyższe odnotowane użycie pamięci GPU | Sprawdzony scenariusz |
|---|---|---|---|
| Qwen3-8B, Q4_K_M | 5 027 783 488 B / 4,68 GiB | 10 114 MiB / 9,88 GiB | Wejście 2048 i 8192 tokeny; 1 i 4 równoległe zapytania; po 256 tokenów wyjścia |
Podane bajty pochodzą ze sprawdzonych plików, a odczyty GPU z nvidia-smi, próbkowanego co dwie sekundy podczas pracy serwera. W tym artykule GiB oznacza 2³⁰ bajtów, MiB — 2²⁰ bajtów. Marketingowe oznaczenie karty 96 GB VRAM nie jest odczytem wolnej pamięci konkretnego procesu.
Maksimum obejmuje globalne użycie pamięci GPU: model, przydział KV cache oraz pozostałe bufory runtime. To nie jest minimalny wymóg VRAM modelu ani dokładny pomiar pamięci przypisanej tylko do jego wag. Również próbkowanie może pominąć krótkie szczyty. Kartę na czas tych obliczeń miał do dyspozycji jeden serwer modelu, bez równoległego renderowania.
Co sprawdziliśmy dodatkowo dla modelu 32B
Qwen3-32B Q4_K_M ukończył na tej karcie wszystkie sześć krótkich prób llama-bench: przetwarzanie wejścia i generowanie przy głębokości 2048, 8192 oraz 32 768 tokenów, z 256 tokenami wyjścia w każdej próbie generowania. Każdy przypadek poprzedzało schłodzenie GPU do najwyżej 40°C. Potwierdza to zmieszczenie się tej konkretnej konfiguracji w krótkim teście silnika, nie ciągłą stabilność ani maksymalną liczbę użytkowników. Szczegóły zawiera mikrobenchmark silnika.
Próba API 32B ukończyła scenariusze 2048/1, 2048/4 i 8192/1 (tokeny wejścia / równoległe zapytania), ale skrypt zatrzymał ją podczas rozgrzewki 8192/4 przy 85°C i zapasie termicznym 7°C. Nie ukończyła się rozgrzewka ani mierzona runda tego ostatniego scenariusza. Zadziałał próg skryptu, nie zgłoszenie OOM. W próbce przy zatrzymaniu SW/HW thermal slowdown miały stan „Not Active”, a ograniczenie mocy „Active” przy fabrycznym limicie 300 W. Dlatego tabela zakończonych prób API i ich maksimum pamięci nadal obejmuje wyłącznie 8B; z krótkich prób silnika nie wyprowadzamy szczytowego zużycia VRAM dla serwera API 32B.
A co z modelem 72B?
Qwen2.5-72B-Instruct Q4_K_M uruchomił się na tej karcie i ukończył krótkie próby silnika dla wejścia 2048 oraz 8192 tokenów, a także generowania po 256 tokenów przy obu tych głębokościach. Każdy przypadek poprzedzało schłodzenie do najwyżej 40°C. Próba przetwarzania 32 768 tokenów została zatrzymana przez nasz próg 85°C; nie jest więc zaliczoną pełną macierzą ani potwierdzeniem ciągłej obsługi długiego kontekstu. Zakres opisujemy w teście silnika. Ta wersja 72B ma odrębną licencję Qwen, nie Apache-2.0.
Oddzielna próba API 72B ukończyła trzy mierzone rundy przy 2048 tokenach wejścia i jednym zapytaniu. Przy 2048 tokenach i czterech zapytaniach zakończyła tylko jedną rundę z czterema odpowiedziami; scenariusze 8192 tokenów nie zostały uruchomione. Skrypt zatrzymał test po osiągnięciu progu 85°C. To niepełna seria: nie dodajemy jej do tabeli zakończonych prób ani nie przedstawiamy odczytu pamięci z tej próby jako potwierdzonej pojemności dla pełnego zestawu obciążeń API 72B.
Dlaczego kontekst i sloty zmieniają wynik
W tej konfiguracji llama-server rezerwował łącznie 34 816 tokenów kontekstu: cztery sloty po 8704. Taki przydział pozostawał aktywny także wtedy, gdy test wysyłał tylko jedno zapytanie. Nie należy więc odczytywać tabeli jako minimalnej pamięci dla jednego krótkiego promptu.
Wejście liczyło maksymalnie 8192 tokeny, a odpowiedź 256. Pozostałe miejsce było zapasem w konfiguracji slotu. Nie włączaliśmy automatycznego zmniejszania przydziału, przesuwania kontekstu ani cache powtarzanych promptów. Parametry kontekstu i równoległości opisuje dokumentacja przypiętej rewizji llama-server.
Większa liczba slotów lub inny format KV może zmienić zużycie pamięci. Nie obliczamy maksymalnej liczby użytkowników przez proste dzielenie 96 GB przez rozmiar pliku: użytkownik nie jest stałym przydziałem jednego modelu, a zapytania różnią się długością i częstością.
RAM i VRAM to różne zasoby
VRAM należy do karty graficznej. RAM systemowy służy procesorowi, aplikacji i m.in. pamięci podręcznej plików. Większy RAM systemowy nie powiększa fizycznej VRAM GPU. Rozwiązania wykorzystujące CPU lub offload mają odmienny profil wydajności i wymagają osobnego testu.
Stanowisko miało RTX PRO 6000 Blackwell Max-Q z 96 GB VRAM, EPYC 4565P oraz 96 GB RAM systemowego. Użyliśmy Rocky Linux 10.2, sterownika NVIDIA 595.91.07 i przypiętego llama.cpp 0.5.0-dev b11146 z CUDA 12.8. W danych znajduje się również dokładna ilość RAM widoczna dla systemu, która różni się od pojemności zamontowanych modułów.
Uruchomienie modelu a szybkość dysku
Dla Qwen3-8B od startu procesu do pierwszej udanej odpowiedzi /health zaobserwowaliśmy około 2,03 s. To pojedynczy odczyt, z kontrolą gotowości co sekundę. Przed uruchomieniem weryfikowaliśmy sumę pliku modelu, przez co systemowa pamięć podręczna była rozgrzana.
Nie nazywamy tego pomiarem zimnego odczytu z NVMe ani liczbą gigabajtów na sekundę dysku. Czas obejmował także inicjalizację runtime, wczytanie wag i przydział kontekstu. Warto mierzyć go oddzielnie od obsługi już działającego API, szczególnie jeżeli aplikacja często zmienia model.
Jak zaplanować próbę własnego modelu
Zapisz dokładną nazwę modelu i rewizję, format wag, maksymalną długość promptu i odpowiedzi, liczbę równoległych zapytań oraz format KV cache. Następnie sprawdź nie tylko uruchomienie procesu, lecz także zakończenie najdłuższego przewidzianego zapytania i zachowanie pod obciążeniem.
Q4_K_M w tej serii oznacza konkretny wariant kwantyzacji; wyniki nie przenoszą się automatycznie na FP16, BF16 ani inne formaty. Test pojemności nie ocenia też jakości odpowiedzi. Model Qwen3-8B pochodzi z repozytorium wydawcy w przypiętej rewizji. Warunki licencyjne należy sprawdzić osobno dla wybranego modelu.
Zobacz również wyniki opóźnień i równoległości API oraz mikrobenchmark generowania tokenów. Jeśli znasz już swój model i przewidywane obciążenie, zapytaj o dopasowanie serwera.