作者:PyTorch

我们很高兴与 Apple 的 Metal 工程团队合作,宣布支持在 Mac 上进行 GPU 加速的 PyTorch 训练。在此之前,Mac 上的 PyTorch 训练仅利用 CPU,但随着即将发布的 PyTorch v1.12 版本,开发者和研究人员可以利用 Apple 芯片的 GPU 进行显著更快的模型训练。这使得在本地、直接在 Mac 上进行诸如原型设计和微调等机器学习工作流程成为可能。

Metal 加速

使用 Apple 的 Metal Performance Shaders (MPS) 作为 PyTorch 的后端,可以实现 GPU 加速训练。MPS 后端扩展了 PyTorch 框架,提供了在 Mac 上设置和运行操作的脚本和功能。MPS 通过针对每个 Metal GPU 系列的独特特性进行微调的内核(kernels)来优化计算性能。新设备将机器学习计算图和原语映射到 MPS Graph 框架以及 MPS 提供的经过调优的内核上。

在 Apple 芯片上训练的优势

每台配备 Apple 芯片的 Mac 都采用统一内存架构,使 GPU 能够直接访问全部内存存储。这使得 Mac 成为一个出色的机器学习平台,用户可以在本地训练更大的网络或批处理大小。这降低了与基于云的开发相关的成本或对额外本地 GPU 的需求。统一内存架构还减少了数据检索延迟,提高了端到端性能。

在下方的图表中,您可以看到与仅使用 CPU 基准相比,GPU 加速训练和评估带来的性能提升

GPU 加速训练和评估速度提升(相对于仅使用 CPU)(提升倍数)

入门

要开始使用,只需在运行 macOS 12.3 或更高版本、且安装了原生 (arm64) Python 版本的 Apple 芯片 Mac 上,安装最新的 预览版 (Nightly) 构建

您还可以访问 Apple 的 Metal 页面,了解有关 Metal 和 MPS 的更多信息。

* Apple 于 2022 年 4 月使用配备 Apple M1 Ultra、20 核 CPU、64 核 GPU、128GB RAM 和 2TB SSD 的量产 Mac Studio 系统进行了测试。测试使用了 macOS Monterey 12.3、预发布的 PyTorch 1.12、ResNet50 (批处理大小=128)、HuggingFace BERT (批处理大小=64) 和 VGG16 (批处理大小=64)。性能测试使用特定的计算机系统进行,反映了 Mac Studio 的大致性能。