Krótka odpowiedź: tak, P40 świetnie nadaje się do lokalnych LLM — pod warunkiem, że trzymasz się modeli kwantyzowanych (GGUF) w llama.cpp albo Ollamie, a nie próbujesz odpalać czegoś, co chce natywnego FP16. Zignoruj to zastrzeżenie, a będziesz przekonany, że kupiłeś wadliwą kartę. Uwzględnij je, a dostajesz 24 GB VRAM do zabawy z modelami 13B i 34B za ułamek ceny nowego sprzętu.
Piszę to z perspektywy kogoś, kto ma tę kartę w domowym serwerze, a nie z perspektywy kogoś, kto chce ją sprzedać (choć akurat sprzedaję — zastrzeżenie na końcu). Poniżej to, co warto wiedzieć zanim wsadzisz P40 do obudowy i zaczniesz szukać, dlaczego Twój ulubiony framework nie startuje.
Dlaczego akurat P40
Tesla P40 to karta z 2016 roku, generacja Pascal, GPU GP102, 24 GB pamięci GDDR5 i przepustowość 346 GB/s. Na papierze nic specjalnego jak na dzisiejsze standardy — ale w kontekście lokalnych LLM liczy się jedna rzecz: ilość VRAM za rozsądne pieniądze. 24 GB to pułap, przy którym zaczynają się dziać ciekawe rzeczy — modele w rozmiarze 13B mieszczą się z zapasem, a 34B da się upchnąć przy odpowiedniej kwantyzacji.
To dlatego P40 jest tak popularna w społeczności r/LocalLLaMA — nie dlatego, że jest szybka (nie jest), tylko dlatego, że oferuje pojemność pamięci, za którą w nowszych kartach zapłacisz kilka razy więcej. To karta serwerowa, więc jest pasywna (250W), zasila się ją złączem EPS 8-pin (nie PCIe, o czym zaraz), i nie ma wyjścia wideo — to nie jest karta do grania ani do podłączenia monitora, tylko czysty akcelerator obliczeń.
Kwantyzacja zamiast FP16 — najważniejsza rzecz do zrozumienia
Tu jest haczyk, który najczęściej psuje ludziom pierwsze wrażenie. Pascal ma bardzo okrojoną, wolną implementację natywnego FP16. Jeśli spróbujesz uruchomić coś, co liczy w FP16 (część starszych wersji exllama, niektóre pipeline'y transformers z automatycznym FP16), karta będzie się wlokła — nie dlatego, że jest słaba, tylko dlatego, że to konkretny format liczbowy jej nie leży.
Rozwiązanie jest proste i sprawdzone przez całą społeczność llama.cpp: kwantyzacja GGUF. Modele w formacie Q4_K_M, Q5_K_M czy Q8_0 liczą się głównie na INT/FP32, a to P40 robi dobrze — ~11,8 TFLOPS FP32 i ~47 TOPS INT8 to konkretna moc jak na kartę, która kosztuje ułamek nowego sprzętu. Ollama i llama.cpp domyślnie pracują właśnie na GGUF, więc jeśli trzymasz się tego ekosystemu, temat FP16 w ogóle Cię nie dotyczy.
Praktyczna zasada: jeśli framework, którego chcesz użyć, wymaga natywnego FP16 jako podstawy działania — to nie jest kombinacja dla P40. Jeśli operuje na kwantyzowanych wagach — jest.
Co się mieści w 24 GB
Orientacyjnie, bez podawania wymyślonych liczb tokenów na sekundę (bo to zależy od modelu, kontekstu, kwantyzacji i tego, co jeszcze siedzi na karcie):
- 7B–8B — komfortowo, z dużym zapasem na kontekst.
- 13B — mieści się swobodnie, to chyba najwygodniejszy punkt startowy na jednej P40.
- 34B — wchodzi, ale już na styk, w zależności od poziomu kwantyzacji (Q4 raczej tak, Q8 już ciasno).
- 70B — na jednej karcie nie ma szans przy sensownej kwantyzacji. Dwie P40 w jednym hoście dają już realne okno na 70B — to zresztą jeden z głównych powodów, dla których ludzie kupują je parami.
Jeśli zależy ci na czymś więcej niż P40 — szybszej generacji, natywnym FP16 bez kombinowania, większym zapasie na jednej karcie do 34B — warto rozważyć krok wyżej, np. V100 32GB. Uwaga: samo 70B i tak nie zmieści się na pojedynczej karcie 32 GB (w Q4 to realnie ~40–48 GB), więc pod 70B i tak celujesz w parę kart — 2× V100 32GB albo 2× P40. Ale to już inny budżet. P40 to dobry punkt startowy, ale nie jedyna opcja — jeśli potrzebujesz czegoś nowszego albo z większym VRAM, sprowadzamy też inne akceleratory na zamówienie i wyceniamy je indywidualnie na zapytanie.
Subiektywnie: 13B w Q4/Q5 na jednej P40 działa płynnie, w tempie, które nadaje się do normalnej pracy interaktywnej. 34B jest wyraźnie wolniejsze, ale wciąż używalne. To nie są liczby z benchmarku — to wrażenie z codziennego użytkowania, każdy powinien zweryfikować to na własnym modelu i przypadku użycia.
Chłodzenie i zasilanie w praktyce
Dwie rzeczy, o których trzeba pomyśleć, zanim karta w ogóle odpali w desktopowej obudowie:
Chłodzenie. P40 jest pasywna — w serwerze chłodzi ją przepływ powietrza wymuszony przez obudowę. W zwykłym peceta go nie ma. Potrzebny jest shroud (osłona kierująca powietrze) i dodatkowa dmuchawa — typowo turbina 40mm montowana na tylnej krawędzi karty. Bez tego karta się przegrzeje, złapie throttling albo w skrajnym przypadku wyłączy się pod obciążeniem. To nie jest opcjonalny dodatek, to warunek działania.
Zasilanie. P40 chce zasilania EPS 8-pin (to samo złącze, które zasila CPU na płycie głównej), a nie standardowego PCIe 8-pin od karty graficznej. Wyglądają podobnie, ale to nie to samo. Zanim zamówisz kabel, sprawdź, co faktycznie masz w zasilaczu — czasem trzeba dokupić przejściówkę albo kabel EPS-to-EPS.
Krok po kroku — jak to uruchomić
Bez wymyślania nieistniejących komend, ale w ogólnym zarysie tak, jak to wygląda:
- Sterownik. Instalujesz sterownik data-center NVIDIA (nie zwykły "GeForce", tylko wersja dla kart Tesla/serwerowych) pod Linuksem. Linux jest tu zdecydowanie prostszą drogą niż Windows — mniej problemów z rozpoznaniem karty i wsparciem dla trybu compute.
- Weryfikacja karty. Zanim zaczniesz stawiać cokolwiek na produkcję, warto sprawdzić kondycję sprzętu — szczególnie jeśli to karta z drugiej ręki. Test typu gpu-burn to dobre pierwsze zabezpieczenie: pokazuje, czy karta trzyma obciążenie bez błędów pamięci i bez przegrzewania.
- Instalacja Ollamy. Standardowa instalacja Ollamy na Linuksie — narzędzie samo wykrywa dostępne GPU NVIDIA, o ile sterownik jest poprawnie zainstalowany.
- Pobranie modelu. Pobierasz model w formacie GGUF przez Ollamę (albo bezpośrednio przez llama.cpp, jeśli wolisz niższy poziom kontroli) — najlepiej zacząć od czegoś w 7B-13B, żeby sprawdzić, że wszystko działa, zanim wejdziesz w większe modele.
- Test. Odpalasz zapytanie i patrzysz na wykorzystanie VRAM oraz temperaturę pod obciążeniem — to moment, w którym się okazuje, czy chłodzenie faktycznie wystarcza.
Pułapki, na które warto uważać
- FP16 jako pierwszy odruch. Opisane wyżej, ale warto to powtórzyć, bo to najczęstszy powód rozczarowania — próba użycia frameworku zakładającego natywne FP16.
- Sterowniki. Karty data-center wymagają konkretnej gałęzi sterownika, nie tej samej co karty konsumenckie. Instalacja "na pałę" ogólnego sterownika NVIDIA kończy się tym, że karta w ogóle się nie pokazuje albo pokazuje się bez wsparcia compute.
- Brak wyjścia wideo. Oczywiste, ale ludzie i tak czasem próbują podłączyć do niej monitor. Karta jest czysto obliczeniowa — system startuje z innej karty graficznej albo z iGPU, P40 dokłada tylko moc.
- Pascal to najstarsza generacja w ofercie. Działa dziś bardzo dobrze, ale to sprzęt z 2016 roku — wsparcie w kolejnych wersjach frameworków (CUDA compute capability 6.1) skończy się wcześniej niż dla nowszych architektur. Nie jest to problem na już, ale warto mieć to z tyłu głowy przy planowaniu na kilka lat do przodu.
FAQ
- Czy P40 nadaje się do grania?
- Nie. Brak wyjścia wideo i konstrukcja pod obciążenie ciągłe w serwerowni czynią ją bezużyteczną jako karta do grania. To czysty akcelerator obliczeniowy.
- Czy potrzebuję dwóch P40, żeby cokolwiek sensownego uruchomić?
- Nie — jedna karta z 24 GB VRAM świetnie obsłuży 13B, a przy dobrej kwantyzacji także 34B. Dwie karty są potrzebne dopiero, gdy celujesz w 70B.
- Czy P40 działa pod Windowsem?
- Technicznie tak, ale Linux jest zdecydowanie prostszą i lepiej udokumentowaną drogą dla kart data-center — mniej problemów ze sterownikami i trybem compute.
- Dlaczego moja karta jest wolna mimo dobrej specyfikacji na papierze?
- Najpewniej próbujesz uruchomić model lub framework operujący na natywnym FP16. Sprawdź, czy używasz kwantyzacji GGUF w llama.cpp/Ollamie.
- Jak sprawdzić kondycję używanej P40 przed zakupem albo zaraz po nim?
- Test obciążeniowy typu gpu-burn to dobry pierwszy krok — pokazuje błędy pamięci i zachowanie pod temperaturą, zanim zaczniesz na karcie realną pracę.
