From d4db42d39a849987707f238acbe49dbcdf627a47 Mon Sep 17 00:00:00 2001 From: worthant Date: Thu, 23 Jul 2026 23:00:10 +0300 Subject: [PATCH 1/2] release: b10018-1.1.1 --- TURBOQUANT_VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TURBOQUANT_VERSION b/TURBOQUANT_VERSION index 1fc294e797e1..67b1082c989e 100644 --- a/TURBOQUANT_VERSION +++ b/TURBOQUANT_VERSION @@ -1 +1 @@ -b10018-1.1.0 +b10018-1.1.1 From 8fcf21852d9728dd7cce5255562feaf0ef954ae8 Mon Sep 17 00:00:00 2001 From: worthant Date: Fri, 24 Jul 2026 14:57:52 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=A7=20fix(ggml):=20raise=20sched?= =?UTF-8?q?=20split-input=20limit=20for=20per-layer-input=20models?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- ggml/src/ggml-backend.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-backend.cpp b/ggml/src/ggml-backend.cpp index 87615921c09b..b033afc7a037 100644 --- a/ggml/src/ggml-backend.cpp +++ b/ggml/src/ggml-backend.cpp @@ -754,7 +754,11 @@ static bool ggml_is_view_op(enum ggml_op op) { #endif #ifndef GGML_SCHED_MAX_SPLIT_INPUTS -#define GGML_SCHED_MAX_SPLIT_INPUTS 30 +// 30 upstream. Gemma 4 E-series feeds a per-layer embedding input into every +// block; with partial offload (small-VRAM Vulkan + CPU) each of them becomes +// a split input, so a 30+-layer model trips the assert at split creation. +// 128 covers the deepest current target (31B dense) with headroom. +#define GGML_SCHED_MAX_SPLIT_INPUTS 128 #endif #ifndef GGML_SCHED_MAX_COPIES