Skip to content

Commit

Permalink
ggml : posixify pagesize (ggerganov#1251)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
przemoc committed Sep 6, 2023
1 parent a36c1a0 commit 2e52002
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions ggml-metal.m
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion ggml.c
Expand Up @@ -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
Expand Down

0 comments on commit 2e52002

Please sign in to comment.