返回

文章详情

Apple Silicon 和 macOS 虚拟机:使用 llama.cpp 实现 11–16 倍更快的 LLM 推理

Hacker News2026年8月11日 14:50

Apple Silicon 和 macOS 虚拟机:使用 llama.cpp 实现 11–16 倍更快的 LLM 推理,发表于 2026 年 8 月 11 日,作者 Francesco Bonacci 和 Johnny Franks。如果你从一开始就关注 Cua,你可能还记得它是通过 Lume,我们的 macOS 虚拟化栈的 Show HN 发布而开始的。今天,我们分享了一个更广泛努力的第一个成果,旨在将该 Virtualization.framework 基础连接到 Cua Driver 背后的本地计算机使用环境和 Cua Cloud 和 Fleets 背后的基础设施:一个小的进程作用域兼容层,解锁了 macOS 客户端中的新 Metal 快速路径。我们今天以与 Lume 和 Cua 相同的宽松许可证发布此工作,其他人可以复制结果,帮助映射哪些 Apple Silicon 芯片,macOS 版本和 Metal 工作负载受益。Apple Vz 用户在其他地方也遇到了这些限制。Tart,基于 Apple 的 Virtualization.framework 的另一个显著 CLI,提出了一个公开的 "macOS 客户端中没有 GPU 直通?" 问题,询问该框架是否可以在 macOS 虚拟机客户端中提供可用的图形和良好的 LLM 性能。虚拟机继续使用 Apple 提供的虚拟 GPU。我们的工作在该设备上暴露了更新的 Metal 路径,并缩小了实际差距。在 M1 Ultra 上,在 llama.cpp 上运行的 TinyLlama 1.1B 处理提示的速度比同一工作负载在相同的标准虚拟机中快 11.08 倍,生成令牌的速度快 16.36 倍。提示处理达到了我们光机结果的 98%。源代码、构建脚本、能力探测和原始基准日志均包含在内,以便您可以检查和复制结果。我们还对 Google 的 Gemma 4 12B QAT Q4_0(今年发布的 6.98 GB 模型)进行了实验。相同的层使提示处理速度提高了 7.20 倍,令牌生成速度提高了 14.54 倍。解锁的虚拟机达到了光机提示速度的 99.59% 和光机生成速度的 94.82%。macOS 虚拟机中的界限 Apple 的 Virtualization.framework 为 macOS 客户端提供了一个虚拟图形设备。客户端通过一个专用的 GPU 驱动程序提交 Metal 工作,Apple 的主机栈在物理 GPU 上执行它。这种安排是半虚拟化,在这种情况下,主机控制硬件,客户端使用虚拟化感知设备。这与基于 QEMU 和 KVM 的其他虚拟化栈不同,后者可以使用不同的架构。在 x86 Linux 主机上,VFIO 可以通过 IOMMU 将兼容的物理 PCI 设备或硬件功能分配给虚拟机,给予客户端对该设备的直接访问。这通常是 GPU 直通所指的模型。在我们的标准 Tahoe 虚拟机中,半虚拟化设备报告大约是 Apple 5 时代的系列,最大线程组内存为 32 KB,SIMD-group 矩阵支持不可用。现代 Metal 软件使用这些答案来选择内核,因此,即使设备可以执行更新的内核,llama.cpp 也走了较慢的路径。Apple 通过 GPU 系列和功能表来记录 GPU 能力,并建议在运行时查询设备。这使得报告的能力边界变得重要:应用程序完全按照平台告诉它们所做的事情运行。解决方案:一个进程作用域的 Metal 能力兼容层 我们构建了一个小的 Metal 能力兼容层(一个插入应用程序和 API 之间的兼容层),它在一个客户端进程内部运行。它拦截所选的 Metal 能力查询,并更改返回给该进程的答案。Metal 应用程序使用这些答案来选择内核,因此返回测试的 Apple 系列和线程组内存值使得 llama.cpp 可以选择其更新的 GPU 路径。对于我们测试的配置,兼容层:通过 Apple 系列 9(1009)来回答 supportsFamily;并将报告的最大线程组内存从 32 KB 提高到 64 KB。这足以使测试的 llama.cpp 构建选择更新的 SIMD-group 减少、SIMD-group 矩阵和 bfloat16 路径:能力 股票客户端 测试配置 支持系列:1009 false true SIMD-group 矩阵 off on SIMD-group 减少 off on bfloat16 off on 最大线程组内存 32 KB 64 KB 测试配置更改了两个报告的值:Apple 系列答案和线程组内存限制。常见、Mac、Metal 和工作集大小的值在基准测试期间保持其标准设置。我们删除了原始研究挂钩的私有功能配置挂钩、时钟和计时插入、网格替换、光线追踪覆盖、参数布局保护和管道编译降级。它的源代码足够小以便审核,格式错误或缺失的配置将使进程保持在其标准能力路径上。工作负载保持在 Apple 的 Virtualization.framework 图形路径上,并在主机的 Apple GPU 上执行。能力变化的范围限于注入的客户端进程。物理 GPU 分配、原始 PCI 或 VFIO 直通和内核更改超出了此机制。报告的系列描述了我们测试所覆盖的路径;每个额外的 Metal API 需要单独验证。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡