Lokální LLM na GPU: grafické karty, llama.cpp a agentic coding

Vytvořeno: 3.5.2026 | Aktualizováno: 04.05.2026 04:52

Zápisek z videa Srigi – Agentic coding (vibing) na grafickej karte o tom, jak vybrat GPU pro lokální provoz LLM, jak nainstalovat llama.cpp na Windows a jak s lokálním modelem pracovat při agentic codingu.

Při výběru hardwaru pro lokální AI modely není nejdůležitější čistý výpočetní výkon GPU, ale datová propustnost paměti (memory bandwidth) a její kapacita. Propustnost přímo určuje rychlost generování tokenů při inferenci.

Minimum pro smysluplnou práci s pokročilými programovacími agenty je 24 GB VRAM – karty s 12 nebo 16 GB nestačí kvůli malému kontextovému oknu. Pro modely velikosti 14B–32B parametrů se 24 GB pohybuje na hranici využitelnosti.

GPU / Zařízení VRAM Propustnost Poznámka
RTX 5090 32 GB ~2 TB/s Extrémně rychlá, ideální pro AI, aktuálně předražená
RTX 4090 24 GB ~1 TB/s Doporučený standard pro lokální běh 32B modelů
RTX 5080 16 GB Vyšší než 4090 Omezená kapacitou – nevejde se 32B model
RTX 6000 Ada 48 GB Nižší než 4090 Větší modely, ale pomalejší inference
MacBook Air/Pro Různá Velmi nízká Apple Silicon zaostává v propustnosti za dedikovanými GPU
Mac Studio Až 128+ GB ~1 TB/s Dosahuje rychlosti RTX 4090, ale za výrazně vyšší cenu (okolo 10 000 $)

RTX 4090 dosahuje při spuštění 32B modelu (Qwen 2.5 Coder, kvantizace Q4_K_M, ctx 19 000) rychlosti 47 tokenů za sekundu. Karta přitom během generování odebírá přibližně 400 W – to je hlavní důvod, proč je undervolting při takovéto zátěži důležitý.

Orientační hranice použitelnosti pro agentic coding:

  • 40+ tokenů/s – pohodlná práce, plynulý vibing
  • ~20 tokenů/s – prakticky nepoužitelné, odezva je příliš pomalá

Kromě desktopových GPU jsou k dispozici i specializovaná zařízení:

  • NVIDIA DGX Spark – Kompaktní krabička se 128 GB sjednocené paměti. Nevýhodou je výrazně nižší propustnost paměti (273 GB/s) oproti desktopovým GPU (~1 TB/s), což vede k pomalejší odezvě při inferenci.
  • Externí GPU (eGPU) – Možné řešení pro notebooky, ale limituje ho rychlost sběrnice.
  • Doporučený setup: Herní PC s RTX 4090 připojené k síti jako server, ke kterému se přistupuje z notebooku.

Autor důrazně varuje před používáním Ollama (označuje ho za proprietární obálku) a doporučuje přímé použití llama.cpp – čistý C++ runtime bez závislosti na Pythonu, který umožňuje přímé ladění a plné využití výkonu GPU.

1. Ovladače NVIDIA
Stačí standardní herní ovladače – není potřeba speciální Studio nebo Enterprise edice.

2. Undervolting přes MSI Afterburner
LLM při generování odebírá stovky wattů, proto je vhodné kartu chránit před dlouhodobou zátěží:

  • Otevřít Voltage Frequency Curve Editor zkratkou Ctrl+F
  • Snížit napětí (např. z 1050 mV na 975 mV) a mírně upravit takt jádra a paměti
  • Cíl: snížit spotřebu o 50–100 W a teplotu bez ztráty výkonu

3. Stažení llama.cpp
Z GitHub releases stáhnout binárky pro CUDA 12. Release obsahuje 3 specifické DLL soubory (CUDA knihovny) – jsou součástí archivu.

⚠ Pozor: Windows Defender může tyto DLL smazat jako falešný poplach (podobnost s krypto-malwarem). Je nutné dočasně vypnout ochranu nebo nastavit výjimku pro složku.

4. Spuštění serveru
Použít soubor llama-server.exe:

llama-server.exe --model [cesta_k_modelu] --n-gpu-layers 99 --ctx-size 19000 --host 0.0.0.0 --port 8080

Parametr --n-gpu-layers 99 zajistí načtení celého modelu do VRAM. --ctx-size nastavuje délku kontextového okna v tokenech – pro 32B model na 24GB kartě je bezpečný limit 19 000 (viz sekce o výběru modelu).

Výběr správného modelu je nejkritičtější a zároveň nejobtížnější krok – autor ho označuje za „hotovou alchymii„. Ne každý model je vhodný pro kódování. Záleží na tom, zda je model finetuningovaný na programování a zda má správný chat template s podporou nástrojů.

Autor rozlišuje tři typy modelů podle způsobu uvažování:

Kategorie Charakteristika Kdy použít
Dumb (Hloupý) Styl GPT-3.5, žádná fáze přemýšlení, rovnou generuje výstup Jednoduché dotazy bez potřeby hlubší logiky
Thinking (Přemýšlející) Explicitní fáze přemýšlení, sledovatelná v průběhu generování, uvažuje o edge cases Komplexní refaktoring, složité logické problémy
Reasoning (Uvažující) Zlatá střední cesta – model uvažuje inline, bez dlouhé oddělené fáze Běžný agentic coding; rychlejší než Thinking, kvalitnější než Dumb

Pro agentic coding v IDE (Cursor, Roo Code) je nejlepší typ Reasoning – dává dobré výsledky a nebrzdí práci nadměrným přemýšlením. Thinking modely rychle vyčerpávají kontext, což je problém.

Ne každý model LLM umí pracovat s editorem kódu. Rozdíl spočívá ve dvou věcech:

  • Chat Template – sada speciálních značek (např. <user>, <assistant>, <system>), na které je model natrénovaný. Runtime (llama.cpp) tyto značky využívá k řízení konverzace.
  • Tool Support – modely pro kódování mají složitější chat template s pojmy jako tool_call a tool_response. Díky tomu model rozumí, že má číst soubory, vytvářet komponenty, pracovat s výstupy příkazů.

Modely bez tool support nepochopí instrukce z editoru a nelze je pro agentic coding použít.

Modely mají hierarchii: Base model (např. Qwen 2.5) → Coder (fine-tuning na programování) → Instruct (schopnost následovat instrukce). Existují i Merge modely – spojení několika sítí specializovaných na různé oblasti (SQL, TypeScript, obecné kódování).

Qwen 2.5 Coder Instruct (32B)

Špičkový model pro kódování od Alibaby, finetuningovaný na programování a tool calling.

  • RTX 4090: 47 tokenů/s při ctx 19 000 a kvantizaci Q4_K_M
  • Na 24GB kartě se vejde „na těsno“ – bezpečný kontext max. 19 000 tokenů
  • V SafeTensors formátu má 32B model ~70 GB (14 souborů × 5 GB) – na 24GB kartu se bez kvantizace nevejde

DeepSeek Coder (14B)

Jeden z mála 14B modelů, který skutečně „thinkuje„ – přemýšlí o problému před generováním kódu.

  • Vejde se do VRAM s velkou rezervou → lze nastavit větší kontext
  • Nevýhoda: jako Thinking model rychle vyčerpává kontext budget při složitějších úlohách

JosefFeed (14B)

Aktuálně velmi úspěšný model pro programování. Klíčová výhoda: umožňuje nastavit kontext až 50 000 tokenů, což je zásadní pro pochopení celých větších souborů.

O1 (Merge)

Velmi schopný model vzniklý sloučením specializovaných sítí. Těžko dohledatelný pod názvem „coder“ – vyžaduje znalost komunity a konkrétního repozitáře.

Modely ve formátu GGUF jsou k dispozici v repozitáři mradermacher na Hugging Face, který automatizovaně kvantizuje tisíce modelů.

Jak číst název souboru:

  • I1 – označení pro i-matrix kvantizaci. Vždy hledejte tuto variantu – zachovává vyšší přesnost u důležitých vah (podobné variabilnímu bitrate u videa).
  • Q4_K_M – doporučená volba: 4-bitová kvantizace, snižuje velikost modelu ~8× oproti Float32 při ztrátě přesnosti jen 1–2 %.
  • IQ4_XS – pozor: autor má s touto variantou zkušenost s halucinacemi. Preferovat Q4_K_M.
  • Označení velikosti: XS, S, M, L – analogie k oděvním velikostem. M je zpravidla dobrý výchozí bod.

Agentic coding znamená, že LLM nepíše jen útržky kódu, ale aktivně pracuje s celými soubory jako agent – čte je, upravuje a spouští příkazy.

  • Nástroj: VS Code extension Roo Code – v nastavení zvolit „OpenAI Compatible„ a zadat IP adresu a port lokálního llama-server.
  • Kontextové okno: Kritický parametr. Pro RTX 4090 a 32B model je bezpečné nastavení 19 000 tokenů – při 25 000 dochází k přetečení VRAM a hardware akcelerace se vypíná.

Pokud kontext přeteče kapacitu VRAM, model začne halucinovat – například generuje nekonečné řady div tagů nebo jen opakující se tečky. Příznaky přetečení jsou stejné jako u příliš nízké kvantizace, proto je důležité nejdřív ověřit nastavení kontextu. Řešení:

  1. Okamžitě ukončit generování
  2. Snížit hodnotu --ctx-size na 19 000 (pro 32B model na 24 GB VRAM) a restartovat server
  3. Ponechat ~500 MB VRAM volné jako rezervu
  4. Případně přejít na menší model (14B), který dává více prostoru pro kontext

Lepší výsledky přináší připravit modelu plán před samotnou úlohou místo jednoho složitého promptu. Příklad: „Nejdříve vyextrahuj kód do nového souboru, pak ho importuj, až pak smaž původní soubor.“

  1. Zkontrolovat VRAM stávající grafické karty (minimum 14 GB pro první pokusy, 24 GB pro praxi)
  2. Nastavit MSI Afterburner – undervolting pro ochranu karty při dlouhodobé 100% zátěži (~400 W)
  3. Stáhnout llama-server – aktuální release llama.cpp z GitHubu (verze pro CUDA 12)
  4. Otestovat Qwen 2.5 Coder (32B) ve verzi I1 Q4_K_M z repozitáře mradermacher na Hugging Face; nastavit ctx-size 19 000
  5. Propojit s IDE – nainstalovat Roo Code do VS Code a nakonfigurovat lokální endpoint
  • ai/hardware/lokalni-llm-na-gpu.txt
  • Poslední úprava: 04.05.2026 04:52
  • autor: Petr Nosek