Skip to content

fix: sched split-input overflow on Gemma 4 E-series partial offload#46

Merged
worthant merged 3 commits into
devfrom
fix/sched-split-inputs-limit
Jul 24, 2026
Merged

fix: sched split-input overflow on Gemma 4 E-series partial offload#46
worthant merged 3 commits into
devfrom
fix/sched-split-inputs-limit

Conversation

@worthant

Copy link
Copy Markdown
Member

In-app crash report: loading gemma-4-E4B-it-Q4_K_S on a 3.5GB RADV RENOIR laptop aborts during common_fit_params with GGML_ASSERT(n_inputs < GGML_SCHED_MAX_SPLIT_INPUTS) (ggml-backend.cpp:1367), surfaced by Atomic Chat as 'access violation / segfault'.

Root cause: the E-series feeds a per-layer embedding input into every block. With partial offload the graph splits between Vulkan and CPU and every per-layer input joins one split's input list — any model deeper than 30 layers trips the assert. Big-VRAM GPUs never split, which is why only small-VRAM machines see it.

Verified on the reporter's exact hardware (5800H/RENOIR): current b10018-1.1.1 release binary crashes with and without --mmproj, with -fit off; only -ngl 0 avoids it. Upstream default is 30 and has no fix.

Raise the default to 128 (per-split fixed arrays; memory cost is negligible). CI artifact from this PR will be re-tested on the same machine before merge.

worthant added 3 commits July 23, 2026 22:55
Promote dev to master: spec-decoding CLI restoration (#34, #37)
Gemma 4 E-series routes a per-layer embedding input into every block;
under partial offload (e.g. 3.5GB RENOIR Vulkan + CPU) each one lands in
the split input list and GGML_ASSERT(n_inputs < GGML_SCHED_MAX_SPLIT_INPUTS)
aborts during memory fitting — the in-app 'model process crashed' report.
Reproduced with gemma-4-E4B-it-Q4_K_S on RADV RENOIR; -ngl 0 avoids it,
any GPU offload trips it. 30 -> 128 with headroom for 31B-deep stacks.
@github-actions github-actions Bot added the ggml label Jul 24, 2026
@worthant

Copy link
Copy Markdown
Member Author

Verified on the reporting hardware (5800H / RADV RENOIR 3.5GB): the CI artifact from this PR loads gemma-4-E4B-it-Q4_K_S + mmproj with default partial offload — no assert, server healthy, coherent generation at 8.5 tok/s. Same scenario aborts on b10018-1.1.1.

@worthant
worthant merged commit e8c6eed into dev Jul 24, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant