开发者生态
morning
Apple Silicon 和 macOS VM:使用 Llama.cpp 将 LLM 推理速度提高 11–16 倍
2026-08-12
1 阅读
约7分钟阅读
frabonacci
字号:
Apple Silicon 和 macOS VM:使用 llama.cpp 将 LLM 推理速度提高 11–16 倍 由 Francesco Bonacci 和 Johnny Franks 于 2026 年 8 月 11 日发布 如果您从一开始就关注 Cua,您可能还记得它是从我们的 macOS 虚拟化堆栈 Lume 的 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 VM 来宾中提供可用的图形和良好的 LLM 性能。 VM 继续使用 Apple 提供的虚拟 GPU。我们的工作揭示了该设备上更新的 Metal 路径,并缩小了部分实际差距。在 M1 Ultra 上,通过 llama.cpp 运行的 TinyLlama 1.1B 处理提示的速度比同一库存虚拟机中相同工作负载的速度快 11.08 倍,生成令牌的速度也快 16.36 倍。及时处理达到了裸机结果的 98%。包含源代码、构建脚本、功能探测和原始基准日志,以便您可以检查和重现结果。我们使用 Google 今年发布的 6.98 GB 型号 Gemma 4 12B QAT Q4_0 重复了该实验。同一层将提示处理提高了 7.20 倍,将令牌生成提高了 14.54 倍。解锁后的虚拟机达到裸机提示速度99.59%,裸机生成速度94.82%。 macOS VM 内的上限 Apple 的 Virtualization.framework 为 macOS 来宾提供了虚拟图形设备。来宾通过专门构建的 GPU 驱动程序提交 Metal 工作,Apple 的主机堆栈在物理 GPU 上执行它。这种安排就是半虚拟化,其中主机保持对硬件的控制,而来宾使用虚拟化感知设备。这与基于 QEMU 和 KVM 构建的其他虚拟化堆栈不同,后者可以使用不同的架构。在 x86 Linux 主机上,VFIO 可以通过 IOMMU 将兼容的物理 PCI 设备或硬件功能分配给 VM,从而使来宾能够直接访问该设备。这就是通常所说的 GPU 直通模型。在我们库存的 Tahoe VM 中,半虚拟化设备报告大致为 Apple 5 时代系列、32 KB 最大线程组内存以及 SIMD 组矩阵支持不可用。现代 Metal 软件使用这些答案来选择内核,因此 llama.cpp 采取了较慢的路径,即使设备可以执行较新的内核。 Apple 通过 GPU 系列和功能表记录 GPU 功能,并建议在运行时查询设备。这使得报告的能力边界变得重要:应用程序正在完全按照平台告诉它们的方式进行操作。解决方案:进程范围内的 Metal 功能垫片 我们构建了一个小型 Metal 功能垫片(插入应用程序和 API 之间的兼容层),该垫片在一个来宾进程内运行。它拦截选定的 Metal 功能查询并更改返回到该流程的答案。 Metal 应用程序使用这些答案来选择内核,因此返回测试的 Apple 系列和线程组内存值可以让 llama.cpp 选择其较新的 GPU 路径。对于我们测试的配置文件,垫片:答案支持家庭:通过 Apple family 9 (1009);并将报告的最大线程组内存从 32 KB 提高到 64 KB。这足以让测试的 llama.cpp 构建选择较新的 SIMD 组缩减、SIMD 组矩阵和 bfloat16 路径: Capability Stock guest 测试的配置文件supportsFamily:1009 false true SIMD 组矩阵关闭 SIMD 组缩减关闭 bfloat16 关闭最大线程组内存 32 KB 64 KB 测试的配置文件更改了两个报告值:Apple 系列答案和线程组内存限制。 Common、Mac、Metal 和工作集大小值在基准测试期间保持其库存设置。我们删除了原始研究钩子的私有特征配置文件钩子、时钟和定时插入、网格替换、光线跟踪覆盖、参数布局保护和管道编译回退。其来源小到足以进行审计,并且格式错误或丢失的配置使流程保持在其库存能力路径上。工作负载保留在 Apple 的 Virtualization.framework 图形路径上,并在主机的 Apple GPU 上执行。功能更改的范围仅限于注入的来宾进程。物理 GPU 分配、原始 PCI 或 VFIO 直通以及内核更改位于此机制之外。一个被举报的家庭描述了我们测试所涵盖的路径;每个额外的 Metal API 都需要单独的验证
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱