From 3d21f2646e60ddfb8e7fe604be56bae2fb68ac20 Mon Sep 17 00:00:00 2001 From: xaedes Date: Fri, 28 Apr 2023 18:12:25 +0200 Subject: [PATCH] implement ggml_cont backward pass --- ggml.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ggml.c b/ggml.c index a93f1fb7f..515a4d19c 100644 --- a/ggml.c +++ b/ggml.c @@ -5822,7 +5822,6 @@ struct ggml_tensor * ggml_cont_impl( bool is_node = false; if (!inplace && a->grad) { - // TODO: implement backward is_node = true; } @@ -13188,7 +13187,15 @@ static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor } break; case GGML_OP_CONT: { - GGML_ASSERT(false); // TODO: not implemented + // same as cpy + if (src0->grad) { + GGML_ASSERT(ggml_is_contiguous(src0->grad)); + GGML_ASSERT(ggml_is_contiguous(tensor->grad)); + src0->grad = ggml_add_impl(ctx, src0->grad, tensor->grad, inplace); + } + if (src1->grad) { + // noop + } } break; case GGML_OP_RESHAPE: {