diff options
author | Howard Su <howard0su@gmail.com> | 2023-07-11 22:37:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-11 22:37:01 +0800 |
commit | 2347463201a9f4159ae95b737e1544dd300569c8 (patch) | |
tree | 48983fbda7eb96a08121059615ab7b21e084d2d7 /llama-util.h | |
parent | bbef28218fe827265716b66977719b9ee2b21165 (diff) |
Support using mmap when applying LoRA (#2095)
* Support using mmap when applying LoRA
* Fix Linux
* Update comment to reflect the support lora with mmap
Diffstat (limited to 'llama-util.h')
-rw-r--r-- | llama-util.h | 6 |
1 files changed, 3 insertions, 3 deletions
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); |