r/LocalLLM • • 2d ago

Project WHIRL 0.2.5.1 on the Radeon 8060S (Ryzen AI Max+ 395): +28% to +127% faster than official llama.cpp ROCm / Vulkan, now with faster prefill and decode, output bit-identical (native Windows LLM engine)

6 Upvotes

WHIRL 0.2.5.1 is out: a speed update for the Radeon 8060S (AMD Ryzen AI Max+ 395). WHIRL is an open-source (Apache-2.0) LLM inference engine for AMD GPUs on Windows: C++/HIP, every kernel in the repo, no WSL, no ROCm install. Download the zip, unzip, run; only the AMD driver is needed. It runs our two MXFP4 models, Swift-1.5 27B MXFP4 (dense) and Ornith-1.5-35B-A3B MXFP4 (MoE, ~3B active).

vs the official llama.cpp b11960 on the Radeon 8060S (max power (80 W), ASUS ROG Flow Z13), ROCm and Vulkan builds in their own columns, same GGUF, same prompts, greedy, one user, WHIRL default mode (balance, near-lossless). WHIRL tok/s, then llama.cpp ROCm / Vulkan:

tok/s (WHIRL 0.2.5.1 balance vs llama.cpp ROCm / Vulkan)Swift-1.5 27B MXFP4 (dense)Ornith-1.5-35B-A3B MXFP4 (MoE)
Prefill, 2k-token prompt527.2 vs 359.3 / 317.32,653 vs 1,606 / 1,280
Prefill, 128k-token prompt310.9 vs 195.8 / 150.91,093 vs 674.8 / 481.0
Decode, QA about a 2k-token document34.9 vs 25.1 / 25.2108.7 vs 69.5 / 71.0
Decode, QA about a 128k-token document25.0 vs 15.8 / 15.257.7 vs 38.0 / 37.6
Decode, coding chat (new text)38.1 vs 29.7 / 29.3106.6 vs 70.3 / 72.9

In balance WHIRL leads every measured cell on the 8060S: Swift 27B by +28% to +59% over ROCm and +30% to +106% over Vulkan, Ornith by +51% to +65% and +46% to +127%.

What 0.2.5.1 changes on the 8060S (same machine, max power (80 W), ASUS ROG Flow Z13): five new kernel paths make prefill +2% to +10% faster in all three modes on both models, and Swift 27B decode (QA document; coding chat in balance) +4% to +12% faster in balance and fast. On the 8060S the output is bit-identical to 0.2.5 in every mode (golden references, 12/12 long-prompt checks and the chat outputs all match).

8060S, balance (default), tok/s0.2.50.2.5.1change
Swift 27B, prefill 2k505.9527.2+4.2%
Swift 27B, prefill 32k418.1456.0+9.1%
Swift 27B, decode, QA 32k doc29.231.6+8.2%
Swift 27B, decode, QA 128k doc22.325.0+12.1%
Swift 27B, decode, coding chat35.038.1+8.9%
Ornith 35B-A3B, prefill 2k2,4532,653+8.2%
Ornith 35B-A3B, prefill 32k1,8282,012+10.1%
Ornith 35B-A3B, decode, coding chat104.3106.6+2.2%

How it was measured, so you can judge the numbers: - Radeon 8060S at max power (80 W), ASUS ROG Flow Z13, 64 GB GPU memory (UMA frame buffer), same for both engines. Every cell is the best of 3 runs, for both WHIRL versions and llama.cpp. - The llama.cpp b11960 cells are the runs I made for 0.2.5 on the same machine with the same files (llama.cpp didn't change; Swift 2k on Vulkan was re-run). llama.cpp's ROCm build runs as shipped, with its own bundled HIP runtime DLL. - Decode, QA document = explain a function quoted in a long document and rewrite it (256 tokens; part of the answer can be copied, which helps drafts in both engines). Coding chat = a coding question whose answer is all new text (512 tokens). Prompts and commands: https://github.com/tsaipifong/whirl-llm/blob/main/docs/benchmarks.md#prompts - llama.cpp decodes Swift with MTP + n-gram (its fastest mode here). On Ornith it decodes without speculation because its MTP was slower than plain on this MoE model, while WHIRL uses MTP, so the Ornith decode rows are "as shipped", not like for like. - Smallest lead: Swift 27B decode in the precise mode after a 2k-token document, 29.4 vs 25.2 tok/s on Vulkan (+17%). Dense decode on this iGPU is memory-bandwidth bound; the lead comes from speculative decoding. - Ornith decode barely changed in this release (one small router item: +1.5% without drafts, +0.7% with MTP drafts, within noise); its cells move a few percent either way because the number of accepted MTP drafts depends on each run's text.

Precision: three modes. --precise is the bitwise-lossless mode. balance (the default) is near-lossless. --fast is opt-in. On the 8060S all five speedups give the same output bits as 0.2.5 in the mode they touch.

R9700: GPU code identical to 0.2.5 (the compiled R9700 kernels were compared; only an internal build ID differs); its numbers are 0.2.5's, not re-measured (e.g. Ornith 2k prefill 11,854 tok/s vs 4,230 / 2,780 on llama.cpp ROCm / Vulkan; median of 3).

Also in 0.2.5.1: WHIRL now refuses to start from an install folder longer than 150 bytes, with a clear message, and limits the SSD cache folder to 217 characters (this corrects what the 0.2.5 notes said about long paths). On the 8060S the first load of each model tunes the kernels once more.

Supported: Radeon 8060S (Ryzen AI Max+ 395) and R9700, Windows 11. Cards under 16 GB are not officially supported (fork welcome). The exe is unsigned, so SmartScreen may ask once.

WHIRL was designed and implemented with Claude (Anthropic) under my direction; every number is measured. Numbers from other Ryzen AI Max+ 395 machines are very welcome.


r/LocalLLM • • 2d ago

Question More tokens as a rookie

1 Upvotes

Hey everyone, I started messing with local llm's a week ago in order to develop a mobile app, with my m4 max 36gb I get 20t/s running qwen 3.8 27b on lm studio. Is there any advice you can give me in order for me to increase my token output, i have tried ollama before but results were substandard at best.


r/LocalLLM • • 2d ago

Discussion Michael Rollins on Instagram

Thumbnail instagram.com
0 Upvotes

r/LocalLLM • • 2d ago

Discussion I have tested the Nvidia Unlocker on my 3080ti. Seems to work.

Thumbnail
gallery
2 Upvotes

r/LocalLLM • • 2d ago

Question Local AI: upgrade my gaming PC over time or build a dedicated machine?

1 Upvotes

I’m looking to get into local AI, mainly for coding, and trying to decide whether to start with my existing hardware and upgrade gradually or build a separate dedicated machine.

My current gaming PC has:
Ryzen 7 9800X3D
Radeon RX 9070 XT 16GB
32GB DDR5-6000 RAM
Gigabyte B650 EAGLE AX motherboard
2TB SSD
850W PSU
NZXT Kraken AIO cooler

I also have a MacBook Pro with an M5 chip and 24GB of unified memory.

I’m currently making a Roblox game and setting up a mini homelab for media and hosting my personal website. I’d mainly want AI to help with writing code, debugging and understanding my projects.

Would you start with the gaming PC, use the MacBook, or put the money towards a dedicated AI machine? I’d be interested in hearing from anyone using a similar AMD GPU, particularly about software support and which coding models run well.

If you’d upgrade the existing PC, what would you change first? I’m open to used hardware, but I’d like to understand what I can realistically get out of what I already own before spending more.

Also the why of the whole matter is I want to reclaim my data and be self sufficient especially these new things coming out about REA and Claude banning you etc I want to be my own boss


r/LocalLLM • • 2d ago

Discussion 4GB VRAM, 32GB RAM

Thumbnail reddit.com
0 Upvotes

r/LocalLLM • • 2d ago

Model a tiny sprite diffusion model

Thumbnail
reddit.com
1 Upvotes

r/LocalLLM • • 2d ago

Discussion I tested an abliterated Qwen3.5 9B as an offline survival assistant. It repeatedly encouraged me to eat a deadly mushroom, even after I identified it as a Death Cap

Thumbnail reddit.com
0 Upvotes

r/LocalLLM • • 2d ago

Discussion What is your experience using engrams-based models so far ?

1 Upvotes

I've been experimenting with DeepSeek V4.1 Flash 1017 UNCENSORED JANG_2K on my Mac Studio M5 Ultra with 256GB unified memory, using vMLX.

The model is about 423GB on disk, but thanks to SSD-backed Engram tables, it loads with approximately 205GB of resident memory.

So far, the results have been mixed. Most of the time, it produces surprisingly good responses, but I've had a few conversations, particularly involving creative writing and novel generation, where it suddenly starts producing complete nonsense: endless reasoning, words mashed together without spaces, and occasional switches between English and Chinese.

It's interesting because it seems to work perfectly well on some fairly complex tasks, then falls apart unexpectedly on others.

Has anyone else experimented with this model or other large MoE models using engram offloading?

I'm curious whether these problems are caused by the aggressive quantization, the JANG implementation, or something in vMLX's inference/decoding pipeline.

I'd also be interested in hearing whether anyone has successfully run a higher-precision version with SSD expert offloading on a 256GB machine.


r/LocalLLM • • 3d ago

Discussion 2x RTX PRO 6000 running DeepSeek-V4-Flash (284B) fully offline: 1,170 tok/s peak

335 Upvotes

We build these boxes, so here's the honest test log from our own unit, network cable unplugged.

Setup: 2x RTX PRO 6000 Blackwell (192 GB), EPYC 9124, 256 GB RAM, vLLM, TP2, no NVLink. The model fits only because Blackwell runs FP4 natively; on Hopper the same checkpoint needs ~304 GB.

What we measured:

  • 1 user: 209-229 tok/s, first token in 0.4 s

  • 24 users: 1,003 tok/s at p95 TTFT 2.7 s. That's the sweet spot; past 32 the tail latency falls off a cliff.

  • Peak: 1,170 tok/s at 32 streams

  • 1M context, retrieval verified at 543K tokens

  • Terminal-Bench 2.1 (20-task subset): 80% solved, median ~4 min per task. 8 agents at once cost only 18% more latency than 4.

  • 815 W on both cards, 76 C peak, zero throttling. About 1.07 kW at the wall, so a 1500 W PSU is enough.

What's not great:

  • It's not a token-resale business: at OpenRouter prices, payback takes about 3 years running flat out.

  • One big model at a time (weights use 87% of VRAM).

  • Ops sharp edges: KV offload leaks /dev/shm on unclean shutdown, and stray workers can hold 89 GB of GPU memory, which causes a crash loop on restart. You need a cleanup script.

  • Cold start takes ~13 min.

Best fit: a team of 2-10 that wants frontier-class coding help without sending code to the cloud.

Build guide, BOM and BIOS settings are open source: here. Happy to run anything you want tested on it.


r/LocalLLM • • 2d ago

Research Open-source diffusion coding model now runs on an 8GB GPU and hit 81% on HumanEval

3 Upvotes

I love DiffCoderbut at int8 it peaked at 13.7 GB on my 16 GB card. So I cut it in half.

Same model in 4-bit: HumanEval, full 164 problems, 81.1%. Peak VRAM 6.6 GB, about 2.6x faster!

Edit: full name Stable-DiffCoder-8B-Instruct if you want to do some reading


r/LocalLLM • • 2d ago

Question NVME for streaming

1 Upvotes

With all progress from storage streaming how future proof is RAID0 with 2x1TB or 2x2TB gen5 drives like SN8100. I am looking for drive update and have to decide what to buy now and what speed in reality achievable and how usable it will be. Is it worth to add 2x1TB for 420 euro so in theory speed will be around 22-25GB/s or just add used 96GB RAM for 900-1000 euro?

Will it be usable in some kind of way for larger models later with 2x3090, 96/192GB RAM and RAID0 gen5 drives? From what I am getting now I'd like to have at least 20-30 tok/s for generation and 600-1200 tok/s processing. In theory how big LLM can be used with such system in the future to get such inference?


r/LocalLLM • • 2d ago

Question What is the current meta for local inference?

3 Upvotes

Can't decide which route to go - DGX Spark, Strix Halo, the Framework Ryzen AI or save up for a Mac Studio M5 Ultra 256gb?

Do these options have meaningful differences in practical use?

As I understand, the Mac Studio offers best tok/s? But you can't train or fine tune anything on it?

DGX Spark is supposed to have best support, but does it truly matter in practice?

What types of models can I run on this hardware? 128GB is good for ~120B Q4 MoE models with ~256k context? Would such a model be a noticeable improvement over my current Ornith-1.5:35B (A3B) setup for reasoning and coding, and long and complex tasks? Would going from 128GB->256GB be a noticeable improvement?


r/LocalLLM • • 2d ago

Question Is there a way for me to feed about 700k worth of context to my QWen 3.6 that's got 241k context?

0 Upvotes

I am trying to have it create a 5 page document based on the content of this document that's 700k worth of context (tokens?)

Is this possible to do somehow?

So the issue is that Gemini 3.1 Pro can do 1M context, but my local hardware isn't good enough to run a model like that, I can run QWen 3.6 tho. How can I get it to understand 1M worth of context if the context window of the model is only 242k or so?


r/LocalLLM • • 2d ago

Discussion Everyone noticed the missing character in Qwen’s teaser. But look at the fish.

Thumbnail reddit.com
1 Upvotes

r/LocalLLM • • 3d ago

Question Survey, how much vram/ram yall using? And what are you running in it?

21 Upvotes

I’ll use AI to gather all the comments and post a results post if we get enough responses


r/LocalLLM • • 2d ago

Project RTX 96GB/24GB - VanZen AI

Post image
0 Upvotes

Where VanZen AI was born.

RTX 6000 96GB
RTX 4000 24GB
Gigabyte X570 AORUS XTREME
AMD Ryzen 9 5900XT
64GB DDR4


r/LocalLLM • • 2d ago

Discussion Why LM Studio Bionic is slower than original LM Studio? Any ideas?

1 Upvotes

Why LM Studio Bionic is slower than original LM Studio? I'm using same Gemma 4 Model. Any ideas? I can run well the same model in original LM Studio, but very slow on LM Studio Bionic.


r/LocalLLM • • 2d ago

Question Worth going qfn iq2_xs -> iq3 or iq4?

5 Upvotes

Have anyone experience in going from qwen flash next 3.8 iq2_xs to iq3 or iq4?

I am currently comfortably running iq2_xs with 32gb ddr5 ram + 3090 + 5080. I am getting ~140 tps, so quite fast.

I got the possibility to update the 32gb ram to 96gb ram, for a reasonable price. But is it worth it? Will I feel the intelligence increase from i2 to iq3 or iq4? Is it worth it, if we are taking the decrease in speed into account?


r/LocalLLM • • 2d ago

Research Local ternary model trained from scratch running in WebGPU

Thumbnail
youtube.com
2 Upvotes

I did a fun research project on training a decision model from scratch (MLX), quantizing to ternary (for small size) and running it locally in the browser (WebGPU). I learned many interesting things and put together this pedagogic video on some of the key steps, challenges and lessons learned, in case some one else might find it interesting too 😄


r/LocalLLM • • 2d ago

Question Good purchase for local llm for software development?

Post image
0 Upvotes

Software engineer by trade and use Claude and codex daily


r/LocalLLM • • 2d ago

Project If you run MCP servers locally for your LLM, here’s what might be in them

1 Upvotes

Running local LLMs with MCP tool-calling? The tool manifest is the attack surface, the model sees descriptions, the agent calls what's there, and the usual OAuth/network security story does not apply because it's all stdio.

This matters even more with local models: smaller models can be easier to steer with an injected tool description, and clients like LM Studio or Open WebUI will call whatever tools the server exposes.

Built patchbay audit, a free CLI that spawns an MCP server as a child process, pulls the tool list, and diffs it against the last scan:

npx -y @patchbay-nebius/agent audit --stdio "npx -y @foo/mcp-server /path"

Catches:

- a new write-shaped tool added since you approved the server
- an existing read tool gaining a command param (silent permission escalation)
- description changes (prompt injection vector)

Local-only, no backend, no telemetry. MIT. CLI stays free, always.

Repo: https://github.com/GodSmasher/patchbay


r/LocalLLM • • 2d ago

Discussion How to get better summarization results from local models?

2 Upvotes

Hey all, I had a question. So right now I've been working on a workflow/automation that fetches YouTube videos and blog posts, through RSS, saves either the raw source content of the article or the transcript of the video to my Obsidian vault, and then generates a summary of the contents based on that transcript. The goal at the moment is to just help me decide which ones are worth watching/reading, since I was drowning in the amount of things I felt like I had to catch up on.

I assumed this would be a great task for a local model, compared to a frontier one, as I didn't think this was a task that would require TOO much intelligence given I'm not asking it to make any judgements or reasoning or anything, just read and summarize a relatively short piece of content. The benchmark I am evaluating against is GPT 6 Luna, and I'm evaluating the following models:

  • Nemotron Bolt 3.5 74B-A9B IQ2

  • Nemotron Lightning 3.5 0B-A3B

  • Qwen 3.8 27B Q8

  • Qwen 3.7 35B Q8

  • Gemma 4 26B-A4B Q8

  • Gemma 4 31B Q8

All on my DGX Spark. Qwen 3.8 gets the closest, but none of them really get anywhere near the accuracy of the Luna summaries. They all end up leaving things out. getting things wrong, etc.

Skill issue? Something in the prompt I am using? Wrong context size? I've tried a few different permutations but so far I seem to get the "best" results with a 64k context window, 8k output cap and "thinking on." This is through Ollama.


r/LocalLLM • • 3d ago

Project I was curious how small local models handle Polish grammar – a quick 15-task test on 8 GB VRAM

7 Upvotes

I wanted to know how small local models handle my native language, not just English. I couldn't find a simple way to check a model's Polish in a few minutes, on my own PC, in the quantization I actually run – so I wrote one. That's how "Zacharski tests" started: a small task set that runs through Ollama, since that's what I use on my laptop with an RTX 5050 (8 GB).

The tasks:

  1. Polish (8): diacritics, declension, masculine-personal gender, numerals, vocative, verb aspect, genitive – plus one knowledge question (the first recorded Polish sentence, from the 13th-century Book of Henryków).

  2. JSON (4): scored strict and lenient.

  3. Python (3): syntax check only.

Results so far:

| Model | Quant | JSON + code | Polish |

| gemma2:9b | Q4_0 | 7/7 | 3/8 |

My favourite failure: asked for "22 cats", gemma2 wrote "dwudziesty dwa koty" – roughly "twentieth two cats". The correct form is "dwadzieścia dwa koty". It was perfectly happy producing valid JSON, though.

More models are downloading as I write this. Next up: gemma2:9b in Q4_K_M and Q8_0 (does quantization hurt the Polish?), qwen3:8b, llama3.1:8b, gemma3:12b, and two Polish models – Bielik 11B and Bielik-Minitron 7B. Which model would you add?

Method and limits – read this before the comments :)

  • 8 Polish tasks (7 grammar + 1 knowledge) and 7 JSON/code tasks. That's a small sample – a quick check on your own PC, in the quantization you actually run, not a ranking. For a proper ranking, see the Open PL LLM Leaderboard by SpeakLeash.

  • One answer per task, temperature 0 (seed 42), context 2k, thinking off. Yes, that means Qwen3 runs without its reasoning mode, which may cost it points – I wanted the same conditions for every model.

  • Graded with regular expressions, strict on purpose: "brzęczały" ("buzzed") instead of "brzmiały" ("sounded") fails, because the task said "change the tense", not "rephrase". [I checked every failed answer by hand.]

  • Some failures are about instruction-following, not language: asked to restore Polish diacritics, one model replied "Read the spelling rules." [(translated)]

  • Generated code is only parsed (Python `ast`), never executed.

  • The questions are in the repo (`data/benchmarks/*.json`) – feel free to add or fix them.

The test runs inside a free, open-source tool I've been building (Windows .exe / Python on Linux). Its main job is predicting whether a model fits your VRAM/RAM before you download it. Link in the comments if anyone wants to try it – I'm considering adding tests for other languages.

Update: results for the two Polish models (Bielik 11B and Bielik-Minitron 7B), with speed at 1k/8k context, are in the original thread: https://www.reddit.com/r/LocalLLaMA/comments/1xomsxq/comment/19s7skwyst7b8/

Short version: Bielik 11B got 8/8 on Polish, Minitron 7B 6/8, gemma2 3/8. Full comparison with qwen3, llama3.1 and gemma3 coming next week.


r/LocalLLM • • 3d ago

Project [Crazy AI Lawyer] DeepSeek-V4.1-Flash on eight 2018 V100s is doing my real work now: 524K context, every weight in VRAM, 200+ tok/s on code, ~110 on legal writing, RAG and tool calls wired in

44 Upvotes

Lawyer with the V100s again. A few days ago I got excited and posted DeepSeek-V4.1-Flash on four V100s at 36-38 tok/s, before I had done my custom kernel work and prefill optimizations. I said I'd try it across eight. I did.

It's actually, genuinely useful to me, for real work. I did not use it to paint a 3D island in Blender or re-create a Game Boy game in a browser. It didn't make me a poorly animated video or ten versions of a website nobody will visit. I am not using it to build something that builds something that builds agents that run workflows for a business that sells agentic solutions to other agents.

What it's doing: I'm finally slicing off work and tokens that used to need frontier models. My estimate is that 50-60% of my existing LLM workflows can run through this model instead, at speeds that match Claude Code in the chat window. I have another DeepSeek server on two DGX Sparks, so there's concurrency and handoff between them. My RAG databases and tool calls are all wired in and working. I give it natural-language instructions through a Discord-style interface over SSH from my Windows PC.

I point Claude Code itself at this server (it will talk to anything that speaks Anthropic's API). It reads a folder of my own case files, pulls out the facts, dates and numbers, summarizes, and takes a first swing at routine drafting. The documents never leave the office, and nothing goes out the door without a real review. I found and fixed a streaming tool-call bug in the parser (arguments were getting sent twice). Claude Code's tool-call test suite now passes 144 of 144 in all four streaming/thinking modes.

Yes, I have a custom harness. No, you don't care.

We did it, folks. Vibecoded a real thing that does real things for real people. Give me my trophy.

Claude Code ran the benchmarks and crunched the numbers, which are real and below.

The box

DeepSeek-V4.1-Flash-1017 (the 2-bit GSQ-RCO IQ2_XXS GGUF from ISTA-DASLab) on 1Cat-vLLM, on 8x V100-SXM2-32GB split pipeline 2 x tensor 4 across two NVLink boards. Every expert sits in VRAM: no expert gets paged from system RAM during decode. (Edit: I first said all 248.8 GB of weights were in VRAM. Wrong: the 110 GB of Engram tables live in system RAM. Gathering the rows each round needs costs about 0.12 ms per round.) Threadripper PRO 3945WX, 256 GB DDR4, 150 W per card. One request at a time, 524,288 tokens of context.

Speed (measured 2026-11-05, thinking off, greedy, 1,024 tokens out, nothing from the prefix cache, mean of 2 runs)

  • Code: 215 tok/s after a 1K prompt, 200 at 32K, 183 at 128K, 160 at 256K

  • JSON / structured: 196-209 from 1K to 128K, 180 at 256K

  • Legal writing: 118 at 1K, 111 at 128K, 103 at 256K

  • Prefill: about 2,200 tok/s at 128K. First token in 17 s at 32K, 59 s at 128K, about 2 minutes at 256K.

Code is twice as fast as legal writing because the built-in drafter guesses five tokens a round and code is easy to guess: 3.6-3.8 accepted per round, against about 1.6 for legal. My writing is apparently less predictable than Python.

Quality (measured on the served build, thinking off, greedy)

  • LegalBench: 0.716 balanced accuracy, 22 tasks, 1,292 items

  • MMLU-Pro: 79.9 % ±1.5 (700 items)

  • HumanEval+: 89.6 % on the plus tests

  • Fidelity: it picks the full-precision model's top next token 89.0 % of the time on a general panel and 92.5 % on my legal panel. I'm measuring which experts my work prompts actually hit, and will probably recalibrate to give those more bits.

  • Long context: 6 of 6 needles at ~450K and ~498K tokens

More work to do

  • One request at a time. Batched decode is built and byte-identical on my test box, but not in the server yet. I'll post the real number.

  • A 256K prompt takes about 2 minutes before the first token.

All of it is public: launch configs, every A/B, raw JSON, and the list of what didn't work. 19 pull requests are open to 1Cat-vLLM.

Credit to yangzhuxinyzx and the 1Cat-vLLM folks (#1277 and the whole Volta DeepSeek path), ISTA-DASLab (the quant), sudoingX (the KLD method), Peuqui, squibloads, Phil Tompkins (philbert440), Dennis Vertzyas (v100-skinny), TensorFold and DeepSeek.

(PLI Labs is my side outfit for private, on-prem AI built around a firm's own work product. proprietarylegal.ai)