随着大语言模型LLM和各种生成式 AI 的爆发越来越多开发者开始用自己的 Mac 跑模型。如果你也是其中一员你一定在代码里见过devicemps这样的设置。到底什么是 MPS为什么跑 AI 模型时Mac 用户一定要用它M3、M4 这些新款芯片跑模型到底行不行今天我们就来彻底讲透苹果的这个 AI 加速杀手锏。1. MPS 到底是什么MPS全称是Metal Performance Shaders。简单来说它是苹果在 macOS 和 iOS 上推出的 GPU 计算框架建立在苹果自家的图形 API ——Metal之上。你可以把它和 NVIDIA 的 CUDA 对标理解。它们本质上做的是同一件事让程序把庞大的矩阵运算任务丢给算力更强的 GPU 去跑而不是让 CPU 苦哈哈地单干。我们可以这样类比三大平台的深度学习 GPU 后端CUDA←→ NVIDIA GPUROCm←→ AMD GPUMPS←→ Apple Silicon GPU (M1/M2/M3/M4 系列)从 2022 年 5 月发布的 PyTorch 1.12 开始官方正式内置了 MPS 后端。这意味着PyTorch 能将张量运算直接“翻译”成 Metal Kernel顺滑地跑在 Apple SiliconM 系列芯片的统一内存 GPU 上。2. M4 支持 MPS 吗完全支持不仅是 M4所有 Apple Silicon包括 M1/M2/M3/M4涵盖基础版、Pro、Max 和 Ultra 全系列都原生支持 Metal因此都能畅享 PyTorch 的 MPS 后端加速。那么新款芯片有什么优势M4 相比前代在 GPU 上不仅增加了硬件光追单元整体浮点运算性能也有了肉眼可见的提升。如果你在 M4 上运行 LaMa一种基于深度学习的图像修复/去水印卷积网络其推理速度会明显甩开纯 CPU 几条街。我们可以通过一段简单的代码来验证你的 Mac 环境是否已经就绪importtorchprint(fPyTorch Version:{torch.__version__})print(fMPS available:{torch.backends.mps.is_available()})print(fMPS built:{torch.backends.mps.is_built()})如果输出都是True恭喜你你的 Mac 已经是一台合格的 AI 工作站了3. MPS 的三大核心细节与优势为什么要在 Mac 上用 MPS它到底强在哪总结下来有三个关键点优势一统一内存Unified Memory的“零拷贝”奇迹这可能是 Apple Silicon 在 AI 推理上最独特的优势。在传统的 PC 架构中比如 Intel CPU NVIDIA 显卡CPU 和 GPU 有各自独立的内存显存。你要用 CUDA 计算就必须把数据从 CPU 内存通过 PCIe 总线复制到 GPU 显存算完再复制回来。这个传输开销非常大。而在 Mac 的 M 系列芯片上CPU 和 GPU 共享同一块物理内存。这就意味着像 LaMa 模型这种做小 patch 推理只有几十 KB 的输入几乎是零拷贝开销能把延迟压到极低。假设你的 Mac 是 16GB 统一内存由于模型只有 ~200MB对 LaMa 来说不仅内存绰绰有余而且数据流转效率奇高注意事项不是所有算子都支持目前 PyTorch 的 MPS 后端算子覆盖率大约在95%左右。这意味着在极少数情况下你会遇到个别不被支持的算子。解决办法如果遇到不支持的算子你只需要设置一个环境变量让它优雅地 Fallback回退到 CPU 计算export PYTORCH_ENABLE_MPS_FALLBACK1值得一提的是像 LaMa 的核心网络 FFC 用到的torch.fft快速傅里叶变换在较新的 PyTorch≥ 2.1版本中已经完美支持 MPS 了。优势三实打实的性能飞跃为了让大家对性能有直观的感受我们来看一组同一张 512×512 图片 LaMa 推理的经验数据对比M3/M4 CPU 端跑约600 msM3/M4 MPS 加速跑约80–150 ms性能提速高达 5到8 倍(作为参考) 顶配台式机 RTX 3090 CUDA约 25 ms如果你是在处理视频或长序列任务比如 175×65 的小尺寸 Patch 修复总计 10177 帧MPS 单帧只需要 30-80 毫秒大概6到14分钟就能跑完全片如果没有 MPS 加速这个时间恐怕要按小时计算了。总结苹果通过 Apple Silicon 的统一内存架构和不断完善的 Metal/MPS 生态已经把 Mac 打造成了一台非常优秀的轻量级 AI 开发与推理终端。下次在 Mac 上跑大模型或运行各种开源 AI 工具时别忘了检查一下是否开启了devicemps让你的 M 系列芯片彻底火力全开吧