Tested on RTX5070TI 16GB VRAM: 20 t/s

#24
by WhiteDan64 - opened

I was able to run Qwen3.8-Flash-Next-UD-IQ3_XXS on my RTX5071Ti (16GB) using last unsloth build: https://github.com/unslothai/llama.cpp/releases/tag/b10639-mix-f6f92fe

I reached an inference speed of about 20.44 tokens per second, not too bad for a configuration without unified memory and MTP

My presets configuration is the following:

[*]
port = 8080
host = 127.0.0.1
parallel = 1
log-verbosity = 4 
flash-attn = on
t = 18 
no-mmap = true 
metrics = true 
jinja = true 

[unsloth/qwen3.8-flash-next:UD-IQ3_XXS]
model = Qwen3.8-Flash-Next-GGUF\UD-IQ3_XXS\Qwen3.8-Flash-Next-UD-IQ3_XXS-00001-of-00003.gguf
mmproj = Qwen3.8-Flash-Next-GGUF\mmproj-BF16.gguf
no-mmproj-offload = true 
ctx-size = 262144
ctk = q4_0 
ctv = q4_0
ngl = 49 
load-mode = none
no-warmup = true
cpu-moe = true 
fit = off
spec-type = ngram-mod 
batch-size = 512
ubatch-size = 256
reasoning = auto 
temp = 0.8 
top-p = 0.90 
top-k = 20 
min-p = 0.01 
presence-penalty = 0.0 
repeat-penalty = 1.0
chat-template-kwargs = {"preserve-thinking": true, "reasoning_effort": "medium"} 

Here the log

[64888] 1.33.163.298 I srv  llama_server: listening on http://127.0.0.1:64888
1.55.197.673 I srv  proxy_reques: proxying request to model unsloth/qwen3.8-flash-next:IQ3_XXS on port 64888
[64888] 1.33.177.607 I srv  update_slots: all slots are idle
1.55.227.127 I srv  proxy_reques: proxying request to model unsloth/qwen3.8-flash-next:IQ3_XXS on port 64888
[64888] 1.33.229.521 I srv  server_strea: conv_id=afebd875-5cc6-45f1-ab68-f19715b7eff8::unsloth/qwen3.8-flash-next:IQ3_XXS (empty=0)
[64888] 1.33.276.454 I srv   operator (): chat format: peg-native
[64888] 1.33.279.013 I slot get_availabl: id  0 | task -1 |  - skipping, slot is empty
[64888] 1.33.279.018 I slot get_availabl: id  0 | task -1 | selected slot by LRU, t_last = -1
[64888] 1.33.279.019 I srv  get_availabl: updating prompt cache
[64888] 1.33.279.026 I srv          load:  - looking for better prompt, base f_keep = -1.000, f_sim = 0.000
[64888] 1.33.279.243 I srv        update:  - cache state: 0 prompts, 0.000 MiB (limits: 8192.000 MiB, 262144 tokens, 8589934592 est)
[64888] 1.33.279.247 I srv  get_availabl: prompt cache update took 0.23 ms
[64888] 1.33.293.296 I cmn  common_reaso: activated, budget=2147483647 tokens
[64888] 1.33.300.685 I slot launch_slot_: id  0 | task -1 | sampler chain: logits -> ?penalties -> ?dry -> ?top-n-sigma -> top-k -> ?typical -> top-p -> min-p -> ?xtc -> temp-ext -> dist
[64888] 1.33.300.715 I slot launch_slot_: id  0 | task -1 | sampler params:
[64888]         repeat_last_n = 64, repeat_penalty = 1.000, frequency_penalty = 0.000, presence_penalty = 0.000
[64888]         dry_multiplier = 0.000, dry_base = 1.750, dry_allowed_length = 2, dry_penalty_last_n = 64
[64888]         top_k = 20, top_p = 0.900, min_p = 0.010, xtc_probability = 0.000, xtc_threshold = 0.100, typical_p = 1.000, top_n_sigma = -1.000, temp = 0.800
[64888]         mirostat = 0, mirostat_lr = 0.100, mirostat_ent = 5.000, adaptive_target = -1.000, adaptive_decay = 0.900
[64888] 1.33.300.720 I slot launch_slot_: id  0 | task 0 | processing task, is_child = 0
[64888] 1.33.301.378 I slot  operator (): id  0 | task 0 | new prompt, n_ctx_slot = 262144, n_keep = 0, task.n_tokens = 2409
[64888] 1.33.301.397 I slot  operator (): id  0 | task 0 | cached n_tokens = 0, memory_seq_rm [0, end)
[64888] 1.37.692.872 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =    512, progress = 0.21, t =   4.38 s / 117.00 tokens per second
[64888] 1.37.692.877 I slot  operator (): id  0 | task 0 | cached n_tokens = 512, memory_seq_rm [512, end)
[64888] 1.41.120.507 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   1024, progress = 0.43, t =   7.82 s / 130.96 tokens per second
[64888] 1.41.120.511 I slot  operator (): id  0 | task 0 | cached n_tokens = 1024, memory_seq_rm [1024, end)
[64888] 1.44.571.767 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   1536, progress = 0.64, t =  11.27 s / 136.29 tokens per second
[64888] 1.44.571.771 I slot  operator (): id  0 | task 0 | cached n_tokens = 1536, memory_seq_rm [1536, end)
[64888] 1.48.223.610 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   2048, progress = 0.85, t =  14.92 s / 137.25 tokens per second
[64888] 1.48.223.614 I slot  operator (): id  0 | task 0 | cached n_tokens = 2048, memory_seq_rm [2048, end)
[64888] 1.49.350.152 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   2149, progress = 0.89, t =  16.05 s / 133.90 tokens per second
[64888] 1.49.350.156 I slot  operator (): id  0 | task 0 | cached n_tokens = 2149, memory_seq_rm [2149, end)
[64888] 1.49.413.593 I slot create_check: id  0 | task 0 | created context checkpoint 1 of 32 (pos_min = 2148, pos_max = 2148, n_tokens = 2149, size = 124.876 MiB)
[64888] 1.51.001.486 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   2388, progress = 0.99, t =  17.70 s / 134.91 tokens per second
[64888] 1.51.001.490 I slot  operator (): id  0 | task 0 | cached n_tokens = 2388, memory_seq_rm [2388, end)
[64888] 1.51.049.580 I slot create_check: id  0 | task 0 | created context checkpoint 2 of 32 (pos_min = 2387, pos_max = 2387, n_tokens = 2388, size = 124.876 MiB)
[64888] 1.51.471.004 I slot print_timing: id  0 | task 0 | prompt processing, n_tokens =   2405, progress = 1.00, t =  18.17 s / 132.36 tokens per second
[64888] 1.51.471.011 I slot  operator (): id  0 | task 0 | cached n_tokens = 2405, memory_seq_rm [2405, end)
[64888] 1.51.493.754 I slot init_sampler: id  0 | task 0 | init sampler, took 22.22 ms, tokens: text = 2409, total = 2409
[64888] 1.51.555.788 I slot create_check: id  0 | task 0 | created context checkpoint 3 of 32 (pos_min = 2404, pos_max = 2404, n_tokens = 2405, size = 124.876 MiB)
[64888] 1.51.916.123 I spec        begin: ngram_mod occupancy = 2353/4194304 (0.00)
[64888] 1.53.479.562 I cmn  common_reaso: deactivated (natural end)
[64888] 1.56.849.028 I slot print_timing: id  0 | task 0 | n_gen =    100, tg =  20.14 t/s, tg_3s =  20.34 t/s
[64888] 1.59.891.328 I slot print_timing: id  0 | task 0 | n_gen =    162, tg =  20.23 t/s, tg_3s =  20.38 t/s
[64888] 2.02.920.219 I slot print_timing: id  0 | task 0 | n_gen =    225, tg =  20.39 t/s, tg_3s =  20.80 t/s
[64888] 2.04.507.618 I slot print_timing: id  0 | task 0 | prompt eval time =   18631.98 ms /  2409 tokens (    7.73 ms per token,   129.29 tokens per second)
[64888] 2.04.507.623 I slot print_timing: id  0 | task 0 |        eval time =   12574.24 ms /   258 tokens (   48.93 ms per token,    20.44 tokens per second)
[64888] 2.04.507.624 I slot print_timing: id  0 | task 0 |       total time =   31206.22 ms /  2667 tokens
[64888] 2.04.507.625 I slot print_timing: id  0 | task 0 |    graphs reused =          0
[64888] 2.04.508.126 I spec common_specu: statistics        ngram-mod: #calls(b,g,a) =    1    257      0, #gen drafts =      0, #acc drafts =     0, #gen tokens =      0, #acc tokens =     0, dur(b,g,a) = 0.202, 0.590, 0.000 ms
[64888] 2.04.508.378 I slot      release: id  0 | task 0 | stop processing: n_tokens = 2666, truncated = 0

Hi!
How much RAM?
Thanks!

Total RAM 85GB (o/w 10GB Windows OS)

Any idea how to speed up the prefill? Currently trying to compile mtp pr and speculative prefill pr into the qwen4next pr ..

Hi!
How much RAM?
Thanks!

Using this preset

[*]
port = 8080
host = 127.0.0.1
parallel = 1
log-verbosity = 4 
flash-attn = on
t = 18 
metrics = true 
jinja = true 

[unsloth/qwen3.8-flash:UD-IQ3_XXS]
model = Qwen3.8-Flash-Next-GGUF\UD-IQ3_XXS\Qwen3.8-Flash-Next-UD-IQ3_XXS-00001-of-00003.gguf
mmproj = unsloth\Qwen3.8-Flash-Next-GGUF\mmproj-BF16.gguf
no-mmproj-offload = true 
ctx-size = 262144
no-context-shift = true
no-warmup = true
fit = on
spec-default = true 
batch-size = 512
ubatch-size = 256
reasoning = auto 
temp = 0.8 
top-p = 0.90 
top-k = 20 
min-p = 0.01 
presence-penalty = 0.0 
repeat-penalty = 1.0
chat-template-kwargs = {"enable_thinking": true, "preserve-thinking": true, "reasoning_effort": "low"} 

Respect to my previous settings, the total RAM used is decreased to 62GB (o/w 11GB Windows OS), so probably it will be possible to run the model on 64GB (using linux you can save about 10GB)

But the prefill speed will decrease from about 130 t/s to 53 t/s, while the inference speed will increase a little from 20 t/s to 22 t/s.
So if you have enough RAM I suggest you to use my previous settings, because the prefill speed decrease too much with these settings.

So, for IQ3_XXS, we need 62 GB of RAM and 16 GB of VRAM (78 GB total)- and is that without offloading the ngram to the SSD?

What is the the quality though?

I'm still doing tests, but the preliminary results are good. Unfortunately, to increase intelligence, Qwen has greatly increased thinking time.

For example I asked to Qwen3.8-flash-next:IQ3_XXS to build a game

qwen3.8-flash-iq3_xxs[medium]_Space-Shooter

It was able to build a good game in 80m consuming 94k of context with reasoning effort = medium

Qwen3.8-27b:IQ3_XXS to complete the task using same prompt and effort level, took only 22m consuming 70k of context (about 26% less)

qwen38-27b-tbq3-iq3_xxs[medium]_Space-Shooter

The main reason is due both the noticeable speed difference (Qwen3.8-flash-next on my PC is about 3 times slower than Qwen3.8-27b) and the increase in thinking tokens (Qwen3.8-flash-next consumes 26% more tokens than Qwen3.8-27b).

Sign up or log in to comment