diff --git a/ggml.c b/ggml.c index 985ea7317..472203824 100644 --- a/ggml.c +++ b/ggml.c @@ -7948,6 +7948,8 @@ static void ggml_compute_forward_add_at_f32( // GGML_ASSERT(ggml_are_same_shape(src0, src1)); // TODO: assert that offset+len(src1) <= len(src1) GGML_ASSERT(ggml_are_same_shape(src0, dst)); + ggml_compute_forward_dup_same_cont(params, src0, dst); + if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { return; } @@ -8007,6 +8009,8 @@ static void ggml_compute_forward_add_at_f16_f32( // GGML_ASSERT(ggml_are_same_shape(src0, src1)); // TODO: assert that offset+len(src1) <= len(src1) GGML_ASSERT(ggml_are_same_shape(src0, dst)); + ggml_compute_forward_dup_same_cont(params, src0, dst); + if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { return; } @@ -8058,6 +8062,8 @@ static void ggml_compute_forward_add_at_f16_f16( // GGML_ASSERT(ggml_are_same_shape(src0, src1)); // TODO: assert that offset+len(src1) <= len(src1) GGML_ASSERT(ggml_are_same_shape(src0, dst)); + ggml_compute_forward_dup_same_cont(params, src0, dst); + if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { return; } @@ -8109,6 +8115,8 @@ static void ggml_compute_forward_add_at_q_f32( // GGML_ASSERT(ggml_are_same_shape(src0, src1)); // TODO: assert that offset+len(src1) <= len(src1) GGML_ASSERT(ggml_are_same_shape(src0, dst)); + ggml_compute_forward_dup_same_cont(params, src0, dst); + if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { return; } @@ -8217,7 +8225,6 @@ static void ggml_compute_forward_add_at( struct ggml_tensor * dst) { size_t offset; memcpy(&offset, dst->padding, sizeof(offset)); - ggml_compute_forward_dup_same_cont(params, src0, dst); switch (src0->type) { case GGML_TYPE_F32: {