← Blog

Tesla P40 vs V100 do lokalnego LLM/RAG - 24 GB VRAM czy szybsza Volta?

Agile Store · 28 października 2026 · 9 min czytania

  • topic:rag
  • use:llm
  • arch:pascal
  • arch:volta
  • model:p40-24
  • model:v100-16
  • model:v100-32
  • 0
  • 0

Krótka odpowiedź: w naszych pomiarach V100 generowała tekst ok. 2,6–3,1× szybciej niż P40 przy tym samym modelu i kwancie (zależnie od kwantu i wariantu V100) — ale to nie jest pytanie, które warto zadać jako pierwsze. Pierwsze pytanie brzmi: czy wąskim gardłem Twojego RAG-a jest w ogóle generacja, czy raczej retrieval i przetwarzanie kontekstu. Tam, gdzie kontekst jest krótki, różnica między P40 a V100 w przetwarzaniu promptu jest najmniejsza; tam, gdzie jest długi — rośnie.

Sprzedajemy używane Tesle, więc traktuj ten tekst jako pomiar sprzedawcy — liczby pochodzą z naszego własnego stanowiska testowego, nie z arkuszy producenta. Jeśli budujesz lokalny RAG i wahasz się między P40 24 GB a V100 16/32 GB, poniżej znajdziesz dane z jednego modelu, jednego backendu i jednej metodyki dla wszystkich trzech kart.

Jeden przewodni przykład: Bielik-11B na trzech kartach

Trzymam się jednego modelu przez cały tekst: Bielik-11B-v2.3-instruct (SpeakLeash), bo to model, którego realnie używamy w polskich wdrożeniach RAG. Testowałem go w trzech kwantyzacjach (Q4_K_M, Q5_K_M, Q8_0) na trzech kartach — P40 24 GB, V100 16 GB, V100 32 GB — przy czterech długościach kontekstu (512 / 2048 / 4096 / 8192 tokenów), przez Ollamę 0.33.2, na pełnym power limicie. Zastrzeżenie metodyczne, które obowiązuje dla całego tekstu: każdy punkt pomiarowy to pojedynczy przebieg, mierzyliśmy po jednym egzemplarzu każdej karty, a runner Ollamy obsługiwał w naszej konfiguracji jeden aktywny request (wartości OLLAMA_NUM_PARALLEL nie zalogowaliśmy; wskazuje na to stały peak VRAM niezależny od liczby równoległych zapytań w innym naszym teście). Tam, gdzie piszę o „konsekwentnym wzorcu", mam na myśli powtarzalność w naszej macierzy pomiarowej, nie niezależne powtórzenia.

Generacja / decode (tg, tokeny/s) — tu V100 wygrywa wyraźnie

Karta Kwant ctx 512 ctx 2048 ctx 4096 ctx 8192
P40 Q4_K_M 27,90 27,54 26,63 25,53
V100-16 Q4_K_M 79,84 74,90 76,18 72,53
V100-32 Q4_K_M 73,82 73,09 71,48 68,63
P40 Q5_K_M 23,90 23,53 23,11 22,23
V100-16 Q5_K_M 67,99 70,51 69,07 66,64
V100-32 Q5_K_M 67,98 66,92 64,93 62,31
P40 Q8_0 18,13 18,07 17,79 17,20
V100-16 Q8_0 55,79 55,63 54,21 52,66
V100-32 Q8_0 54,17 52,66 51,32 50,33

Przy Q4_K_M i ctx 512 V100-16 daje 79,8 tok/s wobec 27,9 tok/s na P40 — to 2,86×. Przewaga minimalnie spada z rosnącym kontekstem (przy 8192 to 2,84×), ale nie znika — Volta utrzymuje ją na całej badanej drabince kontekstu. Hipoteza co do przyczyny: V100 ma pamięć HBM2 o wyższej przepustowości niż GDDR5 w P40, a autoregresywny decode w tej klasie obciążeń jest często silnie ograniczony przepustowością pamięci — to mechanizm zgodny z typowym profilem decode i z obserwowaną przewagą V100, ale nasz test tego nie izoluje. Między kartami różni się także architektura SM, liczba rdzeni i obecność Tensor Cores, więc dokładny udział przepustowości pamięci w tej różnicy pozostaje nieustalony.

Prefill / przetwarzanie promptu (pp, tokeny/s) — tu różnica jest inna niż w generacji

Karta Kwant ctx 512 ctx 2048 ctx 4096 ctx 8192
P40 Q4_K_M 462,3 563,4 540,6 506,7
V100-16 Q4_K_M 803,5 1638,2 1816,3 2132,9
V100-32 Q4_K_M 781,1 1722,7 1770,7 2138,4

Tu przewaga V100 rośnie wraz z kontekstem — od ok. 1,7× przy 512 tokenach do ponad 4× przy 8192. Hipoteza: prefill jest w większym stopniu ograniczony mocą obliczeniową niż decode (mnożenia macierzowe na całym kontekście naraz), więc różnica w compute — Volta ma Tensor Cores, Pascal nie — miałaby tu większy udział niż w generacji. To spójne z rosnącym wraz z kontekstem rozstępem, ale nasz test tego nie izoluje. Dla RAG-a wniosek praktyczny jest niezależny od przyczyny: im dłuższy kontekst wstrzykujesz (więcej fragmentów (chunków) z retrievalu), tym więcej P40 traci względem V100 na etapie prefill, czyli przetwarzania kontekstu, zanim model zacznie odpowiadać. Czas prefill to główny składnik czasu do pierwszego tokena, ale nie pełny TTFT — tego end-to-end nie mierzyliśmy.

V100-16 vs V100-32 — czy dodatkowa pamięć kosztuje wydajność?

Krótka odpowiedź: w naszej serii pomiarowej niewiele, ale różnicę widać. Przy Q4_K_M/ctx 512 V100-16 daje 79,84 tok/s, V100-32 — 73,82 tok/s; różnica maleje z kontekstem (przy 8192 to 72,53 vs 68,63). Nasz egzemplarz V100-32 był w tej serii zwykle o kilka procent (0–ok. 8%, typowo ok. 5%) wolniejszy od naszego egzemplarza V100-16 na tym samym modelu i kwancie. To obserwacja na naszej parze egzemplarzy, przyczyna nieustalona. Publiczna specyfikacja NVIDIA podaje dla obu wariantów V100 tę samą nominalną przepustowość pamięci, więc wynik może wynikać m.in. z różnic egzemplarzy, zegarów osiąganych pod obciążeniem, temperatury, slotu i platformy albo wariancji pomiaru. Wzorzec jest konsekwentny w naszej macierzy pomiarowej, ale bez powtórzeń i wielu egzemplarzy nie rozstrzygamy, czy jest cechą wariantu 32 GB, konkretnej pary kart czy warunków stanowiska. Wniosek zakupowy pozostaje ten sam: V100-32 kupujesz za pojemność, nie za prędkość — jeśli model i kontekst mieszczą się w 16 GB, dodatkowa pamięć nie daje nic w tempie generacji, a nasz egzemplarz V100-16 był w tej serii pomiarowej szybszy.

VRAM: gdzie 24 GB robi różnicę

Karta/kwant VRAM peak ctx512 VRAM peak ctx8192
P40 Q4_K_M 6,7 GB 8,4 GB
P40 Q8_0 11,6 GB 13,2 GB
V100-16 Q8_0 11,9 GB 13,4 GB
V100-32 Q8_0 11,9 GB 13,5 GB

Bielik-11B w Q8_0 przy 8k kontekstu zajmuje ok. 13,2–13,5 GB VRAM na wszystkich trzech kartach — czyli V100-16 mieści się z zapasem niecałych 3 GB (16 384 − 13 404 MiB). To ważne, jeśli myślisz o odpaleniu Q8_0 razem z osobną kartą/procesem do embeddingów albo o dłuższym kontekście niż 8k — V100-16 zaczyna robić się ciasna, P40 24 GB i V100-32 mają dużo więcej zapasu.

Jakość: czy warto płacić prędkością/VRAM-em za wyższy kwant?

Zmierzyliśmy też jakość odpowiedzi (nie tylko prędkość) na V100-32, korpus scifact-pl, 60 ocenionych odpowiedzi na kwant: Q4_K_M ≈ 3,10, Q5_K_M ≈ 3,05, Q8_0 ≈ 3,00 (skala korekcyjna testu, wyżej = lepiej). Ocenę wystawiał sędzia LLM, bez testu statystycznego — przy takiej próbie różnice tego rzędu traktujemy jako niewykryte, nie jako dowód równości. Dodatkowy domiar na P40 (Q8_0, 20/20 odpowiedzi, 2026-09-11) nie zmienił tego obrazu. Innymi słowy: w tym konkretnym teście Q4_K_M dał najlepszy trade-off prędkość/VRAM bez wykrytego pogorszenia jakości — wyższe kwanty kosztują prędkość i VRAM, a poprawy jakości na tym zadaniu nie zaobserwowaliśmy. Zastrzeżenie: to jeden model (Bielik-11B) i jeden korpus (scifact-pl, dokumenty naukowe) — na innym typie treści (np. teksty prawne z dużą wagą dokładnych sformułowań) różnica jakościowa między kwantami może wyglądać inaczej; nie ekstrapoluj tego wniosku bez własnego sprawdzenia na docelowych danych.

Energia i temperatura — cichy koszt P40

Peak power przy Q4_K_M: P40 ok. 229 W, V100-16 ok. 247 W, V100-32 ok. 250 W. To maksimum z próbkowanej telemetrii nvidia-smi (1 Hz) za cały przebieg, nie TDP — pojedynczy odczyt telemetryczny nie jest tym samym co deklarowany limit mocy, a przyczyn ewentualnych rozbieżności nie diagnozowaliśmy. Do kalkulacji energii służy wyłącznie jako zgrubne proxy do porównania kart, nie jako pomiar energii. Różnica w poborze szczytowym między kartami jest niewielka, a tg na P40 jest ok. 2,6–3,1× niższe — stąd w naszym prostym oszacowaniu peak_pwr × czas P40 wypada gorzej energetycznie na wygenerowaną odpowiedź, nie lepiej. Do tego dochodzi idle: nasz pomiar (T5, 2026-09-11) pokazuje P40 z najwyższym idle_W ze wszystkich testowanych kart (ok. 39–49 W), podczas gdy V100-16 to ok. 34–37 W, a V100-32 ok. 25–36 W. Jeśli serwer RAG stoi bezczynnie większość dnia (typowy scenariusz firmowy — zapytania nie przychodzą co sekundę), pobór w spoczynku waży w rachunku za prąd bardziej niż różnica w peak power podczas samej generacji.

A co z embeddingami?

To osobny etap pipeline'u RAG (indeksowanie dokumentów, nie odpowiadanie na pytania), ale warto go tu wspomnieć, bo GPU do LLM zwykle liczy też embeddingi. Nasz wcześniejszy test (bge-m3, batch 64) pokazał V100-16 ok. 3× szybszą od P40 (30,7 vs 10,0 fragmentów/s); dla e5-large przy tym samym batchu proporcja była podobna (40,7 vs 14,6). Przy cięższym bge-m3 V100-16 GB kończy się na OOM przy batchu 128, podczas gdy P40 z 24 GB VRAM batch 128 jeszcze przeszedł (większych batchy bge-m3 na P40 nie uruchamialiśmy). Jeśli planujesz duże, rzadkie re-indeksowanie obszernego korpusu, dodatkowa pojemność P40/V100-32 ma tu praktyczne znaczenie — przy małych, przyrostowych aktualizacjach różnica jest mniej odczuwalna.

Kiedy P40 wystarcza, a kiedy sięgnąć po V100

P40 24 GB ma sens, gdy:

  • Twój ruch jest niski (pojedyncze zapytania, nie kolejka użytkowników czekających na odpowiedź) — 26–28 tok/s przy Q4 to nadal czytelne tempo generowania na żywo.
  • Budujesz duży indeks i chcesz zapasu VRAM na embeddingi/dłuższy kontekst bez kompromisów.
  • Budżet jest priorytetem, a nie liczba jednoczesnych użytkowników.

V100 (16 lub 32 GB) ma sens, gdy:

  • Liczy się czas odpowiedzi pojedynczego zapytania — szybsze tempo decode skraca każdą odpowiedź proporcjonalnie (obsługi wielu równoczesnych użytkowników w tym teście nie mierzyliśmy).
  • Kontekst wstrzykiwany do RAG jest długi (dużo fragmentów z retrievalu) — to tam V100 dochodzi do ponad 4× przewagi nad P40 w samym prefill.
  • Model i kontekst mieszczą się w 16 GB — w naszej serii pomiarowej egzemplarz V100-16 był szybszy niż V100-32, więc dopłata do pojemności, której nie wykorzystasz, nie kupuje tempa.

Co z tego wynika

Różnica ok. 2,6–3,1× w samej generacji brzmi jednoznacznie na korzyść V100 — i tam, gdzie wąskim gardłem jest tempo generacji, rzeczywiście jest decydująca. Ale to nie jedyna liczba, która ma znaczenie: w prefill przewaga V100 rośnie wraz z kontekstem, w VRAM to P40 i V100-32 dają zapas, którego V100-16 nie ma, a w poborze spoczynkowym to akurat P40 płaci najwięcej za bezczynność. Dobierz kartę do tego, gdzie realnie leży wąskie gardło Twojego RAG-a — nie do tego, która karta ma wyższy numer w specyfikacji.

Źródła

Wszystkie liczby w tym artykule pochodzą z naszych własnych pomiarów, wykonanych na własnym stanowisku testowym (nie z arkuszy producenta ani z publikacji zewnętrznych).

  1. Pomiary LLM inference (Bielik-11B-v2.3, Ollama, kwanty Q4_K_M/Q5_K_M/Q8_0, kontekst 512–8192 tokenów) na kartach P40, V100-16 GB, V100-32 GB — pełny power limit, jednolita metodyka pomiarowa dla wszystkich trzech kart, jeden przebieg na punkt pomiarowy, po jednym egzemplarzu każdej karty; peak power to maksimum z próbkowanej telemetrii za cały przebieg. Data pomiaru: 2026-09-06.
  2. Pomiary jakości odpowiedzi (Q4 vs Q5 vs Q8, korpus scifact-pl, ocena w skali 1–5) oraz poboru mocy w spoczynku (idle) per karta. Data pomiaru: 2026-09-11.
  3. Pomiary przepustowości embeddingów (e5-large, bge-m3) na P40 i V100. Data pomiaru: 2026-09-01.

Pełna dokumentacja metodyki i surowe dane pomiarowe dostępne na życzenie — napisz do nas.

FAQ

O ile V100 jest szybsza od P40 w generacji tekstu?
W naszych pomiarach (Bielik-11B, Ollama) ok. 2,6–3,1× zależnie od kwantu i wariantu V100 — np. Q4_K_M przy kontekście 512: 79,8 tok/s na V100-16 wobec 27,9 tok/s na P40. Przewaga utrzymuje się na całej drabince kontekstu do 8192.
Czy różnica jest taka sama w przetwarzaniu promptu (prefill)?
Nie — tam przewaga V100 rośnie z kontekstem: od ok. 1,7× przy 512 tokenach do ponad 4× przy 8192. Jeśli RAG wstrzykuje długi kontekst z retrievalu, to w naszym benchmarku różnica w prefill rośnie najmocniej.
Czy Bielik-11B w Q8_0 zmieści się na V100 16 GB?
Tak — przy 8k kontekstu zajmuje ok. 13,2–13,5 GB, więc na V100-16 zostaje niecałe 3 GB zapasu. P40 24 GB i V100-32 zostawiają dużo większy margines na dłuższy kontekst lub dodatkowy proces; czy zmieści się konkretny embedder równolegle, trzeba policzyć osobno.
Czy V100 32 GB jest szybsza od V100 16 GB?
W naszej serii nie — egzemplarz V100-32 był zwykle o ok. 5% wolniejszy w generacji od V100-16 (np. 73,8 vs 79,8 tok/s przy Q4/ctx 512). W naszym teście przewagą wariantu 32 GB była pojemność, nie tempo generacji.
Kiedy P40 wystarczy do lokalnego RAG?
Gdy ruch jest niski (pojedyncze zapytania), indeks duży, a budżet ważniejszy niż czas odpowiedzi — 26–28 tok/s przy Q4 dla pojedynczego użytkownika może być akceptowalne interaktywnie (to ocena, nie pomiar), a 24 GB daje margines VRAM, którego V100-16 nie ma.

Powiązane produkty