MPS
Metal Performance Shaders
Mac 上的 CUDA 平替 · Apple GPU 跑 AI 的桥梁
- 定义
- MPS(Metal Performance Shaders)是AI领域的专业术语。MPS(Metal Performance Shaders)是 Apple 基于 Metal 图形 API 构建的 GPU 加速计算框架。
最后更新:2026-06-18
什么是MPS?
MPS(Metal Performance Shaders)是 Apple 基于 Metal 图形 API 构建的 GPU 加速计算框架。在 AI 领域,MPS 是 Mac 用户利用 Apple Silicon(M1/M2/M3/M4)GPU 进行模型训练和推理的关键通道——PyTorch 的 `mps` 设备后端让开发者在 Mac 上获得类似 CUDA 的 GPU 加速体验。
- Apple Silicon GPU 加速的核心框架
- PyTorch 通过 device='mps' 支持 Mac GPU 加速
- 训练和推理速度相比 CPU 可提升 5-20 倍
MPS详解
MPS 最初是为图形渲染和图像处理设计的高性能 shader 库,后来扩展为通用 GPU 计算框架。2022 年 PyTorch 1.12 正式引入 MPS 后端,开发者只需将张量和模型放到 `torch.device('mps')` 上即可利用 Apple GPU。MPS 相对 CUDA 的局限:算子覆盖不完整(部分操作会 fallback 到 CPU)、不支持多 GPU、社区生态和优化深度不及 NVIDIA。但对 Mac 用户来说,MPS 是本地跑模型的唯一 GPU 加速选项,尤其适合中小模型的微调、推理和开发调试。Apple M 系列芯片的统一内存架构(CPU/GPU 共享内存)也为大模型推理提供了独特优势——显存不再是瓶颈。
MPS的应用场景
正式定义
Apple 基于 Metal API 构建的 GPU 加速计算框架,为机器学习提供 Apple Silicon GPU 上的训练和推理能力
应用场景
- Mac 上用 PyTorch 进行模型训练和推理加速
- 本地运行 Stable Diffusion、LLaMA 等模型
- 开发调试阶段的 GPU 加速(无需云端 NVIDIA GPU)
- 利用统一内存跑超出传统显存限制的大模型
常见误区
- MPS 不等于 CUDA——算子覆盖和优化深度仍有差距
- MPS 不只是推理——也支持训练,但大规模训练仍推荐 NVIDIA
- 统一内存不等于无限显存——带宽和计算核心数仍是瓶颈
实际案例
📌 PyTorch MPS 加速
在 Mac 上使用 `model.to('mps')` 和 `tensor.to('mps')` 即可将计算从 CPU 转移到 Apple GPU,典型场景下推理速度提升 5-15 倍。
📌 MLX + MPS 生态
Apple 的 MLX 框架底层基于 Metal/MPS,专为 Apple Silicon 优化。配合 Hugging Face 模型可在 Mac 上高效运行 LLM 推理。
关于MPS的常见问题
- MPS 是什么
- Metal Performance Shaders,Apple 的 GPU 加速框架。在 AI 场景中,它让 Mac 用户通过 PyTorch 的 mps 后端利用 Apple Silicon GPU 加速训练和推理。
- MPS 和 CUDA 有什么区别
- CUDA 是 NVIDIA GPU 专用,生态成熟、算子完整;MPS 是 Apple GPU 专用,算子覆盖仍在追赶。Mac 用户本地跑模型只能用 MPS,大规模训练仍推荐 CUDA。
- 怎么在 PyTorch 中使用 MPS
- 确保 macOS 12.3+ 和 PyTorch 1.12+,然后使用 torch.device('mps') 将模型和数据移到 GPU:model.to('mps')。