Intel Arc Just Got Up to 2x Faster in llama.cpp — If You Run the Right Models (October 2026)
TL;DR: A llama.cpp patch merged October 10, 2026 (PR #29809) roughly doubles decode speed on Intel Arc GPUs — but only for MXFP4 MoE models like gpt-oss-20b, and the full 2x lands on Battlemage cards. Alchemist (A770) gets +33–38% with a prompt-processing regression. Your everyday Q4_K_M dense model gained single digits.
| Used Arc A770 16GB | Arc B580 12GB | Arc Pro B70 32GB | |
|---|---|---|---|
| Price (Oct 2026) | $300–$340 used | $310–$330 new (MSRP $249) | ~$1,100–$1,300 (MSRP $949) |
| What the Oct patches give you | +33–38% MoE decode, +4–5% Q8_0 | ~+40% MoE decode (12GB forces partial offload) | 1.91x MoE decode: 55.8 → 106.6 tok/s on gpt-oss-20b |
| The catch | pp1024+ regressed ~10% on MXFP4; Battlemage-only gates skip this card | Can’t hold gpt-oss-20b fully in 12GB, so no full 2x | SYCL build required; Vulkan and Ollama see none of this |
Honest take: If you already own an Arc card and run gpt-oss models, rebuild llama.cpp this weekend — it’s the biggest free speedup Arc has ever gotten. If you were deciding between Arc and a used RTX 3090, the 3090 is still 1.5x faster on the same model, but it now costs 4x what a used A770 does, and the gap just got meaningfully smaller.
A claim has been making the rounds this month: “LLMs became about twice as fast on Intel Arc without replacing the GPU.” We traced it, the same way we traced the AMD ROCm Q2_K “28x” claim in September. The short version: the 2x is real, it has a merge date (October 10, 2026) and a PR number (#29809), and it comes with three asterisks the viral framing leaves out — it’s one quantization format, it’s strongest on one GPU generation, and none of it reaches Ollama.
What actually merged: a wall of SYCL patches, not one magic commit
There is no single “Intel optimizations” PR. Between October 2 and October 18, 2026, the llama.cpp SYCL backend — the Intel-GPU path built on oneAPI — absorbed a dense run of merges, visible in the commit history for ggml/src/ggml-sycl:
| Merged | PR | What it does | Who feels it |
|---|---|---|---|
| Oct 2 | #28985 | Stops oneDNN picking an 80x-slower reference matmul | Intel iGPUs (Xe-LP) only — 85x prompt fix |
| Oct 2 | #29186 | Q8_0 ESIMD kernels + wide loads | All Arc dGPUs, +4–7% decode |
| Oct 9 | #29375 | Q5_K multi-token matrix-vector path | Battlemage only, +12% with speculative decoding |
| Oct 10 | #29809 | MXFP4 MoE arithmetic decoding + weight reorder | The 2x. All Arc cards, biggest on Battlemage |
| Oct 17 | #30374 | Fixes a prompt-processing regression the reorder work introduced | Anyone who built between Oct 10–16 |
| Oct 18 | #30239 | Restores ESIMD kernels on the FFN path | Cleanup after the same regression |
That cadence — a performance push, a regression, two fixes within a week — is why the build you grab matters as much as the headline. More on that below.
The 2x itself: MXFP4 MoE decode (PR #29809)
The October 10 merge does two things for MXFP4-quantized Mixture-of-Experts weights — which in practice means the gpt-oss family, since gpt-oss-20b and gpt-oss-120b ship their expert layers in MXFP4 natively. First, it replaces table-based MXFP4 decoding with 32-bit integer arithmetic that produces bit-identical results. Second, it lazily reorders expert weights so the GPU can use aligned vector loads, with temporary reorder memory capped at 32 MiB.
The numbers, from the PR’s own llama-bench runs and reviewer verification:
| Card | Model | Decode before | Decode after | Gain |
|---|---|---|---|---|
| Arc Pro B70 (32GB, Battlemage) | gpt-oss-20b | 55.84 tok/s | 106.64 tok/s | 1.91x |
| 2x Arc Pro B70 | gpt-oss-120b | 33.27 tok/s | 67.14 tok/s | 2.02x |
| Arc Pro B60 (24GB, Battlemage) | gpt-oss-20b, FA on | 30.88 tok/s | 77.49 tok/s | 2.51x |
Arc B570 (10GB, -ngl 16 partial offload) | gpt-oss-20b | 24.54 tok/s | 34.56 tok/s | +40.8% |
| Arc A770 (16GB, Alchemist) | gpt-oss-20b | — | — | +33% (FA off) / +38% (FA on) |
Perplexity is unchanged (14.5148 → 14.5129 on gpt-oss-20b, within noise), so this is a free lunch on quality. Prompt processing is a different story: the B60 gained 38–44% at pp1024/pp2048, the B70 was flat (~1%), and the A770 regressed 10–11% at pp1024 and pp2048 while gaining 7–15% on short prompts. If you run long contexts on Alchemist, you’re trading slower prefill for faster generation.
Two readings of that table matter for buyers. The B570 row shows what a 10–12GB card gets: gpt-oss-20b’s weights don’t fit, partial offload caps the gain at ~40%, not 2x — expect the same shape on a B580 12GB. And the B60 row shows why Battlemage is the main beneficiary: its Xe2 XMX engines plus the new aligned loads more than double throughput, where Alchemist’s older memory subsystem converts the same patch into a third.
The bandwidth math says this was overdue
Decode speed is bandwidth-bound: tok/s can’t exceed memory bandwidth divided by bytes read per token, and gpt-oss models read roughly 3 GB per token (MoE models only read active experts). The Arc Pro B70 has 608 GB/s, so its ceiling on gpt-oss-20b is ~203 tok/s. Before this patch, SYCL delivered 55.8 tok/s — 27% of the ceiling, which is the signature of a software problem, not a hardware one. After, 106.6 tok/s is 52% of ceiling. Still below the 70–95% that mature CUDA kernels reach (a used RTX 3090 at 936 GB/s does 161 tok/s on the same model, 52%→healthy band), but Arc went from “broken” to “credible” in one merge. There may be more left on the table.
What everyone else gets: the single-digit reality
If you don’t run MXFP4 MoE models, October’s haul is smaller and more specific:
- Q8_0 models (PR #29186, Oct 2): ESIMD kernels and 4-dword wide loads. On an A770 running Llama 3 8B Q8_0, tg128 went 35.33 → 36.88 tok/s with flash attention off and 37.57 → 39.47 with it on — about +4–5%. The author measured +7.3% generation on a 131K-context Qwen3.8-Flash-Next IQ4_XS workload. Prompt processing: flat.
- Q5_K models with speculative decoding (PR #29375, Oct 9): the multi-token verification path — exactly what DFlash drafting hammers — got 1.7–3x faster kernels at batch 2–8. End-to-end on a B70 running a Q5_K_XL model with DFlash: 35.4 → 39.6 tok/s average, +12%. This path is gated to Battlemage after review; A770 owners are excluded on purpose, to avoid untested regressions.
- Intel iGPUs (PR #28985, Oct 2): with oneDNN 3.15+, prompt processing on a UHD 770 collapsed to 3.12 tok/s because oneDNN silently picked a reference matmul running at under 1% of peak. The fix routes around it: pp512 went 3.12 → 264.89 tok/s — 85x. Discrete Arc cards measured no change, so if you saw the “80x faster!” variant of this month’s claim, it’s this patch, and it’s iGPU-only.
So no — your Qwen3.6 Q4_K_M didn’t double. Q4_K and Q5_K dense decode on Arc is nearly where it was in September: 55–67 tok/s on 7B Q4_0 for the A770, per our A770 revisit.
How to get it (and which build to avoid)
None of this ships through Ollama. Ollama’s Intel path is the Vulkan backend (Intel archived its IPEX-LLM fork on January 28, 2026), and Vulkan uses entirely different kernels — these merges live in the SYCL backend only. LM Studio also rides Vulkan on Arc. To collect the gains you need llama.cpp itself, either the official SYCL Windows release binaries or a source build with Intel’s oneAPI Base Toolkit:
source /opt/intel/oneapi/setvars.sh
cmake -B build -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx
cmake --build build --config Release -j
Then verify the MoE speedup took — it needs no flag, the weight reorder is automatic:
./build/bin/llama-bench -m gpt-oss-20b-mxfp4.gguf -fa 1
# B70-class Battlemage: expect tg128 ~100+ t/s. Mid-50s means you're on a pre-Oct-10 build.
The build-date trap, and the fix. The reorder work in #29809 introduced a prompt-processing regression on Q4_0/Q8_0 models: builds from October 10–16 generate faster but chew through prompts slower on those quants. The fix merged October 17 (PR #30374), with an ESIMD FFN restore following on October 18 (#30239). Practical rule: don’t cherry-pick a mid-October build — take a release tagged b11716 or later (the October 17 release wall). If you built last week and prompts suddenly got slow, that’s the bug; pull and rebuild.
Running llama.cpp directly instead of Ollama costs you nothing downstream, by the way — llama-server exposes the same OpenAI-compatible API, so a Continue.dev or Cline BYOK coding setup points at it with a one-line base-URL change.
Two smaller knobs from the same patch series: the Q8_0 wide-load path can be toggled with GGML_SYCL_MMVQ_WIDE (documented in SYCL.md, on track to become default), and multi-GPU Arc rigs hitting out-of-device-memory errors should set GGML_SYCL_ENABLE_HOST_PINNED_MEM=0. The Battlemage garbage-output environment-variable bug we documented in the Arc Pro B70 guide is unrelated and still applies to older builds.
Does this change which Arc card — or whether Arc at all?
Three things moved this month, and only one of them is software.
The A770 got more expensive. Used cards were $240–$300 in September; October listings run $300–$340 (BestValueGPU’s index sits at $339, eBay sold listings $310–$340). It’s still the cheapest 16GB card with 560 GB/s, but the “half the price of everything else” era is ending, and this patch series is increasingly Battlemage-first — the Q5_K path literally gates Alchemist out.
The B580 stayed cheap and gained a real MoE story. At $310–$330 new (GPUPrix tracks $330 in stock across 31 retailers; Newegg had an ASRock at $309.99 and a $329 promo), it’s the cheapest new card that benefits from the Battlemage-gated work. The 12GB limit means partial offload on gpt-oss-20b (~+40%, not 2x) — the B570 numbers above are its preview.
The Pro B70 is the quiet winner. 106.6 tok/s on gpt-oss-20b and 67 tok/s on gpt-oss-120b across two cards puts a ~$1,100–$1,300 street-price card (aiindigo tracking; MSRP $949) at two-thirds of a used RTX 3090’s speed on the model class that matters most in late 2026 — with 32GB instead of 24GB. Our B70 guide’s complaint was that MoE decode ran at half of what the bandwidth promised; that complaint is now substantially fixed.
What hasn’t changed: CUDA. A used RTX 3090 ($1,399–$1,450, October street) still decodes gpt-oss-20b at 161 tok/s, runs every framework without a custom build, and never asks you to check a PR number before updating. Arc’s pitch remains VRAM-per-dollar plus tolerance for build steps — October just made the pitch better.
What to actually buy
Prices as of October 2026, all verified above:
| Your situation | The move | Price | Where |
|---|---|---|---|
| Already own any Arc card | Rebuild llama.cpp SYCL at b11716+ | $0 | Build steps above |
| Cheapest 16GB entry, OK with used + build steps | Used Arc A770 16GB | $300–$340 | Check price |
| New card with warranty under $350 | Arc B580 12GB | $310–$330 (MSRP $249) | Check price |
| 32GB for gpt-oss-120b-class MoE without the NVIDIA tax | Arc Pro B70 32GB | ~$1,100–$1,300 (MSRP $949) | Check price |
| Maximum used-card speed + zero build friction | Used RTX 3090 24GB | $1,399–$1,450 | Check price |
| Want to test gpt-oss on fast hardware before buying anything | Rented 3090, from $0.07/hr | pay per hour | Vast.ai |
If you’re sizing which model tier your VRAM actually supports before spending anything, run your numbers through the VRAM calculator first, and the 16GB tier guide maps what an A770-class card can hold.
FAQ
Is the “2x faster” claim true? For MXFP4 MoE models (gpt-oss-20b/120b) on Battlemage cards, yes — measured 1.91x–2.51x decode in the merged PR. For dense Q4_K_M/Q5_K models, no — those gained 0–12% depending on quant and card. For anything running through Ollama or LM Studio on Arc, nothing changed at all.
Do I need to re-download my models? No. The weight reorder happens at load time in GPU memory (capped at 32 MiB of temporary space) and decoding is bit-identical. Same GGUF files, same outputs, faster.
Why did my prompt processing get slower after updating in mid-October? You caught the Oct 10–16 regression window on Q4_0/Q8_0 models. PR #30374 (merged Oct 17) fixes it — update to release b11716 or later and rebuild.
Does this help the Vulkan backend? No. These are SYCL-backend kernels. Vulkan on Arc (what Ollama and LM Studio use) has its own kernel set and its own pace — the B580’s 72 tok/s on 7B via Vulkan is unchanged. If the SYCL gains matter to you, you have to run llama.cpp directly.
Should I buy an A770 or a B580 today? For LLM work specifically: the A770’s 16GB and 560 GB/s still beat the B580 on capacity and raw bandwidth, but October’s development pattern — Battlemage-only gates, an Alchemist prefill regression left standing — says where Intel’s and the community’s attention is. At near price parity ($300–$340 used vs $310–$330 new with warranty), the B580 is the safer buy unless you specifically need 16GB, and then you should also price the B70 move per our B580 breakdown.
Recommended Gear
Products linked in this article:
- Used Intel Arc A770 16GB — $300–$340 used; cheapest 16GB card, +33–38% MoE decode from the October patches
- Intel Arc B580 12GB — $310–$330 new; the cheapest Battlemage card, where this patch series is focused
- Intel Arc Pro B70 32GB — ~$1,100–$1,300; now does 106+ tok/s on gpt-oss-20b after the October 10 merge
- Used RTX 3090 24GB — $1,399–$1,450; still the speed-per-used-dollar benchmark Arc is chasing
Sources
- PR #29809: sycl: accelerate MXFP4 MoE with arithmetic decoding and weight reordering — GitHub, ggml-org/llama.cpp
- PR #29186: SYCL: Q8_0 DMMV ESIMD and MMVQ wide load — GitHub, ggml-org/llama.cpp
- PR #29375: sycl: Q5_K reorder-layout MMVQ and fused GLU — GitHub, ggml-org/llama.cpp
- PR #28985: sycl: do not use slow oneDNN reference matmul and fattn — GitHub, ggml-org/llama.cpp
- PR #30374: sycl: fix prompt-processing regression after Q4_0/Q8_0 weight reorder — GitHub, ggml-org/llama.cpp
- ggml-sycl commit history, Sep–Oct 2026 — GitHub, ggml-org/llama.cpp
- Performance of llama.cpp on Intel GPU with SYCL backend, discussion #23313 — GitHub
- Arc B580 price history and current retail tracking — GPUPrix
- Newegg Arc B580 $329 promotion — Wccftech
- Arc A770 new and used price history — BestValueGPU
- Intel Arc Pro B70 32GB street price tracking — AI Indigo
- Run LLMs on Intel GPUs Using llama.cpp — Intel Developer Zone
Last updated October 18, 2026. Prices and specs change; verify current rates before purchasing. Before/after speed figures are the merged PRs’ own llama-bench results on the hardware named, not this site’s measurements.
Was this article helpful?
Thanks for the feedback — it helps improve future articles.
Need hands-on help?
I offer 1-on-1 technical consulting for local AI setup, GPU selection, and AI coding tool configuration — same topics covered on this site.
Book a session — $49 / hour →Get the numbers before you buy
New GPU and mini-PC benchmarks, VRAM thresholds, and price checks — sent when there's something worth acting on, not on a schedule. No spam, unsubscribe anytime.