Skip to content

Commit c14e0d2

Browse files
committed
ggml : always allocate buffers with size multiple of GGML_MEM_ALIGN
1 parent 723dac5 commit c14e0d2

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

ggml.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3054,9 +3054,11 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
30543054
return NULL;
30553055
}
30563056

3057+
const size_t mem_size = (params.mem_size + GGML_MEM_ALIGN - 1) & ~(GGML_MEM_ALIGN - 1);
3058+
30573059
*ctx = (struct ggml_context) {
3058-
/*.mem_size =*/ params.mem_size,
3059-
/*.mem_buffer =*/ params.mem_buffer ? params.mem_buffer : GGML_ALIGNED_MALLOC(params.mem_size),
3060+
/*.mem_size =*/ mem_size,
3061+
/*.mem_buffer =*/ params.mem_buffer ? params.mem_buffer : GGML_ALIGNED_MALLOC(mem_size),
30603062
/*.mem_buffer_owned =*/ params.mem_buffer ? false : true,
30613063
/*.no_alloc =*/ params.no_alloc,
30623064
/*.n_objects =*/ 0,
@@ -3066,7 +3068,7 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
30663068
/*.scratch_save =*/ { 0, 0, NULL, },
30673069
};
30683070

3069-
GGML_ASSERT(ctx->mem_buffer != NULL); // check for allocation failure
3071+
GGML_ASSERT(ctx->mem_buffer != NULL);
30703072

30713073
ggml_assert_aligned(ctx->mem_buffer);
30723074

0 commit comments

Comments
 (0)