summaryrefslogtreecommitdiff
path: root/ggml-backend.c
diff options
context:
space:
mode:
authorFinn Voorhees <finnvoorhees@gmail.com>2024-01-03 08:39:43 -0500
committerGeorgi Gerganov <ggerganov@gmail.com>2024-01-05 18:02:06 +0200
commit1bf681f90ef4cf37b36e6d604d3e30fc57eda650 (patch)
treed2b1789f7503961d8b1cb52da244e4cd078824b0 /ggml-backend.c
parentc1d7cb28d3fed97fbc95fc3c43f0c5e2113e546c (diff)
ggml : add error handling to graph_compute (whisper/1714)
Diffstat (limited to 'ggml-backend.c')
-rw-r--r--ggml-backend.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ggml-backend.c b/ggml-backend.c
index 2c375206..53e741cb 100644
--- a/ggml-backend.c
+++ b/ggml-backend.c
@@ -195,11 +195,14 @@ void ggml_backend_graph_plan_compute(ggml_backend_t backend, ggml_backend_graph_
ggml_backend_synchronize(backend);
}
-void ggml_backend_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
- backend->iface.graph_compute(backend, cgraph);
+bool ggml_backend_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
+ if (!backend->iface.graph_compute(backend, cgraph)) {
+ return false;
+ }
// TODO: optional sync
ggml_backend_synchronize(backend);
+ return true;
}
bool ggml_backend_supports_op(ggml_backend_t backend, const struct ggml_tensor * op) {
@@ -597,7 +600,7 @@ static void ggml_backend_cpu_graph_plan_compute(ggml_backend_t backend, ggml_bac
GGML_UNUSED(backend);
}
-static void ggml_backend_cpu_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
+static bool ggml_backend_cpu_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
struct ggml_backend_cpu_context * cpu_ctx = (struct ggml_backend_cpu_context *)backend->context;
struct ggml_cplan cplan = ggml_graph_plan(cgraph, cpu_ctx->n_threads);
@@ -611,6 +614,7 @@ static void ggml_backend_cpu_graph_compute(ggml_backend_t backend, struct ggml_c
cplan.work_data = cpu_ctx->work_data;
ggml_graph_compute(cgraph, &cplan);
+ return true;
}
static bool ggml_backend_cpu_supports_op(ggml_backend_t backend, const struct ggml_tensor * op) {