From 2b3a24d3c76a8d23399dde4f08cde8a6be978c5e Mon Sep 17 00:00:00 2001 From: Iwan Kawrakow Date: Wed, 21 May 2025 16:38:11 +0300 Subject: [PATCH] Move the asserts where they are neded --- ggml/src/ggml-backend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-backend.c b/ggml/src/ggml-backend.c index b7c5ddae..3a2fc99e 100644 --- a/ggml/src/ggml-backend.c +++ b/ggml/src/ggml-backend.c @@ -1809,8 +1809,6 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s // copy the input tensors to the split backend for (int j = 0; j < split->n_inputs; j++) { ggml_backend_t input_backend = ggml_backend_sched_get_tensor_backend(sched, split->inputs[j]); - GGML_ASSERT(input_backend); - GGML_ASSERT(input_backend->context); struct ggml_tensor * input = split->inputs[j]; struct ggml_tensor * input_cpy = tensor_copy(input, split_backend_id, sched->cur_copy); @@ -1829,6 +1827,8 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s } else { ggml_backend_synchronize(split_backend); } + GGML_ASSERT(input_backend); + GGML_ASSERT(input_backend->context); // try async copy, but if not possible, we can still use a sync copy without synchronizing the dst backend, since we handle the synchronization here with multiple copies and events // TODO: add public function to facilitate this, since applications do not have direct access to the backend interface if (!split_backend->iface.cpy_tensor_async || !split_backend->iface.cpy_tensor_async(input_backend, split_backend, input, input_cpy)) {