@@ -262,11 +262,11 @@ void ggml_backend_graph_plan_free(ggml_backend_t backend, ggml_backend_graph_pla
262262 backend -> iface .graph_plan_free (backend , plan );
263263}
264264
265- void ggml_backend_graph_plan_compute (ggml_backend_t backend , ggml_backend_graph_plan_t plan ) {
266- backend -> iface .graph_plan_compute (backend , plan );
265+ enum ggml_status ggml_backend_graph_plan_compute (ggml_backend_t backend , ggml_backend_graph_plan_t plan ) {
266+ return backend -> iface .graph_plan_compute (backend , plan );
267267}
268268
269- bool ggml_backend_graph_compute (ggml_backend_t backend , struct ggml_cgraph * cgraph ) {
269+ enum ggml_status ggml_backend_graph_compute (ggml_backend_t backend , struct ggml_cgraph * cgraph ) {
270270 return backend -> iface .graph_compute (backend , cgraph );
271271}
272272
@@ -732,15 +732,15 @@ GGML_CALL static void ggml_backend_cpu_graph_plan_free(ggml_backend_t backend, g
732732 GGML_UNUSED (backend );
733733}
734734
735- GGML_CALL static void ggml_backend_cpu_graph_plan_compute (ggml_backend_t backend , ggml_backend_graph_plan_t plan ) {
735+ GGML_CALL static enum ggml_status ggml_backend_cpu_graph_plan_compute (ggml_backend_t backend , ggml_backend_graph_plan_t plan ) {
736736 struct ggml_backend_plan_cpu * cpu_plan = (struct ggml_backend_plan_cpu * )plan ;
737737
738- ggml_graph_compute (& cpu_plan -> cgraph , & cpu_plan -> cplan );
738+ return ggml_graph_compute (& cpu_plan -> cgraph , & cpu_plan -> cplan );
739739
740740 GGML_UNUSED (backend );
741741}
742742
743- GGML_CALL static bool ggml_backend_cpu_graph_compute (ggml_backend_t backend , struct ggml_cgraph * cgraph ) {
743+ GGML_CALL static enum ggml_status ggml_backend_cpu_graph_compute (ggml_backend_t backend , struct ggml_cgraph * cgraph ) {
744744 struct ggml_backend_cpu_context * cpu_ctx = (struct ggml_backend_cpu_context * )backend -> context ;
745745
746746 struct ggml_cplan cplan = ggml_graph_plan (cgraph , cpu_ctx -> n_threads );
@@ -755,8 +755,7 @@ GGML_CALL static bool ggml_backend_cpu_graph_compute(ggml_backend_t backend, str
755755 cplan .abort_callback = cpu_ctx -> abort_callback ;
756756 cplan .abort_callback_data = cpu_ctx -> abort_callback_data ;
757757
758- ggml_graph_compute (cgraph , & cplan );
759- return true;
758+ return ggml_graph_compute (cgraph , & cplan );
760759}
761760
762761GGML_CALL static bool ggml_backend_cpu_supports_op (ggml_backend_t backend , const struct ggml_tensor * op ) {
@@ -1437,7 +1436,7 @@ static bool ggml_backend_sched_alloc_splits(ggml_backend_sched_t sched) {
14371436 return true;
14381437}
14391438
1440- static bool ggml_backend_sched_compute_splits (ggml_backend_sched_t sched ) {
1439+ static enum ggml_status ggml_backend_sched_compute_splits (ggml_backend_sched_t sched ) {
14411440 uint64_t copy_us [GGML_MAX_BACKENDS ] = {0 };
14421441 uint64_t compute_us [GGML_MAX_BACKENDS ] = {0 };
14431442
@@ -1472,8 +1471,9 @@ static bool ggml_backend_sched_compute_splits(ggml_backend_sched_t sched) {
14721471
14731472 uint64_t compute_start_us = ggml_time_us ();
14741473 if (!sched -> callback_eval ) {
1475- if (!ggml_backend_graph_compute (split_backend , & split -> graph )) {
1476- return false;
1474+ enum ggml_status ec = ggml_backend_graph_compute (split_backend , & split -> graph );
1475+ if (ec != GGML_STATUS_SUCCESS ) {
1476+ return ec ;
14771477 }
14781478 //ggml_backend_synchronize(split_backend); // necessary to measure compute time
14791479 } else {
@@ -1494,8 +1494,9 @@ static bool ggml_backend_sched_compute_splits(ggml_backend_sched_t sched) {
14941494
14951495 struct ggml_cgraph gv = ggml_graph_view (& split -> graph , j0 , j1 + 1 );
14961496
1497- if (!ggml_backend_graph_compute (split_backend , & gv )) {
1498- return false;
1497+ enum ggml_status ec = ggml_backend_graph_compute (split_backend , & gv );
1498+ if (ec != GGML_STATUS_SUCCESS ) {
1499+ return ec ;
14991500 }
15001501
15011502 if (need && !sched -> callback_eval (t , false, sched -> callback_eval_user_data )) {
@@ -1519,7 +1520,7 @@ static bool ggml_backend_sched_compute_splits(ggml_backend_sched_t sched) {
15191520 }
15201521#endif
15211522
1522- return true ;
1523+ return GGML_STATUS_SUCCESS ;
15231524}
15241525
15251526ggml_backend_sched_t ggml_backend_sched_new (ggml_backend_t * backends , ggml_backend_buffer_type_t * bufts , int n_backends , size_t graph_size ) {
@@ -1581,7 +1582,7 @@ bool ggml_backend_sched_reserve(ggml_backend_sched_t sched, struct ggml_cgraph *
15811582 return true;
15821583}
15831584
1584- bool ggml_backend_sched_graph_compute (ggml_backend_sched_t sched , struct ggml_cgraph * graph ) {
1585+ enum ggml_status ggml_backend_sched_graph_compute (ggml_backend_sched_t sched , struct ggml_cgraph * graph ) {
15851586 GGML_ASSERT ((int )sched -> hash_set .size >= graph -> n_nodes + GGML_MAX_SPLITS * GGML_MAX_SPLIT_INPUTS );
15861587
15871588 if (!sched -> is_reset ) {
@@ -1590,14 +1591,10 @@ bool ggml_backend_sched_graph_compute(ggml_backend_sched_t sched, struct ggml_cg
15901591
15911592 ggml_backend_sched_split_graph (sched , graph );
15921593 if (!ggml_backend_sched_alloc_splits (sched )) {
1593- return false ;
1594+ return GGML_STATUS_ALLOC_FAILED ;
15941595 }
15951596
1596- if (!ggml_backend_sched_compute_splits (sched )) {
1597- return false;
1598- }
1599-
1600- return true;
1597+ return ggml_backend_sched_compute_splits (sched );
16011598}
16021599
16031600void ggml_backend_sched_set_eval_callback (ggml_backend_sched_t sched , ggml_backend_sched_eval_callback callback , void * user_data ) {
0 commit comments