Skip to content

Commit e00feaf

Browse files
committed
Use aligned_alloc or _aligned_malloc
1 parent c3ac702 commit e00feaf

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

ggml.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2967,7 +2967,12 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
29672967

29682968
*ctx = (struct ggml_context) {
29692969
/*.mem_size =*/ params.mem_size,
2970-
/*.mem_buffer =*/ params.mem_buffer ? params.mem_buffer : malloc(params.mem_size),
2970+
/*.mem_buffer =*/ params.mem_buffer ? params.mem_buffer :
2971+
#if defined(_MSC_VER) || defined(__MINGW32__)
2972+
_aligned_malloc(params.mem_size, GGML_MEM_ALIGN),
2973+
#else
2974+
aligned_alloc(GGML_MEM_ALIGN, params.mem_size),
2975+
#endif
29712976
/*.mem_buffer_owned =*/ params.mem_buffer ? false : true,
29722977
/*.no_alloc =*/ params.no_alloc,
29732978
/*.n_objects =*/ 0,
@@ -3002,7 +3007,11 @@ void ggml_free(struct ggml_context * ctx) {
30023007
__func__, i, ctx->n_objects, ctx->objects_end->offs + ctx->objects_end->size);
30033008

30043009
if (ctx->mem_buffer_owned) {
3010+
#if defined(_MSC_VER) || defined(__MINGW32__)
3011+
_aligned_free(ctx->mem_buffer);
3012+
#else
30053013
free(ctx->mem_buffer);
3014+
#endif
30063015
}
30073016

30083017
found = true;

0 commit comments

Comments
 (0)