From 2063b86893e676e2e16b3c9bc4d3f61a1c986f37 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 10 Jan 2024 11:02:58 +0200 Subject: [PATCH] metal : page align the data ptr ggml-ci --- ggml-metal.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ggml-metal.m b/ggml-metal.m index 1e7ed6bb8b756d..7045feb05254ee 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -2656,6 +2656,14 @@ ggml_backend_buffer_t ggml_backend_metal_buffer_from_ptr(void * data, size_t siz ctx->n_buffers = 0; const size_t size_page = sysconf(_SC_PAGESIZE); + + // page-align the data ptr + { + void * data_aligned = (void *) ((uintptr_t) data & ~(size_page - 1)); + size += (uintptr_t) data - (uintptr_t) data_aligned; + data = data_aligned; + } + size_t size_aligned = size; if ((size_aligned % size_page) != 0) { size_aligned += (size_page - (size_aligned % size_page));