Skip to content

Commit 935f623

Browse files
slarenjordankanter
authored andcommitted
llama : fix mlock with no-mmap with Metal (ggml-org#5025)
1 parent 2d09eca commit 935f623

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

llama.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1599,7 +1599,7 @@ struct llama_model {
15991599
std::unique_ptr<llama_mmap> mapping;
16001600

16011601
// objects representing data potentially being locked in memory
1602-
llama_mlock mlock_buf;
1602+
std::vector<std::unique_ptr<llama_mlock>> mlock_bufs;
16031603
llama_mlock mlock_mmap;
16041604

16051605
// for quantize-stats only
@@ -3815,8 +3815,10 @@ static bool llm_load_tensors(
38153815
else {
38163816
buf = ggml_backend_alloc_ctx_tensors_from_buft(ctx, buft);
38173817
if (buf != nullptr && use_mlock && ggml_backend_buffer_is_host(buf)) {
3818-
model.mlock_buf.init (ggml_backend_buffer_get_base(buf));
3819-
model.mlock_buf.grow_to(ggml_backend_buffer_get_size(buf));
3818+
model.mlock_bufs.emplace_back(new llama_mlock);
3819+
auto & mlock_buf = model.mlock_bufs.back();
3820+
mlock_buf->init (ggml_backend_buffer_get_base(buf));
3821+
mlock_buf->grow_to(ggml_backend_buffer_get_size(buf));
38203822
}
38213823
}
38223824
if (buf == nullptr) {

0 commit comments

Comments
 (0)