From 2347463201a9f4159ae95b737e1544dd300569c8 Mon Sep 17 00:00:00 2001 From: Howard Su Date: Tue, 11 Jul 2023 22:37:01 +0800 Subject: Support using mmap when applying LoRA (#2095) * Support using mmap when applying LoRA * Fix Linux * Update comment to reflect the support lora with mmap --- llama-util.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'llama-util.h') diff --git a/llama-util.h b/llama-util.h index 042ebe4..43b6f05 100644 --- a/llama-util.h +++ b/llama-util.h @@ -175,13 +175,13 @@ struct llama_mmap { llama_mmap(struct llama_file * file, size_t prefetch = (size_t) -1 /* -1 = max value */, bool numa = false) { size = file->size; int fd = fileno(file->fp); - int flags = MAP_SHARED; + int flags = MAP_PRIVATE; // prefetch/readahead impairs performance on NUMA systems if (numa) { prefetch = 0; } #ifdef __linux__ if (prefetch) { flags |= MAP_POPULATE; } #endif - addr = mmap(NULL, file->size, PROT_READ, flags, fd, 0); + addr = mmap(NULL, file->size, PROT_READ | PROT_WRITE, flags, fd, 0); if (addr == MAP_FAILED) { throw std::runtime_error(format("mmap failed: %s", strerror(errno))); } @@ -223,7 +223,7 @@ struct llama_mmap { throw std::runtime_error(format("CreateFileMappingA failed: %s", llama_format_win_err(error).c_str())); } - addr = MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0); + addr = MapViewOfFile(hMapping, FILE_MAP_COPY, 0, 0, 0); error = GetLastError(); CloseHandle(hMapping); -- cgit v1.2.3