summaryrefslogtreecommitdiff
path: root/ggml-alloc.c
diff options
context:
space:
mode:
authorGeorgi Gerganov <ggerganov@gmail.com>2024-03-29 17:45:46 +0200
committerGitHub <noreply@github.com>2024-03-29 17:45:46 +0200
commitd48ccf3ad4fea5b9ede209c7f40be65371987bfe (patch)
tree3f3696b4064c0cb2943913e95e2d4032e3f9c615 /ggml-alloc.c
parent069574775cea67d8a977904e4d534aff47a671f4 (diff)
sync : ggml (#6351)
* sync : ggml ggml-ci * cuda : move GGML_CUDA_DMMV constants to dmmv.cuh --------- Co-authored-by: slaren <slarengh@gmail.com>
Diffstat (limited to 'ggml-alloc.c')
-rw-r--r--ggml-alloc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/ggml-alloc.c b/ggml-alloc.c
index 643b2e55..7ceafec3 100644
--- a/ggml-alloc.c
+++ b/ggml-alloc.c
@@ -705,8 +705,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