From c7e40303c80b7a4f94fcb90c73f9979b98d61470 Mon Sep 17 00:00:00 2001 From: Piotr Wilkin Date: Mon, 17 Nov 2025 15:23:56 +0100 Subject: [PATCH 1/3] Did someone transpose the SOLVE_TRI result matrix? Perhaps... --- ggml/src/ggml-cpu/ops.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index b6209588db1e4..ce892f13e5cb2 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -9696,14 +9696,12 @@ static void ggml_compute_forward_solve_tri_f32(const struct ggml_compute_params for (int64_t i00 = 0; i00 < n; ++i00) { float sum = 0.0f; for (int64_t t = 0; t < i00; ++t) { - sum += A_batch[i00 * n + t] * X_batch[i01 * n + t]; + sum += A_batch[i00 * n + t] * X_batch[t * k + i01]; } - + const float diag = A_batch[i00 * n + i00]; GGML_ASSERT(diag != 0.0f && "Zero diagonal in triangular matrix"); - - X_batch[i01 * n + i00] = (B_batch[i00 * k + i01] - sum) / diag; - } + X_batch[i00 * k + i01] = (B_batch[i00 * k + i01] - sum) / diag; } } } From 3cbc9687d59918d1dd2847dcdf8958392fd18fbe Mon Sep 17 00:00:00 2001 From: "Piotr Wilkin (ilintar)" Date: Mon, 17 Nov 2025 15:44:24 +0100 Subject: [PATCH 2/3] Update ggml/src/ggml-cpu/ops.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sigbjørn Skjæret --- ggml/src/ggml-cpu/ops.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index ce892f13e5cb2..910a96a94032a 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -9701,7 +9701,8 @@ static void ggml_compute_forward_solve_tri_f32(const struct ggml_compute_params const float diag = A_batch[i00 * n + i00]; GGML_ASSERT(diag != 0.0f && "Zero diagonal in triangular matrix"); - X_batch[i00 * k + i01] = (B_batch[i00 * k + i01] - sum) / diag; } + X_batch[i00 * k + i01] = (B_batch[i00 * k + i01] - sum) / diag; + } } } From ca46964d8ef1ddf876139d3571e8f7877d5757e5 Mon Sep 17 00:00:00 2001 From: "Piotr Wilkin (ilintar)" Date: Mon, 17 Nov 2025 15:44:29 +0100 Subject: [PATCH 3/3] Update ggml/src/ggml-cpu/ops.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sigbjørn Skjæret --- ggml/src/ggml-cpu/ops.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index 910a96a94032a..41e89d83c2ec9 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -9698,7 +9698,7 @@ static void ggml_compute_forward_solve_tri_f32(const struct ggml_compute_params for (int64_t t = 0; t < i00; ++t) { sum += A_batch[i00 * n + t] * X_batch[t * k + i01]; } - + const float diag = A_batch[i00 * n + i00]; GGML_ASSERT(diag != 0.0f && "Zero diagonal in triangular matrix"); X_batch[i00 * k + i01] = (B_batch[i00 * k + i01] - sum) / diag;