mmap
一种将文件映射到进程地址空间的技术,使磁盘数据可像内存一样访问,常用于向量数据库的磁盘存储方案以降低延迟。
时间轴 (近 90 天)
专家换入换出的常见实现包括用 mmap 将权重文件映射为虚拟内存由操作系统按需调页,或自行维护专家缓存并做 LRU 淘汰。
在标准llama.cpp中加载68GB MoE到12GB VRAM+16GB RAM,每token约产生1500次主要页面错误,生成速度只有1.47 tok/s。
若智能体运行在不同进程中,使用共享内存映射(如mmap)进行通信需要配合同步原语,否则会引入数据竞争和未定义行为。
当模型大小达到物理内存的两倍左右时,基于 mmap 的推理方案会因'缺页风暴'而崩溃,操作系统在盲目调度页面,推理卡在磁盘 I/O 上。
llama.cpp默认使用mmap加载GGUF模型,通过major page fault从SSD按需加载页面到Linux页缓存。
内存映射文件(mmap)是操作系统提供的一种将文件内容直接映射到进程地址空间的机制,Lucene、RocksDB等存储引擎都大量使用mmap
内存映射文件技术允许操作系统将磁盘文件直接映射到进程虚拟地址空间,在macOS上对应的系统调用是mmap()
llama.cpp 会先将模型存入内存,再从内存复制到显存,这源于操作系统的内存映射(mmap)机制
全部知识事实 (8)
专家换入换出的常见实现包括用 mmap 将权重文件映射为虚拟内存由操作系统按需调页,或自行维护专家缓存并做 LRU 淘汰。
50%待验证在标准llama.cpp中加载68GB MoE到12GB VRAM+16GB RAM,每token约产生1500次主要页面错误,生成速度只有1.47 tok/s。
50%待验证若智能体运行在不同进程中,使用共享内存映射(如mmap)进行通信需要配合同步原语,否则会引入数据竞争和未定义行为。
50%待验证当模型大小达到物理内存的两倍左右时,基于 mmap 的推理方案会因'缺页风暴'而崩溃,操作系统在盲目调度页面,推理卡在磁盘 I/O 上。
50%待验证llama.cpp默认使用mmap加载GGUF模型,通过major page fault从SSD按需加载页面到Linux页缓存。
50%待验证内存映射文件(mmap)是操作系统提供的一种将文件内容直接映射到进程地址空间的机制,Lucene、RocksDB等存储引擎都大量使用mmap
50%待验证内存映射文件技术允许操作系统将磁盘文件直接映射到进程虚拟地址空间,在macOS上对应的系统调用是mmap()
50%待验证llama.cpp 会先将模型存入内存,再从内存复制到显存,这源于操作系统的内存映射(mmap)机制
50%