秒级加载 70GB 模型?详解 llama.cpp 极致“零拷贝”背后的系统级优化 📅 2026/7/6 5:12:04 llama.cpp 用三个 RAII 类(llama_file/llama_mmap/llama_mlock)把模型加载从"读文件到内存"变成"让内核把文件当内存用"。mmap()本身不拷贝一字节,真正的 I/O 由 page fault 按需触发;madvise(MADV_WILLNEED)+MAP_POPULATE控制预取节奏;mlock()/VirtualLock()阻止已加载的权重被内核换出。本文从llama-mmap.cpp的每一行出发,拆解三个类在 Linux/macOS/Windows 上的分支实现、NUMA 感知逻辑、Direct I/O 降级路径,以及unmap_fragment()的部分卸载机制。从一个反直觉的观察说起// llama-mmap.cpp L457addr=mmap(NULL