From 4b2f1cb1b8d50117f0d1563a87959eeb2098ef5d Mon Sep 17 00:00:00 2001 From: Aaron Teo Date: Mon, 28 Jul 2025 16:05:53 +0800 Subject: [PATCH] ggml-zdnn: add bias data transform Signed-off-by: Aaron Teo --- ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp b/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp index 0868fb94e1..b27e579fe7 100644 --- a/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp +++ b/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp @@ -408,6 +408,11 @@ static void ggml_backend_zdnn_buffer_memset_tensor(ggml_backend_buffer_t buffer, static void ggml_backend_zdnn_buffer_set_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { ggml_backend_zdnn_buffer * extra = (ggml_backend_zdnn_buffer *)tensor->extra; + + // if extra buffer exists, transform the ztensor with the buffer data. for e.g., bias + if (extra->extra) ZDNN_CHECK(zdnn_transform_ztensor(&extra->extra->ztensor, &extra->extra->data)); + + // for all other data ZDNN_CHECK(zdnn_transform_ztensor(&extra->ztensor, (void *)((char *)tensor->data + offset))); memcpy((char *)tensor->data + offset, data, size);