MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / alloc_tensor_range

Function alloc_tensor_range

external/ggml/src/ggml-alloc.c:1126–1165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1124}
1125
1126static bool alloc_tensor_range(struct ggml_context * ctx,
1127 struct ggml_tensor * first, struct ggml_tensor * last,
1128 ggml_backend_buffer_type_t buft, size_t size,
1129 ggml_backend_buffer_t ** buffers, size_t * n_buffers) {
1130
1131 ggml_backend_buffer_t buffer = ggml_backend_buft_alloc_buffer(buft, size);
1132 if (buffer == NULL) {
1133 GGML_LOG_ERROR("%s: failed to allocate %s buffer of size %zu\n", __func__, ggml_backend_buft_name(buft), size);
1134 free_buffers(buffers, n_buffers);
1135 return false;
1136 }
1137
1138 *buffers = realloc(*buffers, sizeof(ggml_backend_buffer_t) * (*n_buffers + 1));
1139 (*buffers)[(*n_buffers)++] = buffer;
1140
1141 struct ggml_tallocr tallocr = ggml_tallocr_new(buffer);
1142
1143 for (struct ggml_tensor * t = first; t != last; t = ggml_get_next_tensor(ctx, t)) {
1144 enum ggml_status status = GGML_STATUS_SUCCESS;
1145 if (t->data == NULL) {
1146 if (t->view_src == NULL) {
1147 status = ggml_tallocr_alloc(&tallocr, t);
1148 } else if (t->buffer == NULL) {
1149 status = ggml_backend_view_init(t);
1150 }
1151 } else {
1152 if (t->view_src != NULL && t->buffer == NULL) {
1153 // view of a pre-allocated tensor
1154 status = ggml_backend_view_init(t);
1155 }
1156 }
1157 if (status != GGML_STATUS_SUCCESS) {
1158 GGML_LOG_ERROR("%s: failed to initialize tensor %s\n", __func__, t->name);
1159 free_buffers(buffers, n_buffers);
1160 return false;
1161 }
1162 }
1163
1164 return true;
1165}
1166
1167static ggml_backend_buffer_t ggml_backend_alloc_ctx_tensors_from_buft_impl(
1168 struct ggml_context * ctx, ggml_backend_buffer_type_t buft, size_t * nbytes_total, bool no_alloc) {

Calls 7

ggml_backend_buft_nameFunction · 0.85
free_buffersFunction · 0.85
ggml_tallocr_newFunction · 0.85
ggml_get_next_tensorFunction · 0.85
ggml_tallocr_allocFunction · 0.85
ggml_backend_view_initFunction · 0.85

Tested by

no test coverage detected