@@ -126,11 +126,13 @@ void * ggml_backend_buffer_get_base(ggml_backend_buffer_t buffer) {
126
126
return base;
127
127
}
128
128
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) {
130
131
// init_tensor is optional
131
132
if (buffer->iface .init_tensor ) {
132
- buffer->iface .init_tensor (buffer, tensor);
133
+ return buffer->iface .init_tensor (buffer, tensor);
133
134
}
135
+ return GGML_STATUS_SUCCESS; // check with reviewers. Should we add a GGML_STATUS_SKIP ...
134
136
}
135
137
136
138
void 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,
1641
1643
1642
1644
// utils
1643
1645
1646
+ // Check with reviewers: should we return a ggml_status?
1644
1647
void ggml_backend_view_init (struct ggml_tensor * tensor) {
1645
1648
GGML_ASSERT (tensor->buffer == NULL );
1646
1649
GGML_ASSERT (tensor->view_src != NULL );
@@ -1649,10 +1652,12 @@ void ggml_backend_view_init(struct ggml_tensor * tensor) {
1649
1652
1650
1653
tensor->buffer = tensor->view_src ->buffer ;
1651
1654
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);
1653
1658
}
1654
1659
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) {
1656
1661
GGML_ASSERT (tensor->buffer == NULL );
1657
1662
GGML_ASSERT (tensor->data == NULL );
1658
1663
GGML_ASSERT (tensor->view_src == NULL );
@@ -1662,7 +1667,7 @@ void ggml_backend_tensor_alloc(ggml_backend_buffer_t buffer, struct ggml_tensor
1662
1667
1663
1668
tensor->buffer = buffer;
1664
1669
tensor->data = addr;
1665
- ggml_backend_buffer_init_tensor (buffer, tensor);
1670
+ return ggml_backend_buffer_init_tensor (buffer, tensor);
1666
1671
}
1667
1672
1668
1673
static struct ggml_tensor * graph_copy_dup_tensor (struct ggml_hash_set hash_set, struct ggml_tensor ** node_copies,
0 commit comments