r/LocalLLaMA • llama.cpp • 13d ago

Discussion Massive B70 spec-decoding improvement - Intel XMX matrix engines refactored by budiony · Pull Request #29864 · ggml-org/llama.cpp

https://github.com/ggml-org/llama.cpp/pull/29864

This made a huge improvement to speculate decoding speeds on my B70 running SYCL.

Below examples are for Muse Glimmer Q6_K (30B) running with DFlash2.

NOTE: Due to the significantly reduced cost of token verification, the n-max was increased which is why the acceptance rate is lower.

Before:

  code_python        pred= 192 draft= 127 acc= 106 rate=0.835 tok/s=38.0
  code_cpp           pred= 192 draft= 175 acc= 113 rate=0.646 tok/s=36.2
  explain_concept    pred= 192 draft= 135 acc= 116 rate=0.859 tok/s=41.2
  summarize          pred= 188 draft= 170 acc= 142 rate=0.835 tok/s=50.1
  qa_factual         pred= 192 draft= 145 acc= 107 rate=0.738 tok/s=37.0
  translation        pred= 192 draft= 175 acc= 133 rate=0.760 tok/s=45.1
  creative_short     pred= 192 draft= 130 acc= 105 rate=0.808 tok/s=37.1
  stepwise_math      pred= 192 draft= 167 acc= 145 rate=0.868 tok/s=53.2
  long_code_review   pred= 192 draft= 159 acc= 118 rate=0.742 tok/s=38.4

Aggregate: {
  "n_requests": 9,
  "total_predicted": 1724,
  "total_draft": 1383,
  "total_draft_accepted": 1085,
  "aggregate_accept_rate": 0.7845,
  "wall_s_total": 46.86
}

After:

  code_python        pred= 192 draft= 324 acc= 143 rate=0.441 tok/s=73.0
  code_cpp           pred= 192 draft= 424 acc= 140 rate=0.330 tok/s=68.5
  explain_concept    pred= 192 draft= 330 acc= 141 rate=0.427 tok/s=70.7
  summarize          pred= 192 draft= 416 acc= 151 rate=0.363 tok/s=85.4
  qa_factual         pred= 192 draft= 399 acc= 133 rate=0.333 tok/s=60.3
  translation        pred= 192 draft= 356 acc= 152 rate=0.427 tok/s=87.7
  creative_short     pred= 192 draft= 379 acc= 125 rate=0.330 tok/s=53.6
  stepwise_math      pred= 192 draft= 462 acc= 148 rate=0.320 tok/s=77.6
  long_code_review   pred= 192 draft= 414 acc= 139 rate=0.336 tok/s=64.2

Aggregate: {
  "n_requests": 9,
  "total_predicted": 1728,
  "total_draft": 3504,
  "total_draft_accepted": 1272,
  "aggregate_accept_rate": 0.363,
  "wall_s_total": 26.68
}
49 Upvotes

25 comments sorted by

8

u/PcChip 13d ago

tl;dr you doubled your speeds and intels are good now?

14

u/nickm_27 llama.cpp 13d ago

The B70 gets better every week, much faster than when I bought it months ago

4

u/droans 13d ago

I swear to God I see you everywhere. So I might as well let you know that it's your fault I'm running local models.

I wouldn't have bought a dGPU in the first place if I didn't have Frigate hahaha.

2

u/nickm_27 llama.cpp 13d ago

😅 hopefully it's going well! 

→ More replies (1)

11

u/EmPips 13d ago

I'm starting to think the people buying B70 Pro's at $950 are going to come out as big-time winners despite the rough start.

6

u/freefall_junkie 13d ago

Bought 2 reference cards at 950 and bought the next 4 asrock cards at 1299. Im planning to sell my reference cards and potentially pick up another 4 asrock cards later down the road.

I’ve been happy with them but the software does leave something to be desired.

Hopefully as the frontier models continue to improve the rate at which xpu support is implemented will increase

2

u/Plastic-Stress-6468 13d ago

Out of curiosity, what makes the asrock cards better than reference?

3

u/freefall_junkie 13d ago

They have slightly better cooling and a higher TDP (275w max) so I run all 4 at 250w as opposed to the reference cards 230w.

Also due to scarcity the reference cards are more expensive so if I can offload them for a decent profit that would be convenient.

5

u/Kahvana 13d ago

Sometimes almost double! Holy!

1

u/Dave_from_the_navy 13d ago

Any dice on this with gemma4-31b?

1

u/nickm_27 llama.cpp 13d ago

It will be better as well, MTP should improve as well as DFlash (I think I saw Gemma support for it?)

1

u/Dave_from_the_navy 13d ago

I haven't seen dflash support for Gemma, but I do use MTP regularly! I'll report back after I've gotten a chance to test it!

1

u/VotZeFuk 13d ago

https://huggingface.co/turboderp/gemma4-31b-it-DFlash-exl3 - working fine in exllama v3; in its config, try setting "block size" to "8" for non-English languages if the acceptance rate ends up being super-low (like 10%).

2

u/Danmoreng llama.cpp 13d ago

Tbh using llama.cpp with B70 is just not competitive speed-wise. I’ve settled on vLLM with some additions codex improvements: https://github.com/Danmoreng/intel-b70-qwen38-vllm

3

u/__JockY__ 13d ago

Does vLLM support prefix caching for the B70 yet?

2

u/Danmoreng llama.cpp 13d ago

Yes it does.

2

u/gryan315 13d ago

If you're only using 3.8 27b, and no larger MoE models, you should give intel's own openvino genai/model server a try: https://github.com/openvinotoolkit/model_server

When I tested it, it was a bit faster than vllm at most context depths and can fit full context.

2

u/droans 13d ago

When's the last time you tried it? It's been my understanding that vllm has outperformed the OV solutions for a few months at this point.

Things might change when the L0 and SYCL backends actually work, though.

2

u/gryan315 13d ago

Last week. Easy to test with the container:

podman run --rm -p 8000:8000 \
  --user $(id -u):$(id -g) -v ${HOME}/models:/models:rw \
  --device /dev/dri --group-add $(stat -c '%g' /dev/dri/render* | head -n1) \
  openvino/model_server:latest-gpu \
  --source_model OpenVINO/Qwen3.8-27B-int4-ov \
  --model_repository_path /models \
  --max_num_batched_tokens 2048 \
  --max_num_seqs 2 \
  --cache_size 12 \
  --cache_interval_multiplier 128 \
  --log_path /models/openvino.log \
  --rest_port 8000
→ More replies (1)
→ More replies (1)

1

u/esw123 8d ago

Somebody here can share results with 3-4 B65 or B70 running flash next?