win32 : limit prefetch size to the file size

This commit is contained in:
slaren 2023-12-22 00:09:29 +01:00
parent bffb9a7847
commit ab42a33018

View file

@ -965,7 +965,7 @@ struct llama_mmap {
// advise the kernel to preload the mapped memory // advise the kernel to preload the mapped memory
WIN32_MEMORY_RANGE_ENTRY range; WIN32_MEMORY_RANGE_ENTRY range;
range.VirtualAddress = addr; range.VirtualAddress = addr;
range.NumberOfBytes = (SIZE_T) prefetch; range.NumberOfBytes = (SIZE_T) std::min(size, prefetch);
if (!pPrefetchVirtualMemory(GetCurrentProcess(), 1, &range, 0)) { if (!pPrefetchVirtualMemory(GetCurrentProcess(), 1, &range, 0)) {
LLAMA_LOG_WARN("warning: PrefetchVirtualMemory failed: %s\n", LLAMA_LOG_WARN("warning: PrefetchVirtualMemory failed: %s\n",
llama_format_win_err(GetLastError()).c_str()); llama_format_win_err(GetLastError()).c_str());
@ -998,7 +998,6 @@ struct llama_mmap {
} }
void unmap_fragment(size_t first, size_t last) { void unmap_fragment(size_t first, size_t last) {
// not supported
GGML_UNUSED(first); GGML_UNUSED(first);
GGML_UNUSED(last); GGML_UNUSED(last);