diff --git a/ggml/src/ggml-zdnn/ggml-zdnn.cpp b/ggml/src/ggml-zdnn/ggml-zdnn.cpp index ab88a149e3..ef591c1106 100644 --- a/ggml/src/ggml-zdnn/ggml-zdnn.cpp +++ b/ggml/src/ggml-zdnn/ggml-zdnn.cpp @@ -112,8 +112,8 @@ static void ggml_zdnn_mul_mat_op(ggml_backend_zdnn_context * ctx, const ggml_ten const ggml_tensor * inputs = src1; ggml_tensor * output = dst; - ggml_backend_zdnn_buffer * weights_extra = (ggml_backend_zdnn_buffer *)weights->extra; - ggml_backend_zdnn_buffer * inputs_extra = (ggml_backend_zdnn_buffer *)inputs->extra; + ggml_backend_zdnn_buffer * weights_extra = (ggml_backend_zdnn_buffer *)(weights->view_src ? weights->view_src->extra : weights->extra); + ggml_backend_zdnn_buffer * inputs_extra = (ggml_backend_zdnn_buffer *)(inputs->view_src ? inputs->view_src->extra : inputs->extra); ggml_backend_zdnn_buffer * output_extra = (ggml_backend_zdnn_buffer *)output->extra; zdnn_tensor_desc ptd_bias, td_bias;