]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
ggml : posixify pagesize (#1251)
authorPrzemysław Pawełczyk <redacted>
Wed, 6 Sep 2023 15:19:36 +0000 (17:19 +0200)
committerGitHub <redacted>
Wed, 6 Sep 2023 15:19:36 +0000 (18:19 +0300)
* ggml : use sysconf(_SC_PAGESIZE) instead of getpagesize() derived from BSD

sed -i 's,getpagesize(),sysconf(_SC_PAGESIZE),g' ggml.c

* metal : use sysconf(_SC_PAGESIZE) instead of getpagesize() derived from BSD

sed -i 's,getpagesize(),sysconf(_SC_PAGESIZE),g' ggml-metal.m

ggml-metal.m
ggml.c

index d0d23442eab5d83b74768d0b74bef674861d5e06..521ca180f085be10a3972d3a2e3ea386556a1bdb 100644 (file)
@@ -327,7 +327,7 @@ void ggml_metal_free(struct ggml_metal_context * ctx) {
 
 void * ggml_metal_host_malloc(size_t n) {
     void * data = NULL;
-    const int result = posix_memalign((void **) &data, getpagesize(), n);
+    const int result = posix_memalign((void **) &data, sysconf(_SC_PAGESIZE), n);
     if (result != 0) {
         metal_printf("%s: error: posix_memalign failed\n", __func__);
         return NULL;
@@ -401,7 +401,7 @@ bool ggml_metal_add_buffer(
             }
         }
 
-        const size_t size_page = getpagesize();
+        const size_t size_page = sysconf(_SC_PAGESIZE);
 
         size_t size_aligned = size;
         if ((size_aligned % size_page) != 0) {
diff --git a/ggml.c b/ggml.c
index 63a22223a4a003699527f813a617d3328bef9c17..eac00bbd672cb66b21b07a4c3ac8d32c607cc50c 100644 (file)
--- a/ggml.c
+++ b/ggml.c
@@ -198,7 +198,7 @@ typedef void * thread_ret_t;
 inline static void * ggml_aligned_malloc(size_t size) {
     void * aligned_memory = NULL;
 #ifdef GGML_USE_METAL
-    int result = posix_memalign(&aligned_memory, getpagesize(), size);
+    int result = posix_memalign(&aligned_memory, sysconf(_SC_PAGESIZE), size);
 #else
     int result = posix_memalign(&aligned_memory, GGML_MEM_ALIGN, size);
 #endif