From: slaren Date: Sat, 16 Mar 2024 14:47:14 +0000 (+0100) Subject: alloc : fix allocation data of pre-allocated leafs X-Git-Tag: upstream/1.7.4~881 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=906c73b219cc7b98fd123efe7fb83083f3644e08;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp alloc : fix allocation data of pre-allocated leafs --- diff --git a/ggml-alloc.c b/ggml-alloc.c index 8ac1d3e5..60b86c27 100644 --- a/ggml-alloc.c +++ b/ggml-alloc.c @@ -701,8 +701,13 @@ bool ggml_gallocr_reserve_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, c struct ggml_tensor * leaf = graph->leafs[i]; struct hash_node * hn = ggml_gallocr_hash_get(galloc, leaf); galloc->leaf_allocs[i].buffer_id = hn->buffer_id; - galloc->leaf_allocs[i].leaf.offset = hn->offset; - galloc->leaf_allocs[i].leaf.size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], leaf); + if (leaf->view_src || leaf->data) { + galloc->leaf_allocs[i].leaf.offset = SIZE_MAX; + galloc->leaf_allocs[i].leaf.size_max = 0; + } else { + galloc->leaf_allocs[i].leaf.offset = hn->offset; + galloc->leaf_allocs[i].leaf.size_max = ggml_backend_buft_get_alloc_size(galloc->bufts[hn->buffer_id], leaf); + } } // reallocate buffers if needed