# A 128GB Mini PC Runs the AI Model Your $2,000 Graphics Card Can&#39;t Load

A 24GB graphics card cannot hold a 70B model; a 128GB APU like DGX Spark or Strix Halo can, just slower. When a unified-memory APU beats a GPU for on-prem AI, and what runs on one.

Author: J.A. Watte
Published: July 17, 2026
Source: https://jwatte.com/blog/apu-vs-gpu-on-prem-ai-unified-memory/

---

Here is the fact that reorders every decision about running AI on your own hardware. The thing that stops you from running a big model is almost never how fast the chip is. It is whether the model fits in fast memory at all. A model that does not fit does not run slowly. It does not run.

That single constraint is why a quiet little box that looks like a Mac Mini can run a model that a $2,000 gaming card physically cannot load. The card is far faster. The box holds far more. For a whole class of on-premises AI work, holding more is the thing that matters, and the chip that holds more is an APU.

I wrote a broad tour of the AI chip zoo a while back, covering GPUs, NPUs, TPUs, and the rest. It never covered this category properly, because the interesting APUs did not exist yet in the form they take now. This post is the missing chapter: what a unified-memory APU is, why NVIDIA's DGX Spark and AMD's Strix Halo suddenly made it matter, which models actually run on one, and the honest answer to when you want an APU instead of a GPU.

## Four chips, plainly

Start with the vocabulary, because the category names get muddled constantly. A general explainer worth reading lays out the four ([GeeksforGeeks](https://www.geeksforgeeks.org/techtips/apu-cpu-gpu-npu-differences/)), and here is the version that matters for running models, with the numbers checked against the manufacturers.

| Chip | What it is | A 2026 example | Memory | For AI it is | Best at |
|---|---|---|---|---|---|
| **CPU** | The general-purpose brain. A few strong cores, tuned to finish one task fast | AMD Ryzen 9 9950X, 16 cores | System DDR5 | Slow and memory-starved for big models; no real matrix engine | Running the OS and everything; small models, slowly |
| **GPU** (discrete) | A massively parallel chip with its own dedicated, very fast memory | RTX 5090, 32GB GDDR7 | 32GB at 1,792 GB/s | The fastest option, but only for a model that fits its VRAM | Training, and fast inference when the model fits |
| **APU** (unified) | A CPU and GPU, often a neural engine too, on one die sharing one memory pool | Ryzen AI Max+ 395; DGX Spark GB10 | up to 128GB at ~256 to 273 GB/s | Holds models a GPU cannot, at lower speed per token | Big models on-prem, quiet, low power |
| **NPU** | A dedicated matrix accelerator, rated in TOPS, usually built into a CPU or APU | AMD XDNA 2, 50 TOPS; Apple M4, 38 TOPS | Shares the host or unified memory | Efficient inference of small models | Always-on and background AI, not big local LLMs yet |

The word doing the heavy lifting is APU, which is AMD's term for a chip that puts a processor and a graphics engine on one piece of silicon feeding from one shared pool of memory. The important difference from a normal "CPU plus a graphics card" is that there is no separate VRAM and no copy across a slot. The processor and the graphics engine read and write the same system memory, which saves power, saves space, and, for our purposes, means the graphics engine can reach a very large pool instead of being boxed into a soldered 24 gigabytes.

Two things that are technically not APUs behave exactly like one here and belong in the same conversation. Apple's M-series chips and NVIDIA's GB10 are both what the industry calls SoCs, but each is an integrated graphics engine fed from one large unified memory pool, so for running models they play the APU role. The NPU is the odd one out. It is real and it is in most of these chips, but today the software that runs large local models leans on the GPU part, not the NPU. The popular runtimes execute on CPU and GPU backends, and NPU support exists mostly through vendor-specific side paths rather than the default engine, so treat the NPU as a companion for small always-on tasks, not the workhorse for a 70-billion-parameter model.

## The two boxes that made this real

For years the only unified-memory machine that could hold a serious model was an expensive Mac. In the last year two things changed that, and they are the reason this post exists now.

**NVIDIA DGX Spark** is a desktop box built on the GB10 Grace Blackwell Superchip, which pairs a 20-core Arm CPU (ten Cortex-X925 performance cores and ten Cortex-A725 efficiency cores) with a Blackwell GPU of 6,144 CUDA cores, all sharing 128GB of coherent unified memory ([NVIDIA](https://www.nvidia.com/en-us/products/workstations/dgx-spark/), [NVIDIA hardware docs](https://docs.nvidia.com/dgx/dgx-spark/hardware.html), [Chips and Cheese](https://chipsandcheese.com/p/analyzing-nvidia-gb10s-gpu)). NVIDIA quotes up to 1 petaFLOP of FP4 compute, though that headline figure is the sparse number and dense FP4 is roughly half of it. A single unit can hold models up to 200 billion parameters in 4-bit, and two units linked over ConnectX-7 networking at 200 Gbps reach up to 405 billion ([NVIDIA](https://www.nvidia.com/en-us/products/workstations/dgx-spark/)). It launched at $3,999 in October 2025 and, thanks to the 2026 memory shortage, now lists at $4,699 with no change to the hardware ([Tom's Hardware](https://www.tomshardware.com/desktops/mini-pcs/nvidia-dgx-spark-gets-18-percent-price-increase-as-memory-shortages-bite-founders-edition-now-usd4-699-up-from-usd3-999)).

**AMD Strix Halo**, sold as the Ryzen AI Max+ 395, is the chip behind a growing shelf of small machines. It combines 16 Zen 5 CPU cores, a large integrated Radeon 8060S GPU with 40 RDNA 3.5 compute units, and an XDNA 2 neural engine rated at 50 TOPS, feeding from up to 128GB of unified LPDDR5X memory ([AMD](https://www.amd.com/en/products/processors/laptop/ryzen/ai-300-series/amd-ryzen-ai-max-plus-395.html), [Notebookcheck](https://www.notebookcheck.net/AMD-Ryzen-AI-Max-395-Processor-Benchmarks-and-Specs.942323.0.html)). AMD markets the whole chip at 126 TOPS across CPU, GPU, and NPU combined, and pitches the 128GB configuration as able to run on-device models up to 70 billion parameters. It shows up in the [Framework Desktop](https://frame.work/products/desktop) at around $1,999, in the HP ZBook Ultra G1a, in the Asus ROG Flow Z13, and in mini PCs from vendors like ACEMAGIC, whose own write-up on the chip is a fair primer even if it is selling you a box ([ACEMAGIC](https://acemagic.com/blogs/about-ace-mini-pc/amd-strix-halo)). One number worth correcting: a 128GB Ryzen AI Max+ 395 mini PC is not the "$1,499" you sometimes see on a listing. That entry price is the Intel variant of a combined product page. The 128GB AMD build runs from roughly $2,399 upward ([Liliputing](https://liliputing.com/acemagic-launches-m1a-pro-mini-pc-with-ryzen-ai-max-395-and-128gb-ram-for-2399/)).

Both boxes share the trait that defines the category. They hold a lot, and they are not fast.

| Box | Chip | Unified memory | Memory bandwidth | Price | Notes |
|---|---|---|---|---|---|
| NVIDIA DGX Spark | GB10 Grace Blackwell | 128GB LPDDR5x | 273 GB/s | ~$4,699 | Full CUDA toolchain; 200B params on one, 405B on two linked |
| AMD Strix Halo (Framework Desktop) | Ryzen AI Max+ 395 | up to 128GB LPDDR5X | 256 GB/s peak | ~$1,999+ | Up to 96GB assignable to the GPU on Windows |
| Apple Mac Studio (M4 Max), for contrast | M4 Max | 128GB | 546 GB/s | ~$2,000+ | Same capacity, roughly double the bandwidth |

## Why the big-memory box is the slow box

This is the part that trips people up, so here is the mechanism. Generating text one token at a time is not a compute problem, it is a memory problem. To produce each new token the machine has to read the model's active weights out of memory, every token, over and over. So the speed you feel, the words-per-second, is governed by how fast the chip can stream weights out of memory, which is the memory bandwidth, divided by how many bytes it reads per token. Peak FLOPS barely enter into it ([LMSYS](https://www.lmsys.org/blog/2025-10-13-nvidia-dgx-spark/)).

Now put the numbers side by side. A discrete GPU's dedicated VRAM is a firehose. An RTX 4090 moves memory at 1,008 GB/s, an RTX 5090 at 1,792 GB/s, and a data-center H100 at 3.35 TB/s ([RTX 40 series](https://en.wikipedia.org/wiki/GeForce_RTX_40_series), [RTX 50 series](https://en.wikipedia.org/wiki/GeForce_RTX_50_series), [NVIDIA H100](https://www.nvidia.com/en-us/data-center/h100/)). The unified pool in an APU is a garden hose by comparison: 273 GB/s on DGX Spark, about 256 GB/s on Strix Halo. That is somewhere between a third and a seventh of a consumer card's bandwidth. So on a model that fits both, the graphics card wins on speed by a wide margin.

The catch is the word "fits." That RTX 4090 firehose feeds only 24GB. The RTX 5090 feeds 32GB. A 70-billion-parameter model in 4-bit needs about 43GB just for weights, and a 120-billion one needs more. The fast card cannot load them at any speed. The APU's 128GB holds them comfortably. That is the whole trade, stated plainly: the GPU gives you speed inside a small box, the APU gives you a big box at lower speed.

How low? On an independent hands-on review, DGX Spark ran Llama 3.1 70B and produced about 2.7 tokens per second of output, with the reviewer calling the 273 GB/s bandwidth "the key bottleneck" and positioning the machine for prototyping rather than production-speed serving ([LMSYS](https://www.lmsys.org/blog/2025-10-13-nvidia-dgx-spark/)). Strix Halo, with near-identical bandwidth, lands in the same neighbourhood on a dense 70B. Single-digit tokens per second is readable-slow, fine for a background job or a private assistant you are patient with, painful if you wanted an interactive coding partner.

This is exactly the gap that the software you run tries to close, and it is why NVIDIA's own recent update to DGX Spark is worth understanding rather than dismissing as marketing. In a January 2026 post, NVIDIA reported that running the large Qwen-235B model with its NVFP4 4-bit format plus speculative decoding delivered up to a 2.6x speedup over the older FP8 path on a two-unit DGX Spark, and that NVFP4 cuts a model's memory footprint by roughly 40% compared to FP8 while losing about one percent of accuracy ([NVIDIA](https://developer.nvidia.com/blog/new-software-and-model-optimizations-supercharge-nvidia-dgx-spark/), memory claim independently echoed by [Red Hat](https://developers.redhat.com/articles/2026/02/04/accelerating-large-language-models-nvfp4-quantization), speedup direction corroborated by [StorageReview](https://www.storagereview.com/news/nvidia-dgx-spark-achieves-2-5x-performance-and-8x-video-speed-in-ces-2026-enterprise-update)). The 2.6x is a best-case vendor benchmark, so treat it as a ceiling rather than a promise, and read the 40% as "against FP8," because against full precision the saving is larger and the baseline matters. NVIDIA also claimed an average 35% uplift for mixture-of-experts models on newer llama.cpp builds, but that number is NVIDIA's own with no disclosed method, and no independent source has reproduced it, so I would not repeat it as fact. The honest takeaway is the shape, not the exact multiple: the hardware sets a hard ceiling, and smart quantization plus a good runtime plus the right kind of model is how you get close to it.

## The kind of model that loves a slow, big box

The right kind of model is a mixture-of-experts model, and this is the most useful thing to internalize. A dense model reads all of its weights for every token, so a 70B dense model reads 70B parameters' worth of memory per token and the bandwidth tax is brutal. A mixture-of-experts model of the same total size only activates a small slice of its parameters per token, so it reads far less memory per token and generates much faster, even though the whole thing still has to fit in memory. On DGX Spark, independent llama.cpp benchmarks show the mixture-of-experts gpt-oss-120b running around 35 to 42 tokens per second and Qwen3-30B-A3B around 89, an order of magnitude past that dense-70B crawl ([llama.cpp discussion](https://github.com/ggml-org/llama.cpp/discussions/16578)). The big memory holds the whole model, and the sparse activation dodges the bandwidth wall. That combination is the APU's happy place.

So which models actually fit in 128GB? Here are the real 4-bit download sizes, read off the Ollama library, not estimated ([Ollama](https://ollama.com/library), [gpt-oss on Hugging Face](https://huggingface.co/openai/gpt-oss-120b)). The rule of thumb underneath them is that a 4-bit model costs roughly half a gigabyte per billion parameters for weights, and you must leave headroom on top for the attention cache, which grows with how much context you feed it.

| Model | Type | 4-bit size | Fits one 128GB box? |
|---|---|---|---|
| Llama 3.3 70B | dense | ~43 GB | Yes |
| DeepSeek-R1 70B distill | dense | ~43 GB | Yes |
| Qwen3 32B | dense | ~20 GB | Yes |
| Gemma 3 27B | dense | ~17 GB | Yes |
| gpt-oss-20b | MoE | ~14 GB | Yes |
| gpt-oss-120b | MoE | ~65 GB | Yes |
| Mixtral 8x22B | MoE | ~86 GB | Yes, with little room to spare |
| Qwen3 235B-A22B | MoE | ~142 GB | No, exceeds one box |
| Llama 3.1 405B | dense | ~243 GB | No, needs two linked units |

The thing a 128GB box unlocks that no single 24GB or 32GB consumer GPU can touch is that entire top-to-middle band: real 70B models and 120B mixture-of-experts models, held whole, on your desk, drawing less power than a gaming PC. For a mixture-of-experts model the amount that has to fit is the total parameter count, not the active slice, so a 235B model does not fit one box even though it only lights up 22B per token. That is where the two-unit DGX Spark trick or a bigger Mac comes in, and where you start asking whether the cloud is the saner answer.

## What the setup actually looks like

None of this requires you to be a systems engineer. The on-ramp is a single command. [Ollama](https://github.com/ollama/ollama) runs a model with `ollama run <model>`, pulling a quantized file and serving it locally on the llama.cpp engine that most of these tools share underneath. [LM Studio](https://lmstudio.ai/docs/app/api/endpoints/openai) gives you the same thing with a desktop window. When you want more throughput you move up to a real serving engine like [vLLM](https://docs.vllm.ai/en/latest/serving/online_serving/) or, on DGX Spark specifically, NVIDIA's TensorRT-LLM, which is the runtime behind those NVFP4 results. NVIDIA publishes ready-made [DGX Spark playbooks](https://github.com/NVIDIA/dgx-spark-playbooks) for exactly this, and AMD documents the unified-memory serving path for Strix Halo through [ROCm](https://rocm.blogs.amd.com/artificial-intelligence/ryzen-uma-llm/README.html).

The detail that makes this genuinely useful is that almost all of these serve an OpenAI-compatible API endpoint. That means the code you already wrote against a cloud model does not care that the model now lives on the box under your desk. You change the base URL, you point it at your machine, and the requests never leave the building. For anyone handling data they are not allowed to send to a third party, that last property is not a nice-to-have. It is the entire reason to own the hardware. The model runs where the data already is, and nothing is uploaded, because there is no upload.

## When an APU, when a GPU, when neither

Here is the decision, stripped down.

**Buy an APU box** when you need to run large models privately and quietly and you can live with reading speed rather than typing speed. A 128GB unified-memory machine is the cheapest way to hold a 70B or a 120B model whole, it sips power, it makes no noise, and it keeps your data on your desk. It is a superb prototyping and private-inference machine and, in DGX Spark's case, a way to have the full CUDA toolchain locally for development. What it is not is a fast production server.

**Buy a discrete GPU** when the model you actually run fits in 24 or 32 gigabytes and you care about speed, throughput, or training. A used RTX 3090 or a new 5090 will run circles around any APU on a model that fits its VRAM, and it is the only one of these that is genuinely good at fine-tuning at speed. The moment your model outgrows the card, though, the APU's whole-model capacity wins by default, because the alternative on the GPU is not "slower," it is "cannot."

**Rent the cloud** when you do not run enough to justify buying anything, or when you need frontier quality that no open-weight model on a desk can match. Most small operations are here and should stay here until a real reason pushes them off. I worked the dollars-and-cents version of that in [the local-versus-cloud cost math](/blog/blog-smb-ai-local-vs-cloud/), and the companion to this post, on [using cloud models efficiently by tiering them](/blog/claude-fable-5-orchestrator-not-task-runner/), is the other half of the same coin: when you do rent intelligence, rent the right amount of it. To put a monthly dollar figure on that cloud option and weigh it against the price of a box, the **[Model-Tier Cost Calculator](/tools/model-tier-cost-calculator/)** prices a task across the Claude, OpenAI, and Gemini tiers in your browser.

## The bottom line

The instinct trained by a decade of gaming benchmarks is that the fast chip is the good chip. For running large AI models on your own hardware, that instinct is backwards. The binding number is not how fast the memory is, it is how much of it the chip can reach, because a model either fits or it does not. Discrete GPUs give you blistering bandwidth over a small, hard capacity ceiling. Unified-memory APUs like DGX Spark and Strix Halo give you a big ceiling at modest bandwidth, and the software world is busy teaching models to be lighter on that bandwidth through 4-bit formats and sparse, mixture-of-experts designs. Match the chip to the constraint. If your problem is "the model will not fit," a slow, quiet, 128GB box is the answer, and it will run the model your fast, expensive graphics card cannot even load.

If you are the kind of person who would rather own the machine that runs your capability than rent it by the month, that build-it-yourself instinct is the argument of my book **The $100 Network** (search the title on Amazon Kindle). The short version lives on this blog, in the posts below.

## Related reading

- [XPU, NPU, GPU, TPU: What Each AI Chip Actually Does](/blog/blog-xpu-chips-ai-hardware-ecosystem/): the broader map of AI silicon that this post is the missing APU chapter of.
- [The Free-First Home AI Hardware Ladder](/blog/blog-free-home-ai-hardware-builds/): where these boxes sit on the full ladder from a free cloud GPU to a real rig, with the Mac options.
- [Local AI or Cloud APIs for a Small Business](/blog/blog-smb-ai-local-vs-cloud/): the cost math for owning the hardware versus renting the tokens.
- [Stop Using Claude Fable 5 as a Task Runner](/blog/claude-fable-5-orchestrator-not-task-runner/): the cloud side of the same efficiency question, when you rent the frontier instead of owning it.
- [Running Open Weights at Home](/blog/qwen-open-weights-self-hosted-at-home/): the local-model software setup that sits on top of any of this hardware.

## Fact-check notes and sources

Hardware specs and prices in 2026 are unusually volatile because of a memory shortage, and vendor performance figures are best-case; treat every number here as an approximate mid-2026 snapshot and confirm before buying.

- **DGX Spark specs**: GB10 Grace Blackwell Superchip, 20-core Arm CPU (10 Cortex-X925 + 10 Cortex-A725), Blackwell GPU with 6,144 CUDA cores, 128 GB LPDDR5x coherent unified memory on a 256-bit interface at 273 GB/s, up to 1 PFLOP FP4 with sparsity (dense FP4 is roughly half, about 427 to 500 TFLOPS), 200B-parameter inference on one unit and 405B across two linked over ConnectX-7 at 200 Gbps, 140W SoC with a 240W supply ([NVIDIA product page](https://www.nvidia.com/en-us/products/workstations/dgx-spark/), [NVIDIA hardware docs](https://docs.nvidia.com/dgx/dgx-spark/hardware.html), [Chips and Cheese GB10 analysis](https://chipsandcheese.com/p/analyzing-nvidia-gb10s-gpu), [LMSYS review](https://www.lmsys.org/blog/2025-10-13-nvidia-dgx-spark/)). The 200B and 405B figures are 4-bit "fits in memory" capacities, not throughput.
- **DGX Spark price**: launched at $3,999 (October 15, 2025), raised to $4,699 effective February 23, 2026 on memory supply constraints with no hardware change ([Tom's Hardware](https://www.tomshardware.com/desktops/mini-pcs/nvidia-dgx-spark-gets-18-percent-price-increase-as-memory-shortages-bite-founders-edition-now-usd4-699-up-from-usd3-999)).
- **DGX Spark software update**: Qwen-235B with NVFP4 plus speculative decoding up to 2.6x versus FP8 on a two-unit configuration, and NVFP4 cutting memory roughly 40% versus FP8 with about 1% accuracy loss ([NVIDIA blog, Jan 5, 2026](https://developer.nvidia.com/blog/new-software-and-model-optimizations-supercharge-nvidia-dgx-spark/); memory reduction corroborated by [Red Hat](https://developers.redhat.com/articles/2026/02/04/accelerating-large-language-models-nvfp4-quantization); speedup direction by [StorageReview](https://www.storagereview.com/news/nvidia-dgx-spark-achieves-2-5x-performance-and-8x-video-speed-in-ces-2026-enterprise-update)). The 2.6x is a vendor best case. NVIDIA's separate "35% average uplift for MoE on llama.cpp" is a vendor figure with no disclosed method and no independent reproduction; it is noted, not asserted.
- **Strix Halo specs**: AMD Ryzen AI Max+ 395, 16 Zen 5 cores, Radeon 8060S integrated GPU with 40 RDNA 3.5 compute units, XDNA 2 NPU at 50 TOPS, 126 TOPS total-platform, up to 128 GB unified LPDDR5X-8000 on a 256-bit bus with a 256 GB/s theoretical peak (independent reviews measure roughly 200 to 215 GB/s), up to 96 GB assignable to the GPU on Windows ([AMD](https://www.amd.com/en/products/processors/laptop/ryzen/ai-300-series/amd-ryzen-ai-max-plus-395.html), [Notebookcheck](https://www.notebookcheck.net/AMD-Ryzen-AI-Max-395-Processor-Benchmarks-and-Specs.942323.0.html), [Framework Desktop](https://frame.work/products/desktop), vendor primer at [ACEMAGIC](https://acemagic.com/blogs/about-ace-mini-pc/amd-strix-halo)). A 128 GB Ryzen AI Max+ 395 mini PC starts around $2,399, not $1,499 ([Liliputing](https://liliputing.com/acemagic-launches-m1a-pro-mini-pc-with-ryzen-ai-max-395-and-128gb-ram-for-2399/)).
- **Discrete GPU bandwidth and VRAM**: RTX 3090 24 GB at 936 GB/s, RTX 4090 24 GB at 1,008 GB/s, RTX 5090 32 GB at 1,792 GB/s, H100 SXM 80 GB at 3.35 TB/s ([RTX 30](https://en.wikipedia.org/wiki/GeForce_RTX_30_series), [RTX 40](https://en.wikipedia.org/wiki/GeForce_RTX_40_series), [RTX 50](https://en.wikipedia.org/wiki/GeForce_RTX_50_series), [H100](https://www.nvidia.com/en-us/data-center/h100/)).
- **Why bandwidth binds token speed**: single-stream decode is memory-bandwidth-bound, reading the active weights per token, so output tokens per second scale with bandwidth divided by bytes read per token rather than with peak compute; DGX Spark's 273 GB/s is described as "the key bottleneck," measured at about 2.7 tokens per second decoding Llama 3.1 70B ([LMSYS](https://www.lmsys.org/blog/2025-10-13-nvidia-dgx-spark/)).
- **Model fit and real throughput**: 4-bit sizes from the Ollama library and Hugging Face (Llama 3.3 70B ~43 GB, Qwen3 32B ~20 GB, Gemma 3 27B ~17 GB, gpt-oss-120b ~65 GB, gpt-oss-20b ~14 GB, Mixtral 8x22B ~86 GB, Qwen3 235B ~142 GB, Llama 3.1 405B ~243 GB) ([Ollama](https://ollama.com/library), [gpt-oss-120b](https://huggingface.co/openai/gpt-oss-120b)); independent DGX Spark llama.cpp results of ~35 to 42 tokens per second on gpt-oss-120b and ~89 on Qwen3-30B-A3B ([llama.cpp discussion](https://github.com/ggml-org/llama.cpp/discussions/16578)).
- **On-prem serving stack**: Ollama, llama.cpp, LM Studio, vLLM, and TensorRT-LLM, most exposing OpenAI-compatible endpoints ([Ollama](https://github.com/ollama/ollama), [LM Studio](https://lmstudio.ai/docs/app/api/endpoints/openai), [vLLM](https://docs.vllm.ai/en/latest/serving/online_serving/), [NVIDIA DGX Spark playbooks](https://github.com/NVIDIA/dgx-spark-playbooks), [AMD ROCm on Ryzen unified memory](https://rocm.blogs.amd.com/artificial-intelligence/ryzen-uma-llm/README.html)).

---

*This post is informational and reflects my own research; it is not buying or financial advice, and I have no affiliation with any manufacturer or retailer linked. Mentions of NVIDIA, AMD, Apple, and other third parties are nominative fair use. Prices, specs, and vendor performance figures in 2026 are volatile and change constantly; verify against current documentation before you buy.*


---

Canonical HTML: https://jwatte.com/blog/apu-vs-gpu-on-prem-ai-unified-memory/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/apu-vs-gpu-on-prem-ai-unified-memory.webp
