Cua 在 macOS 虚拟机中用 shim 提升 llama.cpp 推理速度 11–16×
Cua 团队在 macOS 虚拟机内为单个进程插入了一个 Metal 能力兼容层(capability shim),让 llama.cpp 选择更新的 Metal 内核,从而显著加速推理。作者在 M1 Ultra 上测试,TinyLlama 1.1B 在解锁的 VM 中提示处理速度提升 11.08×、生成速度提升 16.36×;对 Gemma 4 12B 和 Muse Glimmer 30B 的测试也分别有多倍加速。对开发者和用户来说,这意味着在不改变宿主 GPU 执行路径的前提下,可通过进程范围的能力伪装大幅接近裸机性能。
Cua 的作者发布了一个研究性工具:在 macOS 客户机进程内注入一个小的 Metal 能力兼容层(shim),拦截并修改该进程查询到的 GPU 能力回答。macOS 的 Virtualization.framework 为来宾提供的是一个由宿主 Apple GPU 执行的虚拟图形设备,来宾会根据设备报告的能力选择 Metal 内核。原先在标准 Tahoe VM 中,这个虚拟设备报告的能力偏保守,导致像 llama.cpp 这样的程序走了较慢的 GPU 路径。
兼容层对选定的能力查询返回修改后的值,具体包括将 supportsFamily 的返回覆盖到 Apple family 9(1009)并将报告的最大 threadgroup memory 从 32 KB 提升到 64 KB。借此,测试版的 llama.cpp 能选择 SIMD-group reduction、SIMD-group matrix 和 bfloat16 等较新的路径。兼容层仅作用于注入的来宾进程,图形工作仍走 Virtualization.framework 并在宿主的 Apple GPU 上执行;物理 GPU 直通(VFIO、PCI 直通)和内核层改变不在此机制范围内。
团队给出了多组基准数据。在一台配备 48 核 GPU 的 M1 Ultra(宿主 macOS 26.6.1,来宾 Tahoe 镜像 macOS 26.5.2,8 vCPU,16 GiB,Lume 0.5.1)上,使用 llama.cpp b10167 和 TinyLlama 1.1B 模型,解锁后的 VM 在提示处理上比同一标准 VM 快 11.08×,在生成 token 上快 16.36×,提示处理已达到裸机结果的 98%。对 Google 的 Gemma 4 12B QAT Q4_0 模型,提示处理提升 7.20×,生成提升 14.54×,解锁 VM 的提示速度达到裸机的 99.59%,生成速度为裸机的 94.82%。在 64 GiB 来宾上测试 Meta 的 Muse Glimmer 30B Q4_K-M,解锁 VM 在 512-token 提示上处理速度提升 7.55×,生成 128 token 提升 8.87×。作者随发布提供了源码、构建脚本、能力探测和原始基准日志以供复现和检验。
本文由程序自动抓取公开报道,经 AI 筛选与改写生成,未经人工逐条核实,事实以原文为准。