-
Notifications
You must be signed in to change notification settings - Fork 265
qwen35: DSpark speculative decoding (Qwen3.8-27B drafters) #625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
cc75a80
qwen35: DSpark speculative decoding support
davide221 b57738b
qwen35: per-step verify length for DSpark confidence gate
davide221 86eba54
ggml: fused DeltaNet decode kernels for HIP
davide221 cd2fc08
ggml: 64x64 MMQ tiles for dense verify widths on RDNA
davide221 fa345d6
qwen35: stacked projections and fused DeltaNet decode graph
davide221 e9e8cf4
qwen35: adaptive speculation policy and chain-path profiling
davide221 f1281da
ggml: FA vec kernel splits short KV spans across two blocks
davide221 cb08540
qwen35: adaptive policy probe step reacts fast
davide221 9df0a0a
qwen35: adaptive policy uses the measured spec/plain step-time ratio
davide221 ebc69e6
qwen35: DFlash 2 drafter support (dynamic convs + candidate selector)
davide221 324eb8b
ggml: skip the pathological mmq_x=32 small tile on RDNA
davide221 480e60a
Merge origin/main into qwen38-dspark
davide221 8f2d4fb
ggml: tree-mode support for the grouped-cols GDN kernel
davide221 4465965
qwen35: DFlash2 selector-scored DDTree candidates
davide221 2ff7afa
qwen35: fix and gate the chunked delta-net prefill path
davide221 9a32fda
ggml: binary exponentiation for the fp64 RoPE angle
davide221 a9f8296
ggml: dual-tile MMQ dispatch on RDNA4
davide221 1e0f49f
ggml: non-temporal weight loads in the IQ4_XS decode GEMV
davide221 bd56778
qwen35: expose tunable DFlash block size
davide221 539ca43
qwen35: cap draft width at checkpoint horizon
davide221 739cf84
ggml: tune IQ4_XS decode waves for RDNA4
davide221 9656d05
ggml: fused grouped dynamic conv for the DFlash2 draft graph
davide221 735fe39
qwen35: allow draft block widening to 2x the checkpoint horizon
davide221 2131ed6
fix(qwen35): AR-burst correctness and bookkeeping in the spec loop
davide221 75e8626
fix(common): selector-graph lifetime and top-k dispatch holes
davide221 46b1d6a
fix(ggml): arch-gate the small MMQ tiles, guard fused ops off CUDA, h…
davide221 3d077c4
qwen35: narrow the draft block at long context, and fix review findings
7630f73
qwen35: lower the long-context draft-narrowing threshold to 8192
d461bad
qwen35: make the tuned decode path the default, so no env vars are ne…
d3e738d
readme: make Qwen3.8-27B the headline target
5c61ee0
qwen35: cap the verify width, not the draft, at long context
85e7276
docs: correct comments that still described the old defaults
910a208
test: expect disk cache version 2
10a94ab
qwen35: warn when a prompt outgrows --fa-window (#653)
davide221 d23951d
fix(qwen35) span the whole KV pool for slot-mapped verify attention (…
davide221 15a242a
qwen35: fix review findings from the pre-merge audit
davide221 f28d85c
readme: recommend the Unsloth UD-IQ4_XS target and fix the drafter qu…
davide221 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -9332,6 +9332,8 @@ void ggml_compute_forward_flash_attn_back( | |||||||||||
| static void ggml_compute_forward_ssm_conv_f32( | ||||||||||||
| const ggml_compute_params * params, | ||||||||||||
| ggml_tensor * dst) { | ||||||||||||
| // dflash: the fused step mode (ggml_ssm_conv_step) is CUDA/HIP only | ||||||||||||
| GGML_ASSERT(ggml_get_op_params_i32(dst, 0) == 0 && "ggml_ssm_conv_step is not supported on CPU"); | ||||||||||||
| const ggml_tensor * src0 = dst->src[0]; // conv_x | ||||||||||||
| const ggml_tensor * src1 = dst->src[1]; // conv1d.weight | ||||||||||||
|
|
||||||||||||
|
|
@@ -10716,6 +10718,12 @@ static void ggml_compute_forward_gated_delta_net_f32( | |||||||||||
| void ggml_compute_forward_gated_delta_net( | ||||||||||||
| const ggml_compute_params * params, | ||||||||||||
| ggml_tensor * dst) { | ||||||||||||
| // Raw-gate mode (loader-built [dt_bias|A] in src[9], op_params[10]) | ||||||||||||
| // is CUDA/HIP only; the CPU path would silently use the raw values | ||||||||||||
| // as final gates. | ||||||||||||
| GGML_ASSERT(dst->op_params[10] == 0 && dst->src[9] == NULL && | ||||||||||||
| "raw-gate gated_delta_net is CUDA/HIP only"); | ||||||||||||
|
Comment on lines
+10724
to
+10725
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P1: When CPU receives a tree, persistent, or SpecLA GDN graph, this raw-gate guard passes because those modes use Prompt for AI agents
Suggested change
|
||||||||||||
|
|
||||||||||||
| const ggml_tensor * src0 = dst->src[0]; | ||||||||||||
|
|
||||||||||||
| switch (src0->type) { | ||||||||||||
|
|
||||||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: When a CPU backend executes
ggml_ssm_conv_tree, this guard passes because tree mode keepsop_params[0]at zero, but the CPU kernel ignoressrc[2]and produces incorrect branch windows. Reject tree mode here by checkingdst->src[2], or implement the parent-chain convolution on CPU.Prompt for AI agents