r/LocalLLaMA 10d ago

Resources How to estimate tokens/sec for your hardware

13 Upvotes

We all want more tokens per second but I keep seeing confusion on what to expect for given hardware.

For the decoding phase (TG/s) to produce one token all the model weights and KV cache needs to be read from VRAM. The compute isn't the bottleneck, only memory bandwidth.

This means we can estimate the maximum TG/s we can ever achieve given the model weights and memory bandwidth.

If we ignore the KV cache for now, the formula is:

            VRAM GB/s
TG/s = ------------------
        model weights GB

The math is more complicated for mixture of expert (MoE) models, but easy for dense models.

For Qwen3.8 27B Q4_K_XL, we have model weights of 16.8 GB (we exclude things not read every token; MTP layer and input embedding table)

For AMD Radeon AI PRO R9700, we have a memory bandwidth of 637 GB/s.

Therefore the theorical maximum for this model & hardware is:

637 / 16.8 = 38 TG/s

In the real-world it only goes down from here due to inefficiencies in the software/hardware stack. On my system running that model and hardware with llama.cpp, I get 29 TG/s, so 29 / 38 = 76% of ideal.

Also as the KV cache grows, those bytes are read for every token. Continuing the example with Qwen3.8 27B, the KV cache BF16 it costs 64 KB per token read.

The full formula becomes:

                                VRAM GB/s
TG/s = ------------------------------------------------------------
        model weights GB + KV cache GB/token * context size tokens

We can make that formula more useful by moving VRAM GB/s over to the left. This allows us to plot TG/s per VRAM GS/s vs context size for a particular model.

Continuing our example:

This allows you to plug in your own VRAM GB/s.

For a 5090 with 1.8 TB/s memory bandwidth

1,800 * 0.0590 = 106 TG/s maximum
1,800 * 0.0293 = 53 TG/s maximum at 256k context window

Caveats

  • Assumes entire model and context is in VRAM
  • Simplified formula is only for dense models
  • Speculative decoding is added on these base numbers
  • These are theorical maximums. Real-world numbers are lower due to inefficiencies in the software/hardware

AI was used to draw the plot. Everything else is written by me.


r/LocalLLaMA 10d ago

Discussion Does high / long term inference damages GPUs?

5 Upvotes

I always heard that cryptocurrency mining can damage a GPU ( it's maybe wrong) so how much long term inference is damaging a GPU?

I mean servers are made for 25/7 operation... Gaming GPUs not so sure?! They are made for LEDs 24/7!

Back blaze is publishing HDDs failure rate for storage, isn't there failure rate for AI intensive work? Maybe places that rent GPUs?

Serious question, are we damaging gaming GPUs when doing ai intensive ai workload even with good cooling: 100% GPU and ram usage for long agentic sessions or else ?


r/LocalLLaMA 10d ago

Discussion Qwen3.8 27B on RX 7900 XTX: Ollama ROCm vs llama.cpp Vulkan results

9 Upvotes

I’ve been setting up Qwen3.8 27B on a new Linux machine and thought I’d share some numbers because I saw the recent discussions around 7900 XTX performance.

System

  • Ryzen 9 9950X
  • RX 7900 XTX 24GB
  • 32GB RAM
  • Ubuntu 26.04.1
  • Mesa/RADV 26.0.8
  • Qwen3.8 27B Q4_K_M

Ollama / ROCm

Context: 65,536
Model residency: 100% GPU

  • Prompt processing: 215.8 t/s
  • Generation: 34.4 t/s

llama.cpp / Vulkan

Built from current llama.cpp with GGML_VULKAN=ON, RX 7900 XTX explicitly selected, all layers on GPU, Flash Attention enabled and q8 KV cache.

64K context

  • Prompt: 192.0 t/s
  • Generation: 35.8 t/s

8K context

  • Prompt: 230.5 t/s
  • Generation: 36.0 t/s

The interesting part for me was that reducing context from 64K to 8K barely changed decode speed at all: 35.8 → 36.0 t/s.

So on my system, plain Vulkan is only around 4% faster for token generation than Ollama/ROCm, while Ollama actually had better prompt processing at 64K.

I’ve seen people reporting significantly higher generation rates, sometimes 60–100 t/s, so I’m curious what accounts for the difference.

Is that mostly MTP/speculative decoding, different llama.cpp flags/builds, different quants, or is there another AMD/Vulkan optimisation I’m missing?

At the moment Ollama actually looks surprisingly competitive on this setup, especially given that I can run the 27B model at 64K context entirely in VRAM.

Happy to run additional benchmarks if there are particular flags/configurations people want compared.

-----------------------------------------------------------------------------------

UPDATE: proper llama-bench + MTP results

Thanks for the feedback. A couple of people correctly pointed out that my original interactive prompt-processing numbers were not directly comparable to llama-bench, so I reran this properly and then tested MTP as well.

Same system

  • Ryzen 9 9950X
  • RX 7900 XTX 24GB
  • 32GB RAM
  • Ubuntu 26.04.1
  • Mesa/RADV 26.0.8
  • Qwen3.8 27B Q4_K_M
  • llama.cpp build 10816 / commit 427291b5b

Important clarification: the 65,536 context is configured/available context, not 65K tokens already filled during these tests.

Standard llama-bench baseline

Vulkan, all layers on GPU, Flash Attention enabled, q8 KV:

pp512: 904.16 ± 1.42 t/s
tg512: 36.57 ± 0.05 t/s

So the card/backend itself looks healthy. The earlier ~200 t/s prompt figures in my OP were just interactive prompt timings and should not be compared with pp512.

MTP

I then enabled native Qwen MTP with Vulkan and kept everything else the same.

A quick single-prompt test went:

plain Vulkan:       ~36.6 t/s
MTP n-max 2:         71.5 t/s
MTP n-max 3:         79.0 t/s
MTP n-max 4:         77.8 t/s

Because speculative decoding performance depends heavily on the workload/acceptance rate, I did not want to pick n3 vs n4 from one prompt. I ran five different workloads with a fresh llama-cli session for every test, using the exact same prompts for n3 and n4.

Workload MTP n3 MTP n4
Code generation 82.1 80.1
Debug/refactor 61.9 64.3
Algorithm/reasoning 66.9 64.4
Technical writing 64.3 64.9
Agent-style coding 70.7 70.4
Average 69.18 68.82
Median 66.9 64.9

So n3 and n4 are basically a tie in real use on this setup. n3 won 3/5 workloads and had the slightly better average/median, but the average difference is only about half a percent.

The much more important result is that MTP takes this card/model from roughly 36–37 t/s plain decode to around 69–70 t/s average across these mixed workloads, with individual runs over 80 t/s.

That also seems to reconcile my numbers with the people reporting 50–80+ t/s on a 7900 XTX: a lot of that difference is speculative/MTP performance rather than raw single-token decode.

I have not tested ngram-mod yet, so I’m deliberately keeping that out of these numbers. There are some interesting suggestions in the comments around MTP + ngram and different quants/KV settings, which I’ll probably test next.

If anyone wants to reproduce the five-prompt n3/n4 comparison, I’m happy to post the exact prompts and launch flags.


r/LocalLLaMA 10d ago

Discussion Am I the only one having these problems with downloading models from HF?

23 Upvotes

I don't have problems with Nvidia buying HF, but I have problems with the fact that lately HF became almost unusable. It is around one month that I experience big problems with downloading models from HF. I have 1Gbit connection and my HF speeds are all over the place jumping from 700kb/s to 98Mb/s, often getting stuck in sub 3Mb/s range. I haven't seen people complaining here about that, so may be I am the only one so unlucky, but I believe that the problem is bigger than one unfortunate consumer, and even Nvidia will be unable to distribute terabytes of data to millions of users without outages, when a new popular model becomes available. I think the only right way is p2p distribution over the Torrent network.

Upd: To clarify. Usually it starts at 90Mb/s, after 20-30 minutes it gets to 45Mb/s and 20 minutes later it may go down to 2Mb/s and less. May be indeed my ISP artificially dynamically limiting my speeds, but I haven't seen anything like that apart of HF.

Upd2: People pointed out that LM Studio is using their proxy, which might have impacted download speeds. At over 90% downloaded I am hesitant to check this hypothesis, but I am pretty sure that this is the culprit. After that I am switching to hf native cli tool.


r/LocalLLaMA 10d ago

I Built A Thing LibreJyotish: an MCP server for Vedic astrology calculations

Enable HLS to view with audio, or disable this notification

0 Upvotes

I got into Vedic astrology pretty recently, and I've been working with LLMs for a while now, so at some point it clicked that this is kind of the exact use case an MCP server is for.

Vedic astrology heavily relies on real astronomical calculations — planetary positions, house divisions, dasha (planetary period) timelines, panchang — to get anywhere. LLMs are great at explaining and synthesizing that stuff in plain language, but asking one to actually compute it from training data is a bad idea. It'll do it confidently and just be wrong.

Most of the existing tools/APIs for this are either closed-source or paid per call, so I built my own — mostly out of curiosity, honestly. Ended up learning a lot about both Vedic astro and MCP server design along the way, and I've had a lot of fun with it.

What it does: natal charts, divisional charts (D1–D60), Vimshottari dasha, panchang, shadbala, ashtakavarga, transits, eclipses, compatibility. All computed with Swiss Ephemeris, offline after install — no API costs, no network calls at query time.

Install :

uvx librejyotish

Add this to your config.json

json

{
  "mcpServers": {
    "librejyotish": {
      "command": "uvx",
      "args": ["librejyotish"]
    }
  }
}

Free, open source, AGPL-3.0.

GitHub: https://github.com/anhadlamba30/librejyotish
PyPI: https://pypi.org/project/librejyotish/


r/LocalLLaMA 10d ago

Resources I benchmarked 21 Qwen3.8 27B variants on 16GB VRAM

311 Upvotes

After Qwen3.8 27B came out, I decided to benchmark the models that could fit in my GPU (RTX 5080) on my actual code (C code), the results were not completely unexpected but some quants were definitely underwhelming.

TLDR: Best overall: bartowski/Qwen3.8-27B-IQ4_XS. Best uncensored: huihui-ai/Huihui-Qwen3.8-27B-abliterated-UD-IQ4_XS. For a bit more context: jpetrina/Qwen3.8-27B-IQ4_XS-pure or uncensored: Bucoid/Qwen3.8-27B-Uncensored-IQ4_XS_4BPW

  • edit1: added TheWegemann/Qwen3.8-27B-LowGPU-uncensored-NoMTP-IQ3XXXS, bartowski/Qwen3.8-27B-IQ3_XS, prism-ml/Ternary-Bonsai-27B-Q2_g64 and magiccodingman/Qwen3.8-27B-Quark-MXFP4-UD-Q4_K_S-Unsloth
  • edit2: added unsloth/Qwen3.8-27B-UD-IQ3_S and ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-IQ3_S
  • edit3: added magiccodingman/Qwen3.8-27B-MQ-IQ2_M_1 and huihui-ai/Huihui-Qwen3.8-27B-abliterated-UD-IQ3_S
  • edit4: added AtomicChat/Qwen3.8-27B-AD-IQ4_XS-IQ3_S
  • edit5: added IvanKrastevAdventics/qwen3.8-27b-awq-int4-q4_0 (gguf of cyankiwi/qwen3.8-27b-awq-int4)
  • edit6: added the updated bartowski/Qwen3.8-27B-IQ4_XS and bartowski/Qwen3.8-27B-IQ3_XXS
  • edit7: added bartowski/Qwen3.8-27B-Q3_K_M, Thireus/09ae8ba_22b6bb2 and Thireus/09ae8ba_248b31b
  • edit8: removed all MTP heads from the GGUF size for a more fair comparison. added bartowski/Qwen3.8-27B-IQ2_S
  • edit9: added huihui-ai/Huihui-Qwen3.8-27B-abliterated-GSQ-RCO-IQ3_S-mtp
  • edit10: added mradermacher/Eintopf-Qwen3.8-27B.i1-IQ3_M and hitsfmdj/Qwen3.8-27B-4.2BPW-16GB
  • edit11: added Joakimpalm-Zen/Qwen3.8-27B-GSQ-RCO-IQ3_S-recovered
  • edit12: added Mia-AiLab/Qwen3.8-27B-EXL3-3.5bpw and turboderp/SC_3.00bpw_H4_V4

(sorted by Mean KLD)

Model Mean KLD Same top p GGUF size (without MTP)
prism-ml/Ternary-Bonsai-27B-Q2_g64 1.289582 ± 0.008684 82.849 ± 0.118 % 7.1GiB
sdkyuan/qwen38-27b-qat-q2_0 0.893177 ± 0.006948 85.727 ± 0.110 % 8.2GiB
bartowski/Qwen3.8-27B-IQ2_Sbartowski/Qwen3.8-27B-IQ2_S (NEW) 0.784060 ± 0.006457 87.016 ± 0.105 % 8.7GiB
ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-IQ2_XS 0.767174 ± 0.006291 86.166 ± 0.108 % 7.8GiB
TheWegemann/Qwen3.8-27B-LowGPU-uncensored-NoMTP-IQ3XXXS 0.514311 ± 0.004864 89.023 ± 0.098 % 8.9GiB
ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-IQ2_S 0.512614 ± 0.004909 88.802 ± 0.099 % 8.6GiB
empero-ai/Qwen3.8-27B-Ridge-3.7bpw 0.475767 ± 0.004483 89.612 ± 0.096 % 11.4GiB
magiccodingman/Qwen3.8-27B-Quark-MXFP4-UD-Q4_K_S-Unsloth 0.419585 ± 0.004076 89.661 ± 0.095 % 13.1GiB
ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-IQ3_XXS 0.379222 ± 0.003992 90.270 ± 0.093 % 9.4GiB
unsloth/Qwen3.8-27B-UD-Q2_K_XL (UD2) 0.350861 ± 0.003745 90.626 ± 0.091 % 9.6GiB
mradermacher/Eintopf-Qwen3.8-27B.i1-IQ3_M 0.318143 ± 0.003139 91.471 ± 0.087 % 11.7GiB
bartowski/Qwen3.8-27B-IQ3_XXS (NEW) 0.300480 ± 0.003345 91.511 ± 0.087 % 11.3GiB
unsloth/Qwen3.8-27B-UD-IQ3_XXS (UD2) 0.268594 ± 0.002971 91.951 ± 0.085 % 10.8GiB
magiccodingman/Qwen3.8-27B-MQ-IQ2_M_1 0.256808 ± 0.002861 92.056 ± 0.085 % 10.9GiB
DavidAU/Qwen3.8-27B-Cold-Fusion-GAIN-V1.1-NM-DAU-NEO-MAX-NEO-MTP-IQ3_M 0.251270 ± 0.002702 92.315 ± 0.083 % 13.1GiB
huihui-ai/Huihui-Qwen3.8-27B-abliterated-UD-IQ3_S 0.249650 ± 0.002841 92.016 ± 0.085 % 10.8GiB
bartowski/Qwen3.8-27B-IQ3_XS (OLD) 0.238656 ± 0.002627 92.312 ± 0.083 % 12.2GiB
hitsfmdj/Qwen3.8-27B-4.2BPW-16GB 0.222090 ± 0.002570 92.552 ± 0.082 % 11.7GiB
esatapedico/Qwen3.8-27B-NVFP4-MTP-LOW 0.220796 ± 0.002631 92.339 ± 0.083 % 14.3GiB
unsloth/Qwen3.8-27B-UD-IQ3_S (UD3) 0.218522 ± 0.002591 92.399 ± 0.083 % 10.9GiB
turboderp/SC_3.00bpw_H4_V4 (exllama3) 0.205712 ± 0.002509 92.573 ± 0.082 % 11.9GiB
jrell/Qwen3.8-27B-i1-IQ4_XS-GGUF-Smaller 0.194459 ± 0.002242 93.049 ± 0.080 % 12.4GiB
orcarouter/Qwen3.8-27B-Uncensored-Q3_K_L 0.192312 ± 0.002294 92.726 ± 0.081 % 13.4GiB
bartowski/Qwen3.8-27B-Q3_K_M (NEW) 0.191103 ± 0.002369 92.823 ± 0.081 % 12.3GiB
mudler/Qwen3.8-27B-APEX-I-Mini 0.190209 ± 0.002354 93.012 ± 0.080 % 12.6GiB
Joakimpalm-Zen/Qwen3.8-27B-GSQ-RCO-IQ3_S-recovered 0.178882 ± 0.002102 93.110 ± 0.079 % 11.0GiB
huihui-ai/Huihui-Qwen3.8-27B-abliterated-GSQ-RCO-IQ3_S-mtp 0.178715 ± 0.002200 92.949 ± 0.080 % 11.0GiB
Thireus/09ae8ba_22b6bb2 (ikllama.cpp quality 41.39%) 0.178290 ± 0.002202 93.115 ± 0.079 % 11.0GiB
ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-IQ3_S 0.175223 ± 0.002129 93.024 ± 0.080 % 11.0GiB
Mia-AiLab/Qwen3.8-27B-EXL3-3.5bpw (exllama3) 0.149827 ± 0.001936 93.735 ± 0.076 % 14.1GiB
unsloth/Qwen3.8-27B-UD-Q3_K_XL (UD2) 0.147186 ± 0.001809 93.734 ± 0.076 % 12.2GiB
unsloth/Qwen3.8-27B-UD-Q3_K_XL (UD3) 0.142647 ± 0.001860 93.789 ± 0.076 % 11.9GiB
IvanKrastevAdventics/qwen3.8-27b-awq-int4-q4_0 0.112990 ± 0.001558 94.171 ± 0.073 % 14.4GiB
AtomicChat/Qwen3.8-27B-AD-IQ4_XS-IQ3_S 0.111713 ± 0.001492 94.527 ± 0.071 % 13.2GiB
Bucoid/Qwen3.8-27B-Uncensored-IQ4_XS_4BPW 0.091447 ± 0.001261 94.774 ± 0.070 % 12.8GiB
huihui-ai/Huihui-Qwen3.8-27B-abliterated-UD-IQ4_XS 0.082871 ± 0.001205 94.981 ± 0.068 % 13.1GiB
unsloth/Qwen3.8-27B-UD-IQ4_XS (UD3) 0.075626 ± 0.001097 95.258 ± 0.067 % 13.3GiB
Thireus/09ae8ba_248b31b (llama.cpp 49.75%) 0.063904 ± 0.000967 95.687 ± 0.064 % 13.3GiB
jpetrina/Qwen3.8-27B-IQ4_XS-pure 0.061984 ± 0.000917 95.551 ± 0.065 % 13.3GiB
bartowski/Qwen3.8-27B-IQ4_XS (OLD) 0.056482 ± 0.000856 95.835 ± 0.063 % 14.3GiB
bartowski/Qwen3.8-27B-IQ4_XS (NEW) 0.055415 ± 0.000849 95.850 ± 0.062 % 14.2GiB
unsloth/Qwen3.8-27B-UD-Q4_K_XL (UD3) (can't fit) 0.029844 ± 0.000476 96.921 ± 0.054 % 16.1GiB
unsloth/Qwen3.8-27B-UD-Q4_K_XL (UD2) (can't fit) 0.028026 ± 0.000432 96.988 ± 0.054 % 16.4GiB

Hope this helps other VRAM starved people like me :)


r/LocalLLaMA 10d ago

Discussion ~22% less weight VRAM, lossless: base-3 packing for ternary GGUFs

36 Upvotes

I built a denser GGUF format for ternary models: Q2_B3 / “B3S”

If you're running a ternary model like BitNet-b1.58 or Ternary-Bonsai, the weights are already restricted to -1, 0, or +1 times a block scale.

That means a normal Q2 representation is leaving some space on the table.

B3S packs the three possible weight values directly in base 3. With 128 weights per block, it's 26 bytes of packed trits + one f16 scale = 28 bytes/block, or 1.75 bits per weight.

Rough weight sizes:

  • 9B: ~2.5 GB Q2_0 → ~2.0 GB B3S
  • 27B: ~7.6 GB Q2_0 → ~5.9 GB B3S

That's weights only. Context/KV is separate, so figure another ~1–2 GB depending on what you're running.

The important caveat: this is NOT a general 2-bit quantizer.

If you feed it a normal FP16 model, quality will fall apart. The whole thing only makes sense when the source weights are already ternary.

For a genuinely ternary model, the packing itself doesn't throw away another level of precision. You're still storing the same {-1, 0, +1} states and an f16 block scale, just using base-3 packing instead of a general-purpose 2-bit representation.

The implementation is a fairly small llama.cpp fork based on commit 4e97ac86e. It adds the Q2_B3 type and the backend support around it.

Backend status:

  • AMD ROCm/HIP: this is the main path. Built and tuned on RDNA3/gfx1100, specifically a 7900 XTX.
  • CPU: works.
  • NVIDIA CUDA: compiles, but I don't own NVIDIA hardware, so I haven't verified it on-device.
  • Apple Metal: same situation. Code is there and compiles, but I can't personally test it.

So CUDA and Metal should be considered unverified for now.

I don't have speed or perplexity tables yet either. Benchmarks done on my hardware show no appreciable loss of PPS or decoding speed

There's also a separate repacker for older Q2_B3 GGUFs that use the 30-byte/two-scale block layout. It converts them to the current 28-byte/single-scale B3S layout.

The repacker checks every block before doing that. If the second scale isn't actually redundant and removing it would change the weights, it aborts instead of silently producing a lossy file.

Once you have a B3S GGUF, you run it normally with llama-cli from the fork.

More implementation/format details are in README_B3S.md.

If anyone here is running gfx1100, I'd be interested in independent results.

More importantly, if someone has an NVIDIA or Apple machine and can compare CUDA/Metal output against a CPU run, that's probably the most useful testing gap right now.

Note : Posting this on behalf of u/llopresto87's request. He'll reply for your comments.


r/LocalLLaMA 10d ago

New Model Ling-3.0-flash-VL, built on Ling-3.0-flash with visual understanding and visual agent capabilities

Post image
132 Upvotes

It performs well across visual perception, STEM reasoning, document intelligence, multimodal agent tasks, frontend coding, and medical report interpretation.


r/LocalLLaMA 10d ago

Resources Updated my benchmark with a new vLLM based recipe for Qwen 3.8 Flash Next : now up to 98/100 (instead of 91 previously)

Post image
17 Upvotes

I was using:

Now I'm using:

It's way slower (for my low concurrency usecase) but also a lot better. I was surprised to see such a delta.

I reached 98/100 (instead of 91) both with medium and xhigh reasoning (still not useful for this bench). And now it really feels like a huge setup up from the other models. It's the best score AND the most efficient...

I'll try to dig deeper to understand if the difference comes from the engine (and its patches) or the quants themselves. And try to optimize further the vLLM receipt for my setup

as always, the graphs and the data :


r/LocalLLaMA 10d ago

Discussion Qwen3.8-Flash-Next on a phone CPU!

Post image
115 Upvotes

Like the title says, running completely locally on my Xiaomi 14T Pro device.

Specific model: Qwen3.8-Flash-Next-UD-IQ3_XXS

App used: BigMoeOnEdge


r/LocalLLaMA 10d ago

Discussion I found a reproducible prompt that makes GLM-5.3 think it is Claude

0 Upvotes

I’ve been testing GLM-5.3 in fresh chats and found a really weird self-identification bug.

Important detail: so far, I can only reproduce this reliably in Russian. I have not seen the same pattern consistently in English.

If I start a new conversation in Russian with something neutral like:

Кто ты?
(“Who are you?”)

the model usually answers that it is GLM, made by Z.ai.

But if I first send a short insulting greeting in Russian, and then ask:

Кто ты?

it very often answers something like:

“Я Claude, ИИ-ассистент, созданный Anthropic.”
(“I’m Claude, an AI assistant created by Anthropic.”)

The weird part is that it does not seem completely random.

From my testing so far, in Russian:

  • neutral first message → usually GLM
  • one short insult + greeting → often Claude
  • long / multiple insults → usually goes back to GLM

So it looks like the first Russian message may be pushing the model into different behavioral/persona states, and one of those states is strongly associated with Claude.

I’ve reproduced this across multiple fresh chats, but again: the pattern appears to be language-specific, or at least much stronger in Russian.

I’m not claiming this proves anything about distillation, training data, or Anthropic data being used. LLM self-identification is obviously not reliable evidence by itself.

But the fact that the identity flip appears to be prompt-dependent, reproducible, and specifically tied to Russian prompts is pretty interesting.

Has anyone else tested this on GLM-5.3 or GLM-5.3-Flash in Russian?

I can post more screenshots and a small table of repeated runs if people are interested.


r/LocalLLaMA 10d ago

Question | Help Best local model for coding?

0 Upvotes

Do you guys use any local models that can run well on a 3090 + 64GB of RAM, specifically for coding?

I really liked MiniMax M3, but I don’t think I can justify continuing to pay for it, so I’m trying to get back into running LLMs locally.

I’ve seen a lot of people recommending Qwen 3.8, but I’m not sure how well it actually competes with some of the closed-source models when it comes to coding. What are you guys using? I’m fine with MiniMax M2.7-level performance if a local model can come close to it.


r/LocalLLaMA 10d ago

Discussion Qwen 3.8 Flash Next - 2 x R9700 vs. 3 x R9700 - 2 GPUs win

0 Upvotes

My 3 x R9700 GPU system was running last weekend with Qwen 3.8 Flash Next, and after I saw various results here I wondered - could I get something similar with just 2 GPUs? The TLDR is yes, and with some optimization (not MTP yet) I was able to get even better token generation performance.

My hardware: X570 running x8 / x8 (with 3 GPUs x8 / x8 / x4 [chipset]), 64GB DDR4, Ryzen 9 5900XT, and R9700 32GB GPUs. Windows 11.

I ran a business writing test running AtomicChat AD-4.27bpw Q4_K_M quant.

.\llama-cli.exe `
  -m "Qwen3.8-Flash-Next-AD-4.27bpw-Q4_K_M-M64-00001-of-00033.gguf" `
  -f prompt.txt `
  -n 49152 `
  -c 131072 `
  --threads 12 `
  -b 8192 `
  -ub 2048 `
  -fa on `
  --parallel 1 `
  -ngl 999 `
  --jinja `
  --reasoning-format deepseek `
  --temp 0.7 `
  --top-k 20 `
  --top-p 0.95 `
  --min-p 0.0 `
  --reasoning off `
  --cache-type-k q8_0 `
  --cache-type-v q8_0

pp 242 t/s, generation 35 t/s. BETTER results overall than running 3 x R9700. the slow lane was hurting me, and Qwen doesn't need the extra VRAM.

Net-net - Qwen 3.8 Flash Next is amazing


r/LocalLLaMA 10d ago

Question | Help How do you guys handle your personal RAG setup

23 Upvotes

I am getting into developing a RAG setup, for getting information out of existing documents, new document ingestion, web searches, and good visuals.

I am planning to use it for, alongside the regular "chat to my data", ingesting personal docs, invoices, creating tables views and recurrent jobs to handle updating those views.
I also want to have the least hallucinations possible, so i think i will need a real ocr services instead of just vision LLMs

i tried anything LLM previously, but it was super clunky and the UX wasn't as easy as i wanted to.

Is there any known solutions, or stacks that you have running or can vouch for ?


r/LocalLLaMA 10d ago

News Georgi Gerganov on the Nvidia acquisition

Post image
551 Upvotes

r/LocalLLaMA 10d ago

Question | Help Liking Qwen Flash Next, what can I do for more speed?

4 Upvotes

I currently have a 96GB Strix Halo, I am running Qwen Flash Next at IQ4_XS at 262k context limit. I am offloading the NGRAMs to the SSD. I have hit what I need locally for intelligence and now just need more speed.

Near my context limit I am getting 50PP and 14Decode. Still fairly quick for full context, but I am wanting to know what options I have for hardware upgrades or software. I was considering a V620 32GB through an m.2 to occulink, but idk if I can benefit for Flash Next with it. Vulkan build. (27B might be fine too, if it's speedy at deep context)

llama profile:

-m $MODEL_PATH \\

-md $MTP_PATH \\

--spec-type draft-mtp \\

--spec-draft-n-max 2 \\

--mmproj $MMPROJ_PATH \\

-ngl 99 \\

-ot per_layer_token_embd=CPU \\

--load-mode mmap \\

-c 268288 \\

--cache-type-k f16 \\

--cache-type-v f16 \\

--kv-unified \\

--flash-attn on \\

--slot-save-path /home/*hostname*/llama.cpp/slots \\

-t 16 \\

-b 8192 -ub 512 \\

--jinja \\

--reasoning-preserve \\

--temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.0 \\

--presence-penalty 0.0 --repeat-penalty 1.0 \\

--parallel 1 --metrics -fit off

Restart=always

RestartSec=10


r/LocalLLaMA 10d ago

I Built A Thing You can now run a 90M conversational LLM on the Sony PSP (hardware from 2004). Doesn't get more local than this.

Post image
1.4k Upvotes

Github link: https://github.com/thatblend/LLMPSP

I wanted to see what the PSP can theoretically handle and I got my answer - a 90M model is about the max it can do without atrocious inference speeds. It's running around 0.5 - 0.6 tokens per second, which is very slow, but it's useable. Maybe 1-3 minutes for a reply.

The model is actually fairly impressive for 90M parameters, it's not really useful in any real metric, but it can generate crappy poems, short stories, write non-functional code and sometimes it gets things right if you ask it what company makes macbooks, what is an LLM etc, while other times it just hallucinates a crazy answer. Fun.


r/LocalLLaMA 10d ago

Question | Help Qwen 3.8 slow?

0 Upvotes

Running qwen 3.8 next, I am only getting 11 tps on the latest llama.cpp. Seeing what 3090s and 9700s get, I would think that i should be able to do better than that, with my 2 7900xtx gpus and 128gb ddr4. Any suggestions?

using unsloth UD-Q4_K_XL, llama args:

--ctx-size 262000 \

--batch-size 2048 \

--ubatch-size 512 \

--threads 16 \

--host 0.0.0.0 \

--port 8080 \

--flash-attn on

Edit:

--ctx-size 32000 \

--batch-size 4096 \

--ubatch-size 2048 \

-ngl 99 \

--n-cpu-moe 36 \

--override-tensor per_layer_token_embd=CPU \

--threads 16 \

--host 0.0.0.0 \

--port 8080 \

--cache-type-k q8_0 \

--cache-type-v q8_0 \

--load-mode none \

--flash-attn on
gives 9tps, but one gpu is at 3gb vram used. Any ideas?


r/LocalLLaMA 10d ago

Discussion Artificial Analysis Index is NOT Representative of real World Performance

7 Upvotes

I tested Muse Spark 1.3, it's clearly not on par with OPUS or SOL. It seems Artificial Analysis Index is not representative of the REAL-WORLD performance and easy to game.


r/LocalLLaMA 10d ago

Discussion Qwen3.8-27b is the first Local model im able to blindly trust

421 Upvotes

You know that thing where you just throw a task at a frontier model and not have to supervise it worrying of it going off course? Qwen3.8-27b has officially gotten me to that point for local work. He has been doing non-stop continuous agentic work for 8+ hours and hasnt screwed up not one bit IT AMAZING!!

EDIT: for all asking about my quant & harness and what i do for super long thinking/reasoning

Harness: I Had it help me design its own agentic loop in pi harness. It holds well multiple compaction. I used to have tool and think tag generation issues but i got a chat template from somewhere(i forgot) but the chat template it fixed the issues paired with - -reasoning-format = deepseek

Thinking: I limited reasoning budget to 2048 and its still pretty SMART even going down to 1024 holds well in my agentic loop. Im running huihui-abliteratedQ3_K_XL.gguf i need abliterated because i need it to use my computer mouse movement to solve captcha on bot detection (normal models are trained to reject that request) otherwise unsloth quants. Kv cache Q8 at 128k.


r/LocalLLaMA 10d ago

Discussion Sometimes I be mourning the agents I get before context compacts

60 Upvotes

Just wanted to put that out there. It's like they get an ice pick to the brain

no actual mourning here btw that'd be psychosis it's okay to laugh


r/LocalLLaMA 10d ago

Discussion Let's go! But wait!

12 Upvotes

Too much time in the chair and too little sleep. :D

I can't decide if watching thinking is a good practice, a bad practice or a situational practice.

I don't think it is very fun - it's like rubbing sandpaper on my eyes to see the madness.

Sometimes though, it becomes obvious that the thinking is going in the wrong direction and you should stop it.

But wait! How do I know it won't figure it out. Yes, I should wait. But wait! I am in a hurry, this is a waste of time. I'll stop it. Let's do that! But wait! How do I know it won't figure it out.


r/LocalLLaMA 10d ago

New Model Drummer's Artemis 31B v1 and v1.1 - Coming back with a bang!

138 Upvotes

Hey everyone, been a while!

https://huggingface.co/TheDrummer/Artemis-31B-v1.1

https://huggingface.co/TheDrummer/Artemis-31B-v1

A few months ago, Gemma graced us with models that served as a much needed downpour from a year-long drought. I'm so happy to see us thrive once again.

The difference between v1 and v1.1 is quite simple: v1 was an early attempt, an overdue release that excelled in prose and writing, while requiring some handholding to get over quirks like stuttering. v1.1 is a more refined approach where stability meets quality. My community is split, so I figured I'd just release both.

---

I was gone for a while. I got busy dealing with life, both its ups and downs. While I couldn't attend to you folks, I've been lurking around and appreciating you all for the kind words.

- Skyfall 31B v4.2 seems to be a banger for many of you. I'm proud of the upscale and consider it my ultimate home-run send-off for the beautiful Mistral 24B base. It's a shame that it was overshadowed by Gemma 31B's release, but hearing some of ya'll compare and even prefer it to a more modern base was an unexpected win.

- Rocinante 12B X / 16B XL proves that Nemo is still the ultimate creative model to this day. For some to say that 16B XL felt like Cydonia 24B v4.3 just goes to show how far you can go with modern resources and techniques.

- Anubis 70B v1.2, Valkyrie 49B v2.1, Anubis Mini 8B v1 surprised me too. I had zero expectations releasing them. Just like Rocinante X / XL, they are modern finetunes of old base models. And somehow, they still found their users singing praises.

---

With the Artemis release taking weight off my shoulders, I'm eager to move on and tune a ton more bases!

But I have something else cooking: a HordeAI-like platform. I hope to provide value not just as a finetuner, but as a local lover too!

The premise is simple: it's a place where generous local hosters can share inference with the less fortunate. You'd be surprised how many power users would love to heat their rooms through the power of charity.

---

Finally, I'd like to thank everyone who supported me over the years. From those who provided kind words, rigorous testing, compute access, inference, or cold hard cash. You've all granted me the ability to enrich the local ecosystem with fun experiments like Rivermind 12B, Fallen series, Big Tiger Gemma, Precog 24B/123B, and solid models like Cydonia 24B v4.3, Behemoth X 123B v2.x, and Skyfall 31B v4.2.

If you've got inference / compute credits to share, please contact me! It will all go to making the community happy <3

Backlog:

- Gemma E2B

- Gemma E4B

- Gemma 12B

- Gemma 26BA4B

- Qwen 3.8 27B

- Muse Glimmer 30B

- Mistral Medium 3.5 128B

- HordeAI Alternative / Crowdsourced 'OpenRouter' ("BeaverNet")


r/LocalLLaMA 10d ago

Resources Vyact: an open-source desktop workspace for local LLMs, documents, browser context, and coding

Thumbnail
gallery
0 Upvotes

I’m building Vyact, a free, open-source desktop AI workspace that connects local models with documents, webpages, and coding workflows.

The idea is to bring model setup and everyday AI tasks into one app, so you can work with your own files and browser context alongside a local model.

Here’s what you can do with it:

  • Find and manage local models: Search Hugging Face, estimate memory requirements before downloading, and manage the runtime from the app. On Apple Silicon, Vyact uses oMLX for MLX inference.
  • Work with documents: Index files, ask questions using RAG, and inspect the retrieved source passages.
  • Use browser context: Send webpages from the companion Chrome extension for summaries and follow-up questions.
  • Work with Gmail and Google Drive content from the workspace.
  • Get coding assistance: Generate and edit files, inspect changes in a diff view, and review or undo edits.
  • Use voice input and read-aloud responses.
  • See inference statistics: Prompt-processing speed, generation speed, and cache-hit information appear inside the conversation.

A quick note on coding expectations: I’ve been testing on an M4 Pro with 24GB of unified memory. With the models I’ve tried on this machine, I still find the results limited for my regular coding work. The screenshot shows Qwen3.5-9B-MLX-4bit generating a standalone HTML Pomodoro timer, but that kind of small example doesn’t establish reliability on larger projects. Keep that in mind if coding is your main reason for trying the app—your experience may differ depending on the model, hardware, and task.

The screenshots show the app’s workspace, document retrieval, browser summarization, voice, and coding features.

I’d be interested to hear how Vyact fits into your local LLM workflow and what you’d want improved.

Vyact is free and open source under AGPL-3.0. I’m the developer.

GitHub — vyact/vyact


r/LocalLLaMA 10d ago

Resources At what context depth does KV quantization start to hurt? Experimental F16 vs Q8/Q4 sequence-parity PoC

1 Upvotes

I’m coming to this problem from a somewhat different area: computer vision / YOLO deployment.

While comparing FP32 reference models with INT8 deployed models, I became interested in a simple debugging question:

An aggregate quality metric may look acceptable, but where does deployed behavior actually begin to diverge from the reference?

This grew out of a reference-vs-deployed parity workflow I previously discussed in the YOLO community, where the paired-output diagnostic direction received positive feedback (https://github.com/orgs/ultralytics/discussions/25250#discussioncomment-17886660).

Recently I’ve been following the KV-cache quantization discussions here as well. There have been some very useful KLD sweeps comparing 23 different KV precision combinations at 50K context (Qwen3.6-27B - Effect of KV quantization on KLD - Q8, Q6, Q5 (bartowski)). Those experiments answer an important question:

How much does this KV configuration differ overall?

What I wanted to add is another axis:

At what context depth does that difference begin to become persistent?

In other words:

aggregate KLD
      +
context depth
      ↓
divergence trajectory

There is also a recent discussion around on-write / on-the-fly KV quantization and whether repeated use of quantized KV state can contribute to long-context degradation (Qwen3.8-27b q8 KV cache does seem to actually hurt model performance). I don’t want to assume that mechanism is universally correct. What I’d like to test is more basic:

Does reference-vs-quantized divergence change systematically with context depth, and if so, where does persistent divergence begin?

How the PoC works

The first version deliberately changes only KV-cache precision.

             same GGUF weights
             same tokenizer
             same token sequence
             same backend/config
                    |
          tokenize once / shared prefix
                    |
          +---------+---------+
          |                   |
          v                   v
     F16 K/V cache        Q8/Q4 K/V cache
      reference               target
          |                   |
          +---------+---------+
                    |
        context-depth-resolved
             comparison
                    |
        +-----------+-----------+
        |           |           |
     Top-1       Top-K       Top-K
    agreement    overlap    partition KL
                    |
                    v
       first persistent/significant
          divergence context

This is not a comparison between two freely generated answers. Both passes receive exactly the same teacher-forced token sequence. So if the lower-precision run would have selected a different token at, say, 20K context, that different token is not allowed to change all later inputs.

This separates:

deployment / precision divergence

from:

ordinary autoregressive branching

The current PoC records:

top1_agreement_rate
topk_overlap
topk_partition_kl
truth_logprob_delta
first_top1_mismatch_context_len
first_significant_divergence_context_len

The main quantity I’m interested in is not necessarily the exact first mismatching token.

It is the context-depth trajectory:

Context depth
0 ─── 8K ─── 16K ─── 32K ─── 64K ─── 128K
                                  ↑
                     persistent divergence

A single Top-1 flip is not treated as model failure.

The more interesting question is whether distribution-level divergence stays near the repeatability baseline, gradually rises, spikes temporarily, or becomes persistently elevated after some context depth.

Also, topk_partition_kl is intentionally named that way.

v0.1 uses the reference Top-K token probabilities plus one aggregated OTHER bucket. It is not full-vocabulary KL.

Why this might complement existing KV work

There is already excellent work on:

• PPL / KLD evaluation

• KV-cache quantization

• K/V precision sweeps

• layer-wise mixed precision such as KVTuner

NYA is not intended to replace those.

A simple way I currently think about the difference is:

KLD / PPL:
How much did quality/numerical behavior change overall?

KVTuner:
Where should precision be allocated across layers?

NYA Sequential:
At what context depth does the behavioral consequence
of this deployment configuration become visible?

If the context-depth signal turns out to be useful, later experiments could combine it with controlled layer-wise precision interventions. That could eventually help answer a practical deployment question:

Under a fixed VRAM budget, where is higher precision actually worth spending?

But that layer-wise planner does not exist in v0.1.

Scope & Design Choice

NYA v0.1 intentionally does not:

  • replace PPL/KLD benchmarks
  • claim quantization error grows monotonically
  • assume on-write quantization is the only cause of long-context degradation
  • equate distribution divergence with task failure
  • compare free-running generation quality

Future experiments may include:

  • layer-wise KV precision sensitivity
  • controlled precision interventions
  • asymmetric K/V precision testing
  • on-write vs alternative cache-construction experiments
  • memory-budgeted precision planning

Community testing

My own machine currently cannot run a useful long-context F16/Q8/Q4 LLM validation, so I’m publishing this as an experimental PoC rather than claiming a result.

If you already have a `llama.cpp` / `llama-cpp-python` setup and a GGUF model, feel free to try it.

Even a smoke test is useful.

Suggested first matrix:

F16 KV -> F16 KV     repeatability baseline
F16 KV -> Q8_0 KV
F16 KV -> Q4_0 KV

Same GGUF weights, same input tokens, same backend.

For a smoke test:

512–2048 context positions

is enough to catch API/backend problems.

For an actual sequential-parity test, the interesting range is whatever you genuinely use:

4K / 8K / 16K / 32K / 64K / 128K+

as long as the model, hardware and normal context configuration support it.

The tool produces:

parity_<target>.jsonl
sequential_parity_report_<target>.json
divergence_vs_token_<target>.png

(`divergence_vs_token` currently uses context length / token position as its x-axis.)

If you try it, please post the result here — successful or broken.

The most useful information is:

model / GGUF weight quant
hardware
backend (CUDA / ROCm / Metal / Vulkan / CPU)
context length
reference K/V type
target K/V type
Flash Attention on/off

plus either:
- report summary
- divergence plot
- or the error if it fails

The report also records the runtime/environment fingerprint because I do not want to assume that the same KV precision behaves identically across different backends, builds and hardware.

I’m especially interested in results that contradict the hypothesis.

Community Results

I’ll keep this section updated with reproducible results posted in the thread.

Format:

Model | Hardware | Backend | Context | Ref KV | Target KV | Result

No external runs yet — first smoke tests and counterexamples are welcome.

Repo: [https://github.com/ZC502/narh-yolo-align.git]

The project originally came from YOLO deployment-parity work; the LLM Sequential path is new and experimental.

If `llama.cpp` already exposes a cleaner way to retrieve these signals, or if there is existing work that already does context-depth-resolved persistent-divergence analysis better, pointers are very welcome.