]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
Support calling mlock() on loaded model data on Linux and macOS (#453)
authorcomex <redacted>
Fri, 24 Mar 2023 15:19:05 +0000 (08:19 -0700)
committerGitHub <redacted>
Fri, 24 Mar 2023 15:19:05 +0000 (17:19 +0200)
commit563cdc391dde140f1084d1012234e8e6f57f881f
tree64053534b3100c4399ec33cae763c882c1f33874
parent8d4a855c241ecb0f3ddc03447fe56002ebf27a37
Support calling mlock() on loaded model data on Linux and macOS (#453)

* Support calling mlock() on loaded model data on Linux and macOS

This is enabled by a new --mlock command line option.

Using mlock() disables swapping and memory compression for the model
data.  Doing so can be useful on systems where the model takes up a
large fraction of system RAM.  In my experience, macOS is quite eager to
start compressing llama.cpp's memory, which then makes it halt for a few
seconds while it decompresses, even with a model that uses "only" 25GB
out of 32GB.

Of course, this comes at the cost of forcing the system to swap or
compress other processes' memory instead, so it needs to be used with
care and shouldn't be enabled by default.

In theory it should be possible to support this on Windows as well using
VirtualLock(), but I'm not much of a Windows user.

* Update llama.cpp

---------

Co-authored-by: Georgi Gerganov <redacted>
ggml.c
ggml.h
llama.cpp
llama.h
main.cpp
utils.cpp
utils.h