<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[sheephess blog]]></title><description><![CDATA[sheephess blog]]></description><link>https://sheephess9527.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 09:26:31 GMT</lastBuildDate><atom:link href="https://sheephess9527.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Where does a 70B model actually fit? Dual RTX 3090 vs DGX Spark 64GB vs 128GB]]></title><description><![CDATA[70B dense models are the point where a single consumer GPU stops being enough. Here is what the memory math says for the three setups people usually…]]></description><link>https://sheephess9527.hashnode.dev/where-does-a-70b-model-actually-fit-dual-rtx-3090-vs-dgx-spark-64gb-vs-128gb</link><guid isPermaLink="true">https://sheephess9527.hashnode.dev/where-does-a-70b-model-actually-fit-dual-rtx-3090-vs-dgx-spark-64gb-vs-128gb</guid><category><![CDATA[Machine Learning]]></category><category><![CDATA[llm]]></category><category><![CDATA[GPU]]></category><dc:creator><![CDATA[sheephess9527]]></dc:creator><pubDate>Tue, 10 Nov 2026 02:49:44 GMT</pubDate><content:encoded><![CDATA[<p>70B dense models are the point where a single consumer GPU stops being enough. Here is what the memory math says for the three setups people usually compare.</p>
<h2>The baseline: Llama 3.3 70B at Q4_K_M</h2>
<p>About 40.7 GB of weights. Add a KV cache and an activation buffer:</p>
<table>
<thead>
<tr>
<th>Context</th>
<th>Approx. memory</th>
</tr>
</thead>
<tbody><tr>
<td>4K</td>
<td>~46.1 GB</td>
</tr>
<tr>
<td>8K</td>
<td>~47.5 GB</td>
</tr>
<tr>
<td>32K</td>
<td>~55.7 GB</td>
</tr>
<tr>
<td>128K</td>
<td>~88.7 GB</td>
</tr>
</tbody></table>
<h2>Option 1: two RTX 3090s (48 GB total)</h2>
<ul>
<li>4K: 46.1 of 48 GB, 96% of the pair. It loads, but there is no margin, so plan for a headless box.</li>
<li>llama.cpp's auto-fit keeps ~1 GiB free per card, so its effective budget is ~46 GB. Pass <code>-ngl all</code> and an explicit <code>-c</code> so a model that doesn't fit fails loudly instead of silently offloading layers to CPU.</li>
<li>No NVLink needed: in the default layer split only boundary activations cross cards.</li>
<li>Want comfort? A generic Q3_K_M of a 70B at 8K is ~38.4 GB.</li>
</ul>
<h2>Option 2: DGX Spark 64GB</h2>
<ul>
<li>Llama 3.3 70B Q4_K_M at 32K: ~55.7 GB, inside the comfortable line. This is "the dense-70B machine".</li>
<li>GPT-OSS 120B does not fit: MXFP4 at 8K is ~66.5 GB, Q4_K_M at 8K is ~62.9 GB (98% of the pool, with the OS sharing it).</li>
</ul>
<h2>Option 3: DGX Spark 128GB</h2>
<ul>
<li>Everything above, plus the 100B-class MoE releases: GPT-OSS 120B, GLM-4.5-Air Q4_K_M (~68.7 GB at 8K), Llama 4 Scout Q4_K_M (~70.7 GB at 8K).</li>
<li>At 4K context, 116 of the 129 models in the index fit comfortably (111 on the 64GB, 103 on a 32GB RTX 5090).</li>
</ul>
<h2>Speed is a different story</h2>
<p>Both Sparks have 273 GB/s. Generation reads the whole dense model per token, so Llama 3.3 70B Q4_K_M tops out around 7 tok/s on either. An RTX 5090 moves 1,792 GB/s, about 6.6x more, but only on models it can hold. MoE models read only active experts, which is why they feel much faster on a Spark.</p>
<h2>Rule of thumb</h2>
<ul>
<li>Dense 70B, short context, budget: dual 24GB cards.</li>
<li>Dense 70B with long context: Spark 64GB.</li>
<li>100B+ MoE: Spark 128GB.</li>
</ul>
<p>Full walkthroughs with commands:</p>
<ul>
<li>Dual 3090 + llama.cpp: <a href="https://quantized.uk/cookbook/dual-gpu-70b-llamacpp/">https://quantized.uk/cookbook/dual-gpu-70b-llamacpp/</a></li>
<li>DGX Spark 64GB vs 128GB: <a href="https://quantized.uk/cookbook/dgx-spark-64gb-vs-128gb/">https://quantized.uk/cookbook/dgx-spark-64gb-vs-128gb/</a></li>
<li>Try your own model/context: <a href="https://quantized.uk/tools/vram-calc/">https://quantized.uk/tools/vram-calc/</a></li>
</ul>
<p>All numbers are calculator estimates; if your measured usage differs, I'd like to hear it.</p>
]]></content:encoded></item><item><title><![CDATA[How much VRAM do you actually need for local LLMs in 2026? (Qwen3.8 27B, 24GB vs 32GB cards)]]></title><description><![CDATA[Every time a new open model drops, the same question comes back: will it fit on my GPU? Here is how to think about it, with concrete numbers. The GGUF file…]]></description><link>https://sheephess9527.hashnode.dev/how-much-vram-do-you-actually-need-for-local-llms-in-2026-qwen3-8-27b-24gb-vs-32gb-cards</link><guid isPermaLink="true">https://sheephess9527.hashnode.dev/how-much-vram-do-you-actually-need-for-local-llms-in-2026-qwen3-8-27b-24gb-vs-32gb-cards</guid><category><![CDATA[GPU]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[llm]]></category><category><![CDATA[AI]]></category><dc:creator><![CDATA[sheephess9527]]></dc:creator><pubDate>Wed, 04 Nov 2026 12:44:58 GMT</pubDate><content:encoded><![CDATA[<p>Every time a new open model drops, the same question comes back: will it fit on my GPU? Here is how to think about it, with concrete numbers.</p>
<h2>1. Memory = weights + KV cache + a little buffer</h2>
<p>The GGUF file size is not your VRAM requirement. On top of the weights you need the KV cache, which grows with context length, plus some activation buffer. That is why the same model can fit at 4K context and fail at 32K.</p>
<h2>2. Worked example: Qwen3.8 27B (GGUF)</h2>
<table>
<thead>
<tr>
<th>Quant</th>
<th>Approx. VRAM (4K ctx)</th>
</tr>
</thead>
<tbody><tr>
<td>Q3_K_M</td>
<td>~14.3 GB</td>
</tr>
<tr>
<td>Q4_K_M</td>
<td><del>18.5 GB (</del>20.4 GB at 32K)</td>
</tr>
<tr>
<td>Q5_K_M</td>
<td>~22.2 GB</td>
</tr>
<tr>
<td>Q6_K</td>
<td>~25.2 GB</td>
</tr>
<tr>
<td>Q8_0</td>
<td>~30.7 GB</td>
</tr>
</tbody></table>
<p>So on a 24GB card (RTX 3090/4090, RX 7900 XTX), Q4_K_M leaves ~5.5 GB for longer context; Q5_K_M fits but is tight. On a 16GB card, look at Q3_K_M or partial CPU offload. Qwen3.8 uses a hybrid layout where only some layers keep a KV cache, so its long-context cost is far lower than a conventional 27B.</p>
<h2>3. 24GB vs 32GB: what the RTX 5090 really buys</h2>
<ul>
<li>At 4K context, 97 of the 129 models in the quantized.uk index fit a 24GB card comfortably (102 load at all). On the 32GB RTX 5090 it's 103.</li>
<li>A 70B at Q4_K_M with 8K context is about 47.5 GB, so one 5090 does not change that: you still need two cards or offloading.</li>
<li>What the extra 8GB buys is context room on 27B–36B models, plus bandwidth: 1,792 GB/s vs 1,008 GB/s on the 4090.</li>
</ul>
<h2>4. Bandwidth decides speed, VRAM decides fit</h2>
<p>Cards with the same 24GB run the same models at very different speeds: memory bandwidth ranges from 346 GB/s (Tesla P40) to 1,008 GB/s (RTX 4090). Generation speed roughly scales with bandwidth ÷ weight file size.</p>
<h2>5. Macs</h2>
<p>A Mac's GPU can only use part of unified memory (about three quarters on a 24GB Mac), so size against that, not the full number.</p>
<h2>Tools</h2>
<p>I maintain these free, no-signup references:</p>
<ul>
<li>VRAM calculator (model + quant + context → weights + KV cache): <a href="https://quantized.uk/tools/vram-calc/">https://quantized.uk/tools/vram-calc/</a></li>
<li>Command generator for llama.cpp / Ollama / vLLM: <a href="https://quantized.uk/tools/cli-gen/">https://quantized.uk/tools/cli-gen/</a></li>
<li>What to run on 8GB / 24GB / RTX 5090: <a href="https://quantized.uk/cookbook/">https://quantized.uk/cookbook/</a></li>
</ul>
<p>Numbers are estimates plus community measurements; if your real usage differs, tell me and I'll fix it.</p>
]]></content:encoded></item></channel></rss>