From 21f7ca2fb3bd8e60355e00cf5bca4e26b5a125da Mon Sep 17 00:00:00 2001 From: Aleksei Nikiforov Date: Thu, 9 Jan 2025 14:59:22 +0100 Subject: [PATCH] Disable mmap on s390x Usually downloaded models are little-endian and byteswapping is needed. Byteswapping is not implemented for mmap model loading. --- src/llama-mmap.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/llama-mmap.cpp b/src/llama-mmap.cpp index b716630a8..ce33b43b1 100644 --- a/src/llama-mmap.cpp +++ b/src/llama-mmap.cpp @@ -441,7 +441,8 @@ void * llama_mmap::addr() const { return pimpl->addr; } void llama_mmap::unmap_fragment(size_t first, size_t last) { pimpl->unmap_fragment(first, last); } -#if defined(_POSIX_MEMLOCK_RANGE) || defined(_WIN32) +// disable mmap on s390x while it usually loads little-endian models +#if (defined(_POSIX_MEMLOCK_RANGE) && !defined(__s390x__)) || defined(_WIN32) const bool llama_mmap::SUPPORTED = true; #else const bool llama_mmap::SUPPORTED = false;