<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>gradient.garden</title><description>AI and LLM development notes from Trevor Wilson, a career full-stack and mobile developer.</description><link>https://gradient.garden/</link><language>en-us</language><item><title>Running LLMs on an RX 580</title><link>https://gradient.garden/posts/running-llms-on-an-rx-580/</link><guid isPermaLink="true">https://gradient.garden/posts/running-llms-on-an-rx-580/</guid><description>Making the best of some old hardware</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;An AMD RX 580 is an inexpensive old gaming GPU that is mostly considered obsolete now, but it is still useful for running models locally, as long as one has realistic expectations.&lt;/p&gt;
&lt;p&gt;Not too long ago, I bought an old Sapphire Nitro+ RX 580 8 GB to turn some disused parts into a low-spec gaming PC. It ended up on the shelf before long, at the lowest rung of the GPU hierarchy in my house. But the motherboard in my primary ATX PC had a second PCIe slot going unused, so I put the card back into service for running local models.&lt;/p&gt;
&lt;h2 id=&quot;caveats&quot;&gt;Caveats&lt;/h2&gt;
&lt;p&gt;The RX 580 is a mid-range gaming GPU from 2017. Mine has 8 GB of VRAM, which makes it the high-end version of the card for the time. It was a very competent gaming GPU for several years, but it is now mostly obsolete. For local AI it is also not top of the line: 8 GB is considerably memory-constrained for dense models — Qwen3.8 27B’s smallest quant is 13.1 GB, so it cannot fit without offloading layers to the CPU. Its memory bandwidth is 256 GB/s, only about 1.3× a MacBook Pro M2 Pro’s 200 GB/s, which constrains inference speed. And as an AMD card it has no CUDA, so local image-generation tools need workarounds.&lt;/p&gt;
&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;On Linux the card is no longer supported by AMD’s ROCm stack, so you will be using Vulkan. Setup was mostly a breeze, and with quantized versions of popular models at 12B parameters or fewer, the RX 580 is a very usable tool.&lt;/p&gt;
&lt;p&gt;I used llama.cpp running as a service to expose the card as a general-purpose inference device on my network. &lt;code&gt;--models-max 1&lt;/code&gt; is essential for keeping llama.cpp from running out of VRAM. llama.cpp will automatically swap models defined in the &lt;code&gt;presets.ini&lt;/code&gt; file as needed. The following is the systemd service definition I went with.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Unit]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Description=llama.cpp model router &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;After=network.target&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Service]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Type=simple&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;User=[user]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;WorkingDirectory=/home/[user]/git/llama.cpp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# pin to the AMD Vulkan ICD so the RX 580 is always Vulkan0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Environment=VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.json&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Environment=MTMD_BACKEND_DEVICE=Vulkan0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# access /dev/dri/renderD* without a local seat ACL&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;SupplementaryGroups=render&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ExecStart=/home/[user]/git/llama.cpp/build/bin/llama-server \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    --models-preset /etc/llama-gemma/presets.ini \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    --models-max 1 \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    --host 0.0.0.0 \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    --port 8080&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Restart=on-failure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;RestartSec=5&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Install]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MTMD_BACKEND_DEVICE&lt;/code&gt; is not optional. &lt;code&gt;--device&lt;/code&gt; only places the LLM; the multimodal projector defaults to device 0, which on a multi-GPU box is the wrong card, and the load fails with a hard out-of-memory abort rather than a clean error.&lt;/p&gt;
&lt;h2 id=&quot;methodology&quot;&gt;Methodology&lt;/h2&gt;
&lt;p&gt;I chose Ornith 1.5 9B and Mistral Nemo 12B for their complementary strengths considering the VRAM limit. For this series of benchmarks, Ornith was doing VLM work on a fixed set of 12 images. Nemo was doing text inference, running a fixed set of 6 prompts. Requests used a nonce per call to defeat KV-cache reuse, with &lt;code&gt;temperature=0&lt;/code&gt; and &lt;code&gt;max_tokens&lt;/code&gt; 250 (VLM) / 300 (text), and server-reported timings and GPU power were sampled per request.&lt;/p&gt;
&lt;h2 id=&quot;baseline-at-the-production-quants&quot;&gt;Baseline at the production quants&lt;/h2&gt;
&lt;p&gt;The first job is fitting the model into 8 GB. I picked quantized versions of both models, used KV cache quantization where it helped, and for the multimodal model fit the mmproj into VRAM as well.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model (quant)&lt;/th&gt;
&lt;th&gt;mmproj&lt;/th&gt;
&lt;th&gt;Context (tokens)&lt;/th&gt;
&lt;th&gt;Other settings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B (i1-Q4_K_S)&lt;/td&gt;
&lt;td&gt;Q8_0&lt;/td&gt;
&lt;td&gt;49,152&lt;/td&gt;
&lt;td&gt;flash-attn on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo Instruct 2407 12B (IQ4_XS)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;12,288&lt;/td&gt;
&lt;td&gt;q8_0 K/V cache, flash-attn on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I noticed in the process of benchmarking that power consumption was not hitting the card’s rated TDP. That alone doesn’t prove anything, but behavior under a power cap does: pulling the cap down to 110 W left decode nearly unchanged (−9% on Ornith, −2% on Nemo) while prefill fell 26–34%. Decode is bandwidth-bound; prefill is compute-bound.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Prefill tok/s&lt;/th&gt;
&lt;th&gt;Decode tok/s&lt;/th&gt;
&lt;th&gt;Power (W, mean)&lt;/th&gt;
&lt;th&gt;Effective BW&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B Q4_K_S&lt;/td&gt;
&lt;td&gt;117.3&lt;/td&gt;
&lt;td&gt;23.68&lt;/td&gt;
&lt;td&gt;161.5&lt;/td&gt;
&lt;td&gt;126.7 GB/s (49.5%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B IQ4_XS&lt;/td&gt;
&lt;td&gt;105.7&lt;/td&gt;
&lt;td&gt;18.77&lt;/td&gt;
&lt;td&gt;160.0&lt;/td&gt;
&lt;td&gt;126.6 GB/s (49.4%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Those numbers use the quants I chose for fit and quality. The obvious next question is whether the quant &lt;em&gt;format&lt;/em&gt; is itself leaving speed on the table. K-quants and IQ-quants are the sensible default on NVIDIA cards, but Polaris reports &lt;code&gt;int dot: 0&lt;/code&gt;, &lt;code&gt;fp16: 0&lt;/code&gt; and no matrix cores, so there is no fast shader path for their unpacking and the dequant cost may dominate.&lt;/p&gt;
&lt;h2 id=&quot;quant-format-k-quant-vs-q4_0&quot;&gt;Quant format: K-quant vs Q4_0&lt;/h2&gt;
&lt;p&gt;I benchmarked the formats directly with &lt;code&gt;llama-bench&lt;/code&gt; (pp512 / tg128, three runs, flash attention on, q8_0 KV) and then confirmed the winner end-to-end.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Quant&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;Size&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;Prefill tok/s&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;Decode tok/s&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;Decode vs production&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B&lt;/td&gt;
&lt;td&gt;Q4_K_S (production)&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;4.97 GiB&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;214.0&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;24.5&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B&lt;/td&gt;
&lt;td&gt;Q4_0&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;4.95 GiB&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;221.6&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;29.8&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;&lt;strong&gt;+22%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B&lt;/td&gt;
&lt;td&gt;IQ4_XS (production)&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;6.27 GiB&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;151.0&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;19.4&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B&lt;/td&gt;
&lt;td&gt;Q4_0&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;6.60 GiB&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;157.6&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;23.5&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;&lt;strong&gt;+21%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Legacy Q4_0 dequantizes much faster than every K- or IQ-quant on this card. At roughly the same size it decodes about 22% faster, and it beats Q3_K_M even though Q3_K_M is 13–15% smaller. Bytes saved do not translate because dequantization cost dominates. IQ4_XS is not slower than the K-quants here, so the gain is Q4_0 being cheap rather than IQ being expensive.&lt;/p&gt;
&lt;p&gt;End-to-end on the same harness, the gain held: Ornith went from 23.38 to 28.20 tok/s (+20.6%) and Nemo from 18.83 to 22.77 (+20.9%), for 1–4 W more.&lt;/p&gt;
&lt;p&gt;The catch is quality. On wikitext-2 (100 chunks, 512 context) Q4_0 costs 2.7% higher perplexity on Ornith (10.571 → 10.854) and 4.9% on Nemo (6.659 → 6.988). A small spot check (five images and three prompts) showed no visible degradation, which is exactly why the perplexity run matters: the sample was too small to see a real but small loss.&lt;/p&gt;
&lt;p&gt;So Q4_0 isn’t a free win. It is about +21% decode for +2.7–4.9% perplexity, which is a good trade for bulk captioning or judging and a bad one where the last bit of fidelity matters. Q8_0 is not an option for either model at this size: 9.5 GB and 13 GB do not fit in 8 GB.&lt;/p&gt;
&lt;h2 id=&quot;free-improvement-a-newer-mesa&quot;&gt;Free improvement: a newer Mesa&lt;/h2&gt;
&lt;p&gt;My system had &lt;a href=&quot;https://mesa3d.org&quot;&gt;Mesa&lt;/a&gt; 25.2.8 installed when I started, and moving to Mesa 26.2.3 produced a free bump in speed without any penalty in quality. Both sides of each arrow are reruns from the same session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Quant&lt;/th&gt;
&lt;th&gt;Prefill tok/s&lt;/th&gt;
&lt;th&gt;Decode tok/s&lt;/th&gt;
&lt;th&gt;PPL cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B&lt;/td&gt;
&lt;td&gt;Q4_K_S&lt;/td&gt;
&lt;td&gt;117.7 → 122.4 (+4%)&lt;/td&gt;
&lt;td&gt;23.38 → 26.48 (+13%)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B&lt;/td&gt;
&lt;td&gt;Q4_0&lt;/td&gt;
&lt;td&gt;119.4 → 126.1 (+6%)&lt;/td&gt;
&lt;td&gt;28.20 → 28.81 (+2%)&lt;/td&gt;
&lt;td&gt;+2.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B&lt;/td&gt;
&lt;td&gt;IQ4_XS&lt;/td&gt;
&lt;td&gt;103.7 → 103.8 (0%)&lt;/td&gt;
&lt;td&gt;18.83 → 18.49 (−2%)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B&lt;/td&gt;
&lt;td&gt;Q4_0&lt;/td&gt;
&lt;td&gt;92.3 → 99.8 (+8%, noisy)&lt;/td&gt;
&lt;td&gt;22.77 → 23.08 (+1%)&lt;/td&gt;
&lt;td&gt;+4.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Prefill improves by up to ~8%; the big decode win is on the K-quant. Perplexity is untouched (the same Ornith model measured 10.5705 under both drivers, identical to four digits), so this is a pure win.&lt;/p&gt;
&lt;p&gt;It also changes the quant decision. On Ornith, Q4_0’s advantage over Q4_K_S shrinks from +22% to about +9% (28.81 vs 26.48) for the same +2.7% perplexity, so staying on Q4_K_S is now the better trade. Nemo is unaffected by the driver, so Q4_0 still buys about +25% (23.08 vs 18.49) for +4.9% perplexity.&lt;/p&gt;
&lt;h2 id=&quot;power-consumption&quot;&gt;Power consumption&lt;/h2&gt;
&lt;p&gt;The RX 580 has a 185 W reference TDP (this card reports a 183 W power cap), and it’s not as power-efficient as more recent mid-range cards. I found that undervolting was an effective way to cut power with almost no penalty on prefill or decode. Capping power, by contrast, hits prefill harder, because prefill is the compute-heavy phase and decode is mostly waiting on memory.&lt;/p&gt;
&lt;p&gt;These runs are from the same post-reboot state at 1158 MHz, where the card would no longer clock any higher, so the baseline here is deliberately not the 122.4 tok/s row above. The comparison is voltage-for-voltage at a fixed clock.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;&lt;code&gt;max_voltage&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;Prefill tok/s&lt;/th&gt;
&lt;th&gt;Decode tok/s&lt;/th&gt;
&lt;th&gt;Busy power (W)&lt;/th&gt;
&lt;th&gt;tok/s/W&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B Q4_K_S&lt;/td&gt;
&lt;td&gt;1106 mV (stock)&lt;/td&gt;
&lt;td&gt;110.5&lt;/td&gt;
&lt;td&gt;25.12&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;0.166&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ornith 1.5 9B Q4_K_S&lt;/td&gt;
&lt;td&gt;950 mV&lt;/td&gt;
&lt;td&gt;111.1&lt;/td&gt;
&lt;td&gt;25.61&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;110.9 (−27%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.231 (+39%)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B IQ4_XS&lt;/td&gt;
&lt;td&gt;1106 mV (stock)&lt;/td&gt;
&lt;td&gt;97.9&lt;/td&gt;
&lt;td&gt;18.03&lt;/td&gt;
&lt;td&gt;131&lt;/td&gt;
&lt;td&gt;0.138&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Nemo 12B IQ4_XS&lt;/td&gt;
&lt;td&gt;950 mV&lt;/td&gt;
&lt;td&gt;96.3&lt;/td&gt;
&lt;td&gt;18.32&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;99.5 (−24%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.184 (+33%)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The card will not go below 950 mV under load: the memory runs at 2100 MHz during decode and its lowest voltage point is 950 mV, so the core rail cannot drop further while memory is busy. Settings below 950 mV only apply in brief low-memory-clock moments and add instability for no saving.&lt;/p&gt;
&lt;h2 id=&quot;idle-power&quot;&gt;Idle power&lt;/h2&gt;
&lt;p&gt;The card is quite power-hungry at idle, consuming about 30 W when doing nothing. It’s worth exploring this further, because I was not able to get idle consumption lower than that with my system configuration.&lt;/p&gt;
&lt;h2 id=&quot;worthwhile&quot;&gt;Worthwhile?&lt;/h2&gt;
&lt;p&gt;The configuration I settled on depends on the workload:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;Choice&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VLM, quality matters&lt;/td&gt;
&lt;td&gt;Ornith 1.5 9B Q4_K_S&lt;/td&gt;
&lt;td&gt;Mesa 26.2.3 gives +13% decode at no quality cost; Q4_0 is now only +9% for +2.7% perplexity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text, throughput matters&lt;/td&gt;
&lt;td&gt;Nemo 12B Q4_0&lt;/td&gt;
&lt;td&gt;+25% decode for +4.9% perplexity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text, fidelity matters&lt;/td&gt;
&lt;td&gt;Nemo 12B IQ4_XS&lt;/td&gt;
&lt;td&gt;the production quant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Everything&lt;/td&gt;
&lt;td&gt;950 mV at the stock 1158 MHz&lt;/td&gt;
&lt;td&gt;−24–27% busy power with no measurable speed loss&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Should you buy one of these cards for the purpose? With GPU prices these days, it might be tempting. I wouldn’t recommend building a PC around one, but if you’ve got one lying around and a free PCIe slot, it is still worth using.&lt;/p&gt;
</content:encoded></item></channel></rss>