ggml: add new member in GGML's internal data structure

This commit is contained in:
zhou.weiguo 2024-04-22 07:14:19 +08:00
parent 5cf5e7d490
commit 9cba545fbf
No known key found for this signature in database
GPG key ID: 952EA81D18BB2FA8
2 changed files with 10 additions and 1 deletions

6
ggml.c
View file

@ -2200,6 +2200,7 @@ struct ggml_context {
bool mem_buffer_owned;
bool no_alloc;
bool no_alloc_save; // this is used to save the no_alloc state when using scratch buffers
bool use_hwaccel;
int n_objects;
@ -2759,6 +2760,7 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
/*.mem_buffer_owned =*/ params.mem_buffer ? false : true,
/*.no_alloc =*/ params.no_alloc,
/*.no_alloc_save =*/ params.no_alloc,
/*.use_hwaccel =*/ params.use_hwaccel,
/*.n_objects =*/ 0,
/*.objects_begin =*/ NULL,
/*.objects_end =*/ NULL,
@ -2990,9 +2992,13 @@ static struct ggml_tensor * ggml_new_tensor_impl(
/*.data =*/ obj_alloc_size > 0 ? (void *)(result + 1) : data,
/*.name =*/ { 0 },
/*.extra =*/ NULL,
/*.rank =*/ n_dims,
/*.padding =*/ { 0 },
};
if (ctx->use_hwaccel)
result->backend = GGML_BACKEND_TYPE_GPU;
// TODO: this should not be needed as long as we don't rely on aligned SIMD loads
//ggml_assert_aligned(result->data);

5
ggml.h
View file

@ -591,7 +591,9 @@ extern "C" {
void * extra; // extra things e.g. for ggml-cuda.cu
char padding[8];
int32_t rank;
char padding[20];
};
static const size_t GGML_TENSOR_SIZE = sizeof(struct ggml_tensor);
@ -657,6 +659,7 @@ extern "C" {
size_t mem_size; // bytes
void * mem_buffer; // if NULL, memory will be allocated internally
bool no_alloc; // don't allocate memory for the tensor data
bool use_hwaccel;
};