← Blog

Benchmarki: Bielik i PLLuM na P40/P100/V100 - realne tokeny/s z czasem prefill

Agile Store · 13 sierpnia 2026 · 7 min czytania

  • model:p40-24
  • model:p100-16
  • model:v100-16
  • model:v100-32
  • arch:pascal
  • arch:volta
  • 0
  • 0

Krótka odpowiedź: tani VRAM nie znaczy „szybko". Zmierzyliśmy Bielika i PLLuM na używanych Teslach — i różnice są duże. Generacja tokenów na P40 jest znośna (~28 tok/s), ale prefill (przetworzenie promptu, zanim padnie pierwsze słowo) jest wolny w liczbach bezwzględnych: P40 robi ~590 tok/s prompt eval, a V100 (Volta) ~1960 — ponad trzykrotnie szybciej. P100 w naszym teście nie pokazuje przewagi nad P40 mimo szybszej pamięci HBM2. Poniżej masz nasze zmierzone liczby wraz z warunkami, plus gotowy szablon, żebyś zweryfikował je na własnej karcie.

Piszę to z perspektywy kogoś, kto sprzedaje te karty i jednocześnie ma dość benchmarków, które pokazują tylko jedną liczbę: „ile tokenów na sekundę generuje". To jest połowa prawdy i to ta ładniejsza połowa. Klient kupuje Tesla P40 24GB, odpala Bielika, wrzuca krótkie „cześć, jak się masz" i widzi znośną prędkość. Potem wkleja stronę tekstu do streszczenia albo buduje RAG-a z długim kontekstem — i nagle czeka dłużej, zanim model w ogóle zacznie pisać. To nie jest awaria. To jest prefill. I o tym większość poradników milczy.

Dwie fazy, które musisz rozróżnić

Każde zapytanie do LLM ma dwie fazy o zupełnie różnej charakterystyce wydajnościowej.

Prefill (prompt processing / prompt eval). Model musi przeliczyć cały Twój prompt — wszystkie tokeny wejściowe — zanim wygeneruje pierwszy token odpowiedzi. W typowym interaktywnym scenariuszu (batch = 1) ta faza jest znacznie bardziej compute-bound: obciąża jednostki obliczeniowe (mnożenie macierzy). Tu przewagę daje surowa moc obliczeniowa GPU — a na Volcie dodatkowo Tensor Cores, o ile ścieżka obliczeniowa backendu z nich korzysta. Im dłuższy kontekst (system prompt + dokumenty + historia rozmowy), tym dłużej trwa prefill. W llama.cpp zobaczysz to jako prompt eval time i metrykę w tok/s (pp).

Generacja (decode / eval / token generation). Po prefillu model produkuje odpowiedź token po tokenie. W tym samym scenariuszu batch = 1 ta faza jest zwykle ograniczona przepustowością pamięci: liczy się, jak szybko karta czyta wagi modelu z VRAM. Tu HBM2 w V100/P100 (wysoka przepustowość) daje przewagę, a GDDR5 w P40 wystarcza do sensownych prędkości na modelach 7-13B.

Kluczowy wniosek: VRAM decyduje, czy model się ZMIEŚCI. Przepustowość pamięci decyduje, jak szybko GENERUJE. Moc obliczeniowa decyduje, jak szybko przetwarza PROMPT (a na Volcie pomagają w tym Tensor Cores). P40 wygrywa pojemnością (24 GB), przegrywa prefillem. To nie jest wada ukryta — to fizyka architektury Pascal, która nie ma Tensor Cores w ogóle.

Dlaczego akurat te karty tak się różnią

Krótkie, pewne fakty:

  • P40 (Pascal): 24 GB GDDR5, brak Tensor Cores, słaby FP16 (natywnie liczy w FP32/INT8). Najwięcej VRAM za najmniej pieniędzy. Prefill w naszym teście wyraźnie wolniejszy; P40 nie ma Tensor Cores ani sprzętowego przyspieszenia macierzy dostępnego w Volcie.
  • P100 (Pascal): 16 GB HBM2, brak Tensor Cores, ale ma pełnoprawny FP16. Lepsza przepustowość niż P40, generacja porównywalna, a prefill — o dziwo — u nas wyszedł nawet niższy niż na P40. Składa się na to kilka czynników: mniej rdzeni CUDA w GP100 niż w GP102, ale też architektura, zegary i konkretna ścieżka obliczeniowa backendu. HBM2 tego nie nadrabia — prompt eval zależy tu od mocy obliczeniowej, nie przepustowości pamięci.
  • V100 (Volta): 16 lub 32 GB HBM2, Tensor Cores 1. generacji. To jest ta karta, która w naszym teście realnie przyspiesza prefill względem Pascali — ~3,3× względem P40 i ~4,7× względem P100. Ile z tej przewagi daje sama architektura Volta, a ile Tensor Cores — benchmark nie rozstrzyga; pokazuje wynik, nie jego rozbicie. Droższa, ale jeśli boli Cię długi kontekst albo czas do pierwszego tokena — to różnica jakościowa, nie kosmetyczna.

Tabela wyników — nasze pomiary

Poniżej realne liczby z naszego stanowiska. Traktuj je jako punkt odniesienia, nie wyrocznię — i koniecznie zmierz własną konfigurację: sterownik i build llama.cpp potrafią ruszyć wynik, więc najlepszy benchmark to ten na Twojej karcie. Gotową procedurę i komendę masz niżej, w sekcji „Jak zmierzyć samemu".

Karta VRAM Model / quant Prefill
(pp512, tok/s)
Generacja
(tg128, tok/s)
P40 24GB 24 GB GDDR5 Bielik 11B Q4_K_M 593,6 28,5
P40 24GB 24 GB GDDR5 PLLuM 12B Q4_K_M 612,2 27,1
P100 16GB 16 GB HBM2 Bielik 11B Q4_K_M 419,0 27,2
V100 16GB 16 GB HBM2 Bielik 11B Q4_K_M 1963,0 77,7
V100 32GB 32 GB HBM2 Bielik 11B Q4_K_M 1963,0 77,7
V100 32GB 32 GB HBM2 Bielik 11B Q5_K_M 1986,1 70,0

Warunki pomiaru (trzymaj je stałe, jeśli porównujesz): llama.cpp llama-bench, GGUF, cały model na GPU (-ngl 99); prefill mierzony przy 512 tokenach (-ub 512), generacja 128 tokenów, 3 powtórzenia. Każda karta na maksymalnym power limicie (P40/P100 = 250 W — na niższym, zdławionym limicie prefill potrafi spaść o kilkadziesiąt procent). Sterownik NVIDIA 580.173.02, CUDA 12.0, karty na PCIe Gen3. V100 16 GB i 32 GB to ten sam układ GV100 — na tym samym quancie Q4_K_M dają identyczny wynik (1963 / 77,7), więc o prędkości decyduje krzem, nie pojemność; różni je tylko to, jak duży model się zmieści (32 GB mieści większe modele). Uwaga: trzeci wiersz V100 (Q5_K_M) to inny quant — nie porównuj go wprost z wierszami Q4; wyższy quant czyta więcej danych z VRAM, stąd niższa generacja (70,0 vs 77,7). Bielik-11B-v2.3-Instruct oraz PLLuM-12B-instruct (wariant komercyjny).

Dwie rzeczy, które te liczby pokazują wbrew popularnym mitom:

  1. Wąskim gardłem jest bezwzględna przepustowość prompt evalu, nie „załamanie" na długim kontekście. Sam czas przetwarzania 512-tokenowego promptu można przybliżyć jako długość_promptu ÷ pp: P40 ~0,86 s (512 ÷ 594), V100 ~0,26 s (512 ÷ 1963) — to główny składnik czasu do pierwszego tokena, choć nie całość pipeline'u. Im dłuższy kontekst (system prompt + dokumenty RAG), tym proporcjonalnie dłużej — i właśnie tę różnicę czujesz, gdy wkleisz stronę tekstu zamiast krótkiego pytania.
  2. Generacja na V100 to inna liga — ~78 tok/s vs ~28 na P40/P100. V100 łączy znacznie nowszą architekturę Volta z HBM2 i Tensor Cores. Przy interaktywnym czacie 28 tok/s jest w pełni komfortowe; przy obsłudze wielu użytkowników albo długich odpowiedzi różnica robi się odczuwalna.

Linki: V100 16GB, V100 32GB, P100 16GB.

Werdykt

Na podstawie zmierzonych liczb, nie przeczuć:

  • P40 24GB — budżet i pojemność. Najlepszy stosunek VRAM do ceny. Model 13B wejdzie z zapasem, 70B w niższym quancie zmieści się na dwóch kartach. Generacja ~28 tok/s jest komfortowa do czatu. Kompromis: prompt eval ~590 tok/s to ~3× mniej niż V100 — przy długim kontekście poczujesz to jako dłuższe „time to first token". Jeśli robisz krótkie prompty i cenisz duży VRAM za małe pieniądze — świetny wybór. Więcej o P40 w praktyce: Tesla P40 + Ollama.
  • P100 16GB — najsłabszy wynik w naszym teście LLM. HBM2 nie przełożyło się u nas na przewagę: prefill ~419 tok/s (niżej niż P40), generacja ~27 tok/s (jak P40), a 16 GB ogranicza większe modele. Ma sens tylko przy naprawdę dobrej cenie.
  • V100 16/32GB — moc, gdy boli prefill lub generacja. V100 z architekturą Volta i Tensor Cores osiągnęła w naszym teście ~1960 tok/s prompt eval i ~78 tok/s generacji. Jeśli budujesz RAG, wrzucasz długie dokumenty albo obsługujesz wielu użytkowników — tu różnica jest odczuwalna. Płacisz więcej, dostajesz szybszy „time to first token" i wyższy przerób. Jeżeli V100 ma pracować jako część platformy wielokartowej, oferujemy również serwery Dell R740 z 1–3× Tesla V100 32 GB.

Ile VRAM realnie potrzebujesz pod dany model, rozkładam w osobnym wpisie: ile VRAM na LLaMA 7B/13B/70B.

Jak zmierzyć samemu — krok po kroku

Nie wierz nam na słowo — zweryfikuj na swojej maszynie. To jedyny sposób, żeby wiedzieć, czy Twój przypadek użycia utknie na prefillu.

  1. Zbuduj llama.cpp z obsługą CUDA (GGML_CUDA=ON / odpowiedni cmake pod architekturę karty).
  2. Pobierz GGUF Bielika i PLLuM w Q4_K_M i Q5_K_M.
  3. Ustaw kartę na maksymalny power limit (sudo nvidia-smi -pm 1 && sudo nvidia-smi -pl <max>) — inaczej zaniżysz prefill.
  4. Uruchom llama-bench (przykład niżej), zapisz pp i tg dla każdej kombinacji.
  5. Powtórz przy obciążonej karcie (drugi proces), jeśli planujesz produkcję wielousługową.
  6. Zanotuj wersję CUDA, buildu i sterownika — bez tego nie porównasz wyników między maszynami.
llama-bench -m bielik-11b-Q4_K_M.gguf -p 512,2048 -n 128 -ngl 99 -r 3

-p to długości promptu (prefill), -n to liczba generowanych tokenów. Wynik dostaniesz rozbity na pp (prompt processing) i tg (token generation). To są dwie liczby, o które chodzi.

Źródła


Tak, sprzedajemy te karty — P40 24GB, V100 16GB, V100 32GB, P100 16GB — więc traktuj ten wpis z odpowiednim dystansem. Ale właśnie dlatego podajemy warunki pomiaru i szablon do samodzielnej weryfikacji: mniej zwrotów, mniej rozczarowań. Każdą kartę przechodzimy przez test wygrzewający (burn-in) i wystawiamy certyfikat. Masz nietypowy scenariusz albo chcesz, żebyśmy pomogli dobrać kartę pod Twój kontekst? Napisz do nas.

FAQ

Czemu mój model „myśli" chwilę, zanim zacznie pisać?
To prefill. Im dłuższy prompt/kontekst, tym dłużej — a na kartach bez Tensor Cores (P40/P100) prompt eval jest bezwzględnie wolniejszy. Skróć system prompt, ogranicz kontekst RAG albo weź kartę z Tensor Cores (V100).
P40 czy V100 do Bielika?
Krótkie prompty i budżet → P40 (generacja ~28 tok/s w zupełności wystarcza). Długi kontekst, RAG, wielu userów → V100 (prefill ~3× szybszy, generacja ~2,7×). Zmierz oba wg powyższej metodyki, jeśli możesz.
Skąd te konkretne liczby?
Zmierzyliśmy je sami na naszym stanowisku (warunki pod tabelą: llama-bench, GGUF, -ngl 99, pełny power limit). To nie są dane z datasheetu ani z cudzego posta — to nasz pomiar. Twoja konfiguracja (sterownik, build) może dać nieco inne wartości, dlatego dajemy też szablon do samodzielnej weryfikacji.
Czy quant Q4 vs Q5 wpływa na prędkość?
Tak — mniejszy quant to mniej danych do czytania z VRAM, więc zwykle szybsza generacja i mniejsze zużycie pamięci, kosztem odrobiny jakości. U nas na V100 Bielik Q4 generował ~78 tok/s, Q5 ~70. Testuj oba.
Czy dwie P40 przyspieszą prefill?
Nie. Rozłożą model i VRAM (odpalisz większy model), ale w naszym teście split warstwowy na dwóch P40 zwiększył dostępną pamięć, a nie przełożył się na proporcjonalny wzrost wydajności prefillu — pojemność rośnie, prędkość prompt processingu nie. Więcej VRAM ≠ szybszy prompt processing.

Powiązane produkty