From e24ecd2cc915254bcc238e74e6c9dae53b4f83f3 Mon Sep 17 00:00:00 2001 From: xaedes Date: Mon, 24 Apr 2023 21:13:22 +0200 Subject: [PATCH] fix bug in ggml_compute_forward_sum_f32 only the sum of the last processed row was written to dst. now the sum over all rows is written to dst. --- ggml.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ggml.c b/ggml.c index 998602150..657f7cb89 100644 --- a/ggml.c +++ b/ggml.c @@ -6811,15 +6811,20 @@ static void ggml_compute_forward_sum_f32( const size_t nb02 = src0->nb[2]; const size_t nb03 = src0->nb[3]; + ggml_float sum = 0; + float row_sum = 0; + for (int64_t i03 = 0; i03 < ne03; i03++) { for (int64_t i02 = 0; i02 < ne02; i02++) { for (int64_t i01 = 0; i01 < ne01; i01++) { ggml_vec_sum_f32(ne00, - (float *) (dst->data), + &row_sum, (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); + sum += row_sum; } } } + ((float *) dst->data)[0] = sum; } static void ggml_compute_forward_sum(