@@ -126,11 +126,13 @@ void * ggml_backend_buffer_get_base(ggml_backend_buffer_t buffer) {
126126 return base;
127127}
128128
129- void ggml_backend_buffer_init_tensor (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor) {
129+ // Check with reviewers: any cons for that method to return a ggml_status?
130+ enum ggml_status ggml_backend_buffer_init_tensor (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor) {
130131 // init_tensor is optional
131132 if (buffer->iface .init_tensor ) {
132- buffer->iface .init_tensor (buffer, tensor);
133+ return buffer->iface .init_tensor (buffer, tensor);
133134 }
135+ return GGML_STATUS_SUCCESS; // check with reviewers. Should we add a GGML_STATUS_SKIP ...
134136}
135137
136138void ggml_backend_buffer_clear (ggml_backend_buffer_t buffer, uint8_t value) {
@@ -1641,6 +1643,7 @@ ggml_backend_t ggml_backend_sched_get_tensor_backend(ggml_backend_sched_t sched,
16411643
16421644// utils
16431645
1646+ // Check with reviewers: should we return a ggml_status?
16441647void ggml_backend_view_init (struct ggml_tensor * tensor) {
16451648 GGML_ASSERT (tensor->buffer == NULL );
16461649 GGML_ASSERT (tensor->view_src != NULL );
@@ -1649,10 +1652,12 @@ void ggml_backend_view_init(struct ggml_tensor * tensor) {
16491652
16501653 tensor->buffer = tensor->view_src ->buffer ;
16511654 tensor->data = (char *)tensor->view_src ->data + tensor->view_offs ;
1652- ggml_backend_buffer_init_tensor (tensor->buffer , tensor);
1655+ ggml_status status = ggml_backend_buffer_init_tensor (tensor->buffer , tensor);
1656+ if (status != GGML_STATUS_SUCCESS)
1657+ GGML_LOG_WARN (" init tensor failed: status = %d\n " , status);
16531658}
16541659
1655- void ggml_backend_tensor_alloc (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, void * addr) {
1660+ enum ggml_status ggml_backend_tensor_alloc (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, void * addr) {
16561661 GGML_ASSERT (tensor->buffer == NULL );
16571662 GGML_ASSERT (tensor->data == NULL );
16581663 GGML_ASSERT (tensor->view_src == NULL );
@@ -1662,7 +1667,7 @@ void ggml_backend_tensor_alloc(ggml_backend_buffer_t buffer, struct ggml_tensor
16621667
16631668 tensor->buffer = buffer;
16641669 tensor->data = addr;
1665- ggml_backend_buffer_init_tensor (buffer, tensor);
1670+ return ggml_backend_buffer_init_tensor (buffer, tensor);
16661671}
16671672
16681673static struct ggml_tensor * graph_copy_dup_tensor (struct ggml_hash_set hash_set, struct ggml_tensor ** node_copies,
0 commit comments