Druga karta AMD Radeon RX 7900 XTX — 48 GB VRAM lacznie. Przejscie z basic chat na agentic AI: kontekst 131k-480k zamiast 8k, obsluga modeli 70B-80B, embedding na CPU. TPS spadl o ~40%, ale context urósł 16-32x — to zmiana kategorii, nie regresja.
Faza 4 miala jeden cel: odblokowanie agentic AI. Narzedzia takie jak opencode, opendesign, roo/zoo - wlasne serwery MCP wymagaja minimum 64k kontekstu — czesto 131k+. W fazie 3 benchmarki pokazywaly 100-140 tok/s, ale na domyslnym kontekscie ~8k (maksymalnie wyciagalem do 32k, co wystarczalo tylko do prostych i krotkich zadan agentowych). Przy 8k kontekscie agent nie jest w stanie przeanalizowac calego projektu, przetworzyc dlugiej rozmowy ani utrzymac spojnego stanu. Faza 4 to swiadomy kompromis: TPS spadl, ale kontekst urósł 16-32x, odblokowujac klase zastosowan wczesniej niedostepna na tym sprzecie.
Architektura dual-GPU rozni sie fundamentalnie od fazy 1 (2x RTX 3060). Dzieki HIP_VISIBLE_DEVICES kontrolujemy per-model która karta jest uzywana: male modele (7B-35B) dzialaja na jednym GPU z pelna predkoscia bez narzutu PCIe, a tylko ciezkie modele (48B-80B) spanuja obie karty. Embedding (nomic-embed-text) zostal przeniesiony na CPU — ~50ms zamiast 14ms na GPU, ale zero VRAM i zero contention z chat modelami.
A second AMD Radeon RX 7900 XTX — 48 GB total VRAM. The transition from basic chat to agentic AI: context 131k-480k instead of 8k, 70B-80B model support, CPU-based embedding. TPS dropped ~40%, but context grew 16-32x — this is a category change, not regression.
Phase 4 had one goal: unlocking agentic AI. Tools like opencode, opendesign, roo/zoo - custom MCP servers require a minimum of 64k context — often 131k+. In phase 3, benchmarks showed 100-140 tok/s, but with default context ~8k (max 32k - weak agentic, simple tasks only). At 8k context, an agent cannot analyze an entire project, process long conversations, or maintain coherent state. Phase 4 is a conscious trade-off: TPS dropped, but context grew 16-32x, unlocking a class of applications previously unavailable on this hardware.
The dual-GPU architecture fundamentally differs from phase 1 (2x RTX 3060). Using HIP_VISIBLE_DEVICES we control per-model which card is used: small models (7B-35B) run on a single GPU at full speed with no PCIe overhead, while only heavy models (48B-80B) span both cards. Embedding (nomic-embed-text) was moved to CPU — ~50ms instead of 14ms on GPU, but zero VRAM usage and zero contention with chat models.
Specyfikacja po fazie 4
Post-phase 4 specification
| GPU #1 | AMD Radeon RX 7900 XTX 24 GB |
| GPU #2 | AMD Radeon RX 7900 XTX 24 GB |
| VRAM lacznie | 48 GB GDDR6 |
| Bandwidth lacznie | 1920 GB/s |
| Backend AI | ROCm 6.4.1 / llama.cpp (HIP) |
| Serving | llama-swap (multi-model proxy) |
| Embedding | CPU (nomic-embed-text v1.5) |
| Maks. kontekst | 262 144 tokenów (kimi-linear-48b) |
| Modele dostepne | 14 chat + 1 embedding |
| PCIe | 4.0 x16 + x8 (ASUS X570-PRO) |
| RAM systemowa | 64 GB DDR4 |
| llama.cpp build | 8849 (d5b780a6) |
Benchmark — modele lekkie (7B-35B, single GPU)
Benchmark — light models (7B-35B, single GPU)
Uwaga: benchmark fazy 3 (19 maja 2026) wykonano na backendzie VULKAN z domyslnym kontekstem ~8k (maksymalnie 32k, ale bardzo slaby agentic - tylko proste zadania). Benchmark fazy 4 wykonano na ROCm z kontekstem 131k-196k. Roznica TPS wynika glównie z 16x wiekszego kontekstu i zmiany backendu, nie z regresji. Faza 3 testowala predkosc basic chatu (slaby agentic) — faza 4 testuje realne obciazenie agentic AI.
Note: Phase 3 benchmark (19 May 2026) was run on VULKAN backend with default ~8k context (max 32k - weak agentic, simple tasks only). Phase 4 benchmark was run on ROCm with 131k-196k context. The TPS difference is primarily due to 16x larger context and backend change, not regression. Phase 3 tested basic chat (weak agentic) — phase 4 tests real agentic AI workload.
generowanie tok/s — faza 3 (8k ctx, VULKAN) vs faza 4 (131k ctx, ROCm)
generation tok/s — phase 3 (8k ctx, VULKAN) vs phase 4 (131k ctx, ROCm)
Benchmark — modele ciezkie (48B-80B, dual GPU)
Benchmark — heavy models (48B-80B, dual GPU)
Trzy modele, które nie miescily sie w 24 GB VRAM pojedynczej karty. Dzieki drugiej 7900 XTX sa w pelni odblokowane — kazdy z inna charakterystyka:
Three models that did not fit in 24 GB VRAM of a single card. Thanks to the second 7900 XTX, they are fully unlocked — each with different characteristics:
Porownanie modeli ciezkich — 4 wskazniki
Heavy models comparison — 4 metrics
Kimi-Linear-48B: 480k kontekstu na 2x 7900 XTX — model osiaga stabilne ~48 tok/s nawet przy maksymalnym kontekscie. To najwyzszy praktyczny kontekst w tej konfiguracji — przy 512k+ VRAM GPU 0 osiaga limit. Dla porownania: Qwen3-Next-80B (MoE, 3B active) oscyluje w okolicach 196k z podobnym TPS, a DeepSeek-R1-70B (dense) jest ograniczony do ~61k przez wage modelu (40 GB).
Kimi-Linear-48B: 480k context on 2x 7900 XTX — the model maintains stable ~48 tok/s even at maximum context. This is the highest practical context in this configuration — beyond 512k, GPU 0 VRAM hits its limit. For comparison: Qwen3-Next-80B (MoE, 3B active) operates around 196k with similar TPS, while DeepSeek-R1-70B (dense) is limited to ~61k by its model weight (40 GB).
Parallel & RAG — embedding na CPU
Parallel & RAG — CPU embedding
nomic-embed-text (~260 MB, 137M params) zostal przeniesiony na CPU. Efekt: embedding dziala w ~50ms (vs 14ms na GPU) — roznica pomijalna w pipeline RAG gdzie chat trwa ~3.5s. Zysk: 0 MB VRAM uzyte, zero contention z modelami chat. Testy potwierdzaja brak regresji TPS przy równoleglym dzialaniu embedding + chat.
nomic-embed-text (~260 MB, 137M params) was moved to CPU. Result: embedding runs in ~50ms (vs 14ms on GPU) — a negligible difference in a RAG pipeline where chat takes ~3.5s. Benefit: 0 MB VRAM used, zero contention with chat models. Tests confirm no TPS regression when running embedding + chat simultaneously.
Kontekst a mozliwosci agentic AI
Context vs agentic AI capabilities
Faza 3 (maj)
Phase 3 (May)
~8k
→
podstawowy chat (slaby agentic ≤32k)
basic chat (weak agentic ≤32k)
Faza 4
Phase 4
131k-480k
→
agentic AI · opencode · opendesign · roo/zoo · MCP
8k
podstawowy chat
basic chat
32k
slaby agentic (tylko proste zadania)
weak agentic (simple tasks only)
64k
min. dla agentów
minimum for agents
131k
opencode · opendesign · MCP
opencode · opendesign · MCP
262k
caly kod projektu
full project codebase
Analiza i wnioski
Analysis and findings
Druga karta to nie tylko wiecej VRAM — to zmiana kategorii uzycia. Faza 3 z single GPU 24 GB byla wystarczajaca dla basic chatu na malym kontekscie (8k). Faza 4 z 48 GB umozliwia realna prace agentowa: analize calego repozytorium kodu, dlugie sesje RAG, wieloetapowe pipeliney reasoning. Dla narzedzi takich jak opencode, opendesign, roo/zoo, które wymagaja 64k-131k kontekstu, faza 3 byla po prostu niekompatybilna. Faza 4 to odblokowuje.
HIP_VISIBLE_DEVICES eliminuje koszt PCIe dla malych modeli. W fazie 1 modele 7B-14B musialy byc spanowane miedzy dwoma RTX 3060 przez PCIe Gen3, co kosztowalo 30-40% TPS. W fazie 4 male modele dzialaja na jednym GPU (0), bez narzutu miedzygpu. Tylko ciezkie modele spanuja obie karty — i robia to przez PCIe 4.0, które jest 2x szybsze niz w fazie 1.
Embedding na CPU to wlasciwa decyzja. Model embeddingu wazy 260 MB i na CPU dziala w ~50ms — wystarczajaco szybko dla RAG pipelineu. Zwalnia to GPU calkowicie dla modeli chat, eliminujac contention, który byl widoczny w fazie 3 gdy embedding i chat walczyly o ten sam GPU.
Kimi-Linear-48B to najciekawszy model fazy. Hybrydowa architektura (KDA + MLA + MoE) z 48B total / 3B active params, natywny kontekst 1M. Na 2x 7900 XTX stabilnie dziala do 480k tokenow przy ~48 tok/s. Model wymagal builda llama.cpp z wsparciem kimi-linear (PR #18755, wbudowany w build 8849), a cache-type-v q4_0 nie dziala z n_embd_head_v=72 — trzeba uzyc domyslnego f16 dla V cache.
A second card is not just more VRAM — it is a category change. Phase 3 with single GPU 24 GB was sufficient for basic chat at small context (8k). Phase 4 with 48 GB enables real agentic work: full repository code analysis, long RAG sessions, multi-step reasoning pipelines. For tools like opencode, opendesign, roo/zoo, which require 64k-131k context, phase 3 was simply incompatible. Phase 4 unlocks this.
HIP_VISIBLE_DEVICES eliminates PCIe cost for small models. In phase 1, 7B-14B models had to be spanned across two RTX 3060 cards via PCIe Gen3, costing 30-40% TPS. In phase 4, small models run on a single GPU (0), with no cross-GPU overhead. Only heavy models span both cards — and they do so via PCIe 4.0, which is 2x faster than in phase 1.
CPU embedding is the right call. The embedding model weighs 260 MB and runs on CPU in ~50ms — fast enough for RAG pipelines. This frees GPU entirely for chat models, eliminating the contention visible in phase 3 when embedding and chat fought for the same GPU.
Kimi-Linear-48B is the most interesting model of this phase. Hybrid architecture (KDA + MLA + MoE) with 48B total / 3B active params, native 1M context. On 2x 7900 XTX it runs stably up to 480k tokens at ~48 tok/s. The model requires a llama.cpp build with kimi-linear support (PR #18755, built into build 8849), and cache-type-v q4_0 does not work with n_embd_head_v=72 — use default f16 for V cache.
Czasy ladowania modeli
Model load times
Kimi-Linear-48B
27 GB
→
~14s
262k context
DeepSeek-R1-70B
40 GB
→
~22s
dense, Q4_K_M
Qwen3-Next-80B
41 GB
→
~22s
MoE, IQ4_XS
gemma4-26b
16 GB
→
~3s
single GPU