Technológie · Umelá inteligencia

Lokálne LLM na GPU AMD Radeon AI PRO R9700

Prevádzkujeme vlastný server s jazykovým modelom, ktorý beží na GPU v sídle firmy. Ladíme ho pre prácu s Claude Code a AI agentmi — zdrojový kód a dáta pritom neopúšťajú našu infraštruktúru.

Prečo lokálny model

Pri analýze požiadaviek, návrhu aj realizácii našich systémov používame Claude Code. Aby zdrojový kód ani dáta neopustili firmu, napájame ho na vlastný LLM server llama.cpp v našej infraštruktúre — server poskytuje rozhranie kompatibilné s Anthropic API, takže Claude Code s ním pracuje rovnako ako s cloudovým modelom. Model, s ktorým Claude Code pracuje, prepíname jednoducho spúšťacím skriptom.

Ten istý server obsluhuje aj autonómnych AI agentov (Hermes Agent) v našej internej sieti.

  • dôvernosť — zdrojový kód a dáta zostávajú vo firme
  • náklady — žiadne poplatky za spracované tokeny
  • nezávislosť — prevádzka bez ohľadu na dostupnosť cloudu
  • kontrola — celý reťazec vieme merať, ladiť a opravovať

Hardvér a softvér

Jedna pracovná stanica, jedna grafická karta.

GPU

AMD Radeon AI PRO R9700 — architektúra RDNA4, 32 GB VRAM.

Operačný systém a runtime

Windows 11 Pro, AMD ROCm 10 (HIP) — bez Linuxu a WSL.

llama.cpp

Fork stew675 „llama-cpp-rdna-boosts“ s optimalizáciami pre GPU RDNA, doplnený o naše vlastné úpravy nad aktuálnou verziou llama.cpp.

Vlastný build

Náš repozitár a CI build pre ROCm na Windows na GitHube — každá nová verzia prechádza meraním výkonu a kontrolou zhody výstupov.

Používané modely

Produkčný model: Qwen3.8-27B

  • kvantizácia Unsloth UD-Q5_K_XL (približne 21 GB)
  • hybridná architektúra SSM + attention, podpora obrázkov a uvažovania (reasoning)
  • kontext 262 144 tokenov — maximum modelu — v dvoch paralelných slotoch
  • KV cache kvantizovaná na q8_0
  • špekulatívne dekódovanie MTP (multi-token prediction)

Alternatívne a predchádzajúce modely

  • Swift-1.5-Qwen3.8-27B (Q5_K_M, Q6_K_S)
  • Qwen3.6-35B-A3B (Mixture of Experts), Qwen3.6-27B

Naše posledné výsledky

Stav k októbru 2026, merané na reálnych promptoch agentov.

262 144 tokenov kontextu na jednej GPU
~780 t/s spracovanie promptu s dĺžkou 100k tokenov
~47 t/s generovanie odpovede pri 100k kontexte
+73 728 tokenov kontextu vďaka našej úprave alokácie pamäte
Vývoj výkonu pri prompte s dĺžkou ~100k tokenov
Obdobie Zmena Spracovanie promptu Generovanie
august 2026 prechod na ROCm a port optimalizácií rdna-boosts 312 → 574 t/s (+84 %) —
september 2026 WMMA kernely flash attention pre RDNA4 660 → 752 t/s (+14 %) −12,5 % času na token
september 2026 ďalšie úpravy dekódovania 743 t/s −5,4 % času na token
október 2026 Qwen3.8-27B V2, MTP, kontext 262k 780–835 t/s 45–47 t/s

Na začiatku (august 2026, backend Vulkan, model Qwen3.6-27B) sme dosahovali približne 530 t/s pri spracovaní promptu a 21 t/s pri generovaní. Čísla v jednotlivých riadkoch nie sú striktne porovnateľné — medzičasom sa menil model, kvantizácia aj spôsob dekódovania.

Kvalita pri kvantizovanej KV cache

Pri kontexte 126k tokenov s KV cache q8_0 model správne vyhľadal všetkých 120 z 120 testovacích faktov a jeho výstup bol token po tokene zhodný s výstupom pri plnej presnosti — pri výrazne nižšej spotrebe VRAM.

Čo pomohlo a čo nie

Každú zmenu meriame na reálnych úlohách a nasadzujeme len to, čo obstojí.

Pomohlo

  • port optimalizácií rdna-boosts (+84 % pri spracovaní promptu)
  • preskakovanie maskovaných blokov vo flash attention (+8 až 24 %)
  • WMMA kernely pre RDNA4
  • KV cache q8_0 (približne o 2 GB menej VRAM)
  • jednorazová alokácia pomocného bufferu flash attention — naša úprava, +73k tokenov kontextu
  • špekulatívne dekódovanie MTP (+56 % pri generovaní)
  • opravy cache promptov — návrat ku konverzácii za 1,2 s namiesto 41 s

Nepomohlo

  • väčší micro-batch — pretečenie VRAM
  • HIP graphs — bez zisku, nestabilné pri dlhých promptoch
  • natívny bf16 prefill — o 47 % pomalší
  • knižnica hipBLASLt — nedeterministický výber kernelov, preto vypnutá

Zistenia z prevádzky

  • po dlhom behu servera sú merania VRAM nespoľahlivé — pred meraním reštartujeme
  • ovládač Adrenalin 26.7 bol nestabilný, používame OEM vetvu ovládačov
  • väčšina opakovaného spracovania promptov pochádza z klienta, nie zo servera

Zaujíma vás nasadenie lokálnych LLM?

Radi sa podelíme o skúsenosti s prevádzkou jazykových modelov na vlastnom hardvéri.