过去,PyTorch 在 Mac 上只能用 CPU 进行训练。现在,最新版 v1.12 已经实现了在搭载 M1 系列芯片的 Mac 上的 GPU 加速,极大提升了训练效率。
这一功能由 PyTorch 团队与 Apple 的 Metal 工程团队协作推出,后端采用 Apple 的 Metal Performance Shaders(MPS)来实现 GPU 加速训练。MPS 针对 Metal GPU 的特性对内核进行了优化,以提高计算性能。
Metal 作为一个类似 OpenGL 的框架,面向 iOS/MacOS 平台的高效渲染与计算能力;而 MPS 是基于 Metal 的一套库,直接调用即可在 GPU 上完成高性能的图形处理、卷积神经网络等任务。
官方在具备 M1 Ultra、20 核 CPU、64 核 GPU、128GB RAM 和 2TB SSD 的 Mac Studio 上进行了测试,分别训练了:
- Batch size 为 128 的 ResNet50
- Batch size 为 64 的 HuggingFace 的 BERT
- Batch size 为 64 的 VGG16
相较于使用 CPU,加速效果显著,GPU 训练速度约提升 7 倍,评估速度在某些场景下甚至提升约 20 倍。 [[[IMG_1]]]
关于与搭载 NVIDIA GPU 的笔记本相比,仍然存在原始计算能力等价差异,但功耗方面的优势明显。未来 Apple 有望进一步缩小性能差距。
综合来看,Mac Studio 目前成为一个极具吸引力的高效开发环境,尤其在需要训练大模型与使用较大批量的数据加载场景中,GPU 加速对实际训练时间的影响更为显著。 [[[IMG_2]]]
分享者也指出:独立成本的考虑下,若你以高容量显存配置为目标,具备 GPU 加速的 PyTorch 支持确实能够提升对大模型的训练能力与工作效率,数据加载往往比实际计算更容易成为瓶颈。 [[[IMG_3]]]
如果你也在考虑尝试,请确保你的 macOS 版本在 12.3 及以上,且使用 ARM64 原生 Python 环境,然后进入官方渠道获取最新的预览版本即可。具体的安装与使用请关注官方最新说明,开始体验基于 GPU 加速的训练流程吧。你愿意现在就试试吗?
