免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

为什么Mac在AI时代更有性价比?

发布日期:2025-11-19 07:31:46 浏览次数: 1521
作者:我有一计

微信搜一搜,关注“我有一计”

推荐语

Mac在AI时代凭借统一内存架构实现高效能低功耗,是开发者与AI研究者的性价比之选。

核心内容:
1. 统一内存架构如何解决传统计算机架构的IO瓶颈
2. M系列芯片在AI计算中的性能与功耗优势
3. 当前深度学习生态对Mac系统的适配现状

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

引言

最近,换了台 Macbook Pro,把开发环境从 Windows 迁移到了 Mac 上。

本文来详细说明一下,为什么我认为:Mac在AI时代更有性价比。

image.png

统一内存架构

在计算机刚刚诞生时,并没有GPU,所有的计算都在CPU上面执行。

但随着时代发展,计算需求出现了巨大的分化。

一方面,通用任务(系统调度、逻辑判断、流程控制等)依然由 CPU 处理;
另一方面,图形渲染、科学计算、AI 推理等高度并行的工作量暴涨,传统 CPU 再快也难以应对,这种需求推动了 GPU 的产生。

最初的 GPU 只负责图像渲染,但随着 CUDA 等通用计算框架出现,GPU 从“游戏显卡” 转向AI等高性能计算核心。

虽然GPU计算速度很快,但是在传统计算机架构中,各组件完全是割裂的。

下图展示了GPU处理数据时的数据流动情况:

  1. CPU 调度任务(发起 kernel / 指令)
  2. 数据从 系统内存(RAM)通过 PCIe / NVLink 复制到 GPU 显存(VRAM)
  3. GPU 在显存中完成计算
  4. 结果通过 PCIe / NVLink 写回 系统内存
  5. CPU 获取结果或继续下一阶段
image.png

这种分离式架构存在两个问题:

  • 系统处理速度容易受限于主板/内存的IO速度,如果GPU处理速度很快,但数据搬运速度很慢。就会导致GPU利用率低,即大部分时间GPU都在空闲状态。
  • 频繁的IO操作需要更多的能耗,在高性能计算机中,往往需要配置大功率电源来驱动组件和驱动风扇对相关硬件进行散热。

既然IO如此费劲,为什么不直接把内存和显存合二为一呢?

Apple 的工程师想到了这个问题,于是他们在M系列芯片上,提出了统一内存架构,如下图所示:

image.png

Apple 把 CPU、GPU、互联总线(Fabric)、神经引擎(NE)、全部放在一块SoC芯片上。

所有组件共享一块 DRAM(统一共享内存),这样就不需要 CPU 和 GPU 之间的拷贝,可拥有更低延迟、更高带宽。

并且,M系列芯片有着更低功耗,据Apple官方文档[1]显示,M4 芯片的最大功耗为 65W,而 Nvidia GPU的峰值功耗往往是上百W。

这样做有什么缺点,主要有以下两点:

  1. 内存是焊死在芯片上的,这就意味着不像分离式架构那样可以自己插拔式更换内存条。
  2. 一些深度学习相关的生态对新架构可能存在不支持的情况。

但这两个问题放到现在基本不算缺点,因为需要更换内存的情况非常少,开局一步到位就可以了;并且,Pytorch等深度学习框架早已适配Mac系统。

因此,统一内存架构才是抛开历史包袱,更加科学的处理方式,Nvidia 在近两年也开始推出了 BlackWell 之类相似架构的桌面级产品。

image.png

性能分析

性价比分析主要拆成两部分:性能分析和价格分析。

首先看性能,相关资料显示[2],M5 芯片的带宽为153GB/s,而同类型桌面端 RTX 4090 Laptop GPU 的带宽约 576 GB/s,RTX 5090 Laptop GPU 的 896 GB/s[3]。

看上去 Nvidia 的 GPU带宽比 M 芯片高很多,但 Nvidia 的显卡还受到 PCIe 的制约。

普通的笔记本和台式机一般不用 NVLink,数据传输走 PCIe 管道。

不同版本的 PCIe 带宽数据如下[4]:

PCIe 版本
单条 Lane 理论带宽
×16 理论带宽
PCIe 3.0
~1 GB/s
~16 GB/s
PCIe 4.0
~2 GB/s
~32 GB/s
PCIe 5.0
~4 GB/s
~64 GB/s

如果以 PCIe 管道带宽进行衡量,反而 M 芯片的速度要更快。

但注意,实际情况中,带宽会受到各种各样的因素影响,比如CPU温度过高会降频等。

下面看一个实际的对比数据,Up主林亦LYi用 3080Ti 和 M2 Ultra 进行了相同参数的强化学习训练[5],结果表明 M 芯片速度更快且效果更好,比前者有15.3%的速度领先。

image.png

但这并不是绝对说 M芯片比 Nvidia 显卡更快,不同模型、不同算子、训练框架可能都有影响。

Jean-Jerome Levy的测评显示[6],M3/M4 Max 芯片在训练ResNet-50模型时,速度不如 RTX4090,但在推理Llama 7B 模型时,速度比 RTX4090 更快。

image.png

上图的右侧部分进一步展现了能耗对比,M 芯片训练和推理都不到100W,而 RTX4090 在300W以上。

Up主极客湾单独对 M5 芯片进行了测试[7],结果表明 M5 芯片在推理8b参数模型时,吐词速度在25.61Tokens/s左右,M5 的性能比 M4 有20%以上的提升,但逊于 M4 Pro。

image.png

价格分析

常言道:“Apple的内存比金子还贵”,但在AI时代,反而比 Nvidia 更有竞争力。

以笔记本为例,我这台 Macbook pro总内存为24G,开浏览器和一些开发工具、通讯软件,大概占用 10G 左右。

btop查看剩余内存,还有 14G 可供使用。

image.png

如果关闭浏览器,可用内存约为 16G,相比于装配 16G 显存的 Nvidia-4090 笔记本,Macbook 的价格是要更低的。

内存越大,Mac 的性价比越明显,比如 Mac Studio 的最大内存为 512G,而 Nvidia 单卡最大显存 H200 不过 141 G,两者的价格是天壤之别。

因此用 Mac mini/studio 去做分布式训练,不是不可行[8]。

image.png

Mac 跑深度学习

和 CUDA 类似,Mac有一套工具链专门对深度学习等并行计算任务进行优化,主要包含以下三种工具:

  • MPS:macOS 的 CUDA,底层 GPU 计算框架,用于加速深度学习训练
  • MLX:Apple 版 PyTorch,Mac 上训练/推理模型框架
  • Core ML:类似 ONNX/TensorRT,iOS/macOS 部署推理框架

PyTorch 从 1.12 版本,就开始支持 MPS 推理加速。

在 windows 上安装 PyTorch 非常坑,因为默认安装的是 PyTorch 版本,如果要一次性安装 GPU 版本,需要指定源,比如:

pip install torch --index-url https://download.pytorch.org/whl/cu121

并且,在 windows 上,用户普遍没有预装 CUDA 环境,PyTorch 为了“即装即用”,会把   CUDA ToolkitcuDNN等各种 CUDA 依赖一股脑全塞到这个包里面,导致包体在 2GB 以上。

而在 Mac 上,安装 PyTorch 就简单很多了,可以直接用uv安装:

uv add torch

使用du -sh $(uv venv path)查看了当前环境,整个环境仅 460 MB。

运行下面的脚本,可以检测 mac 上的 MPS 是否可用,如果可用,会输出 True。

import torch
print("PyTorch:", torch.__version__)
print("MPS available:", torch.backends.mps.is_available())

迁移 Nvidia 的代码到 Mac 上很容易,只需要把 cuda 改成 mps 就可以了,下面是一个简单的示例,训练一个全连接网络:

import torch
import torch.nn as nn

# 选择设备
device = torch.device("mps"if torch.backends.mps.is_available() else"cpu")
print("Using device:", device)

# 构造数据:y = 2x
x = torch.linspace(-11100).unsqueeze(1)
y = 2 * x

x, y = x.to(device), y.to(device)

# 简单模型
model = nn.Sequential(
    nn.Linear(116),
    nn.ReLU(),
    nn.Linear(161)
).to(device)

loss_fn = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)

# 训练
for epoch inrange(300):
    pred = model(x)
    loss = loss_fn(pred, y)

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

if (epoch+1) % 50 == 0:
print(f"Epoch {epoch+1}, Loss: {loss.item():.6f}")

# 测试
test = torch.tensor([[0.5]]).to(device)
print("Pred(0.5) =", model(test).item())

总结

因为 Nvidia 在高性能计算上布局更早,所以在大规模分布式计算上,主流方式仍是用 Nvidia  显卡集群。

但对于个人级 AI 推理设备来说,Mac 已然成为更具性价比的选择。

参考

[1] https://support.apple.com/en-us/103253
[2] https://www.narrato.in/article/apple-m5-unified-memory-bandwidth-153gb-s-for-faster-workflows
[3] https://www.notebookcheck.net/NVIDIA-GeForce-RTX-4090-Laptop-GPU-Benchmarks-and-Specs.675091.0.html
[4] https://en.wikipedia.org/wiki/PCI_Express
[5] https://www.bilibili.com/video/BV1fh4y1M7DX
[6] https://scalastic.io/en/apple-silicon-vs-nvidia-cuda-ai-2025/#31-cuda-maturity-and-extreme-optimizations
[7] https://www.bilibili.com/video/BV1XYWRzQEtP
[8] https://hackaday.com/2012/12/09/160-mac-minis-one-rack


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询