在 Mac 上加速 PyTorch 训练
随着 PyTorch v1.12 版本的发布,开发者和研究人员可以利用苹果硅 GPU 来显著加速模型训练。这使得能够在 Mac 上本地执行机器学习工作流程,例如原型设计和微调。苹果的 Metal Performance Shaders (MPS) 作为 PyTorch 的后端支持了这一点,可以通过新的 "mps"
设备使用。这将把计算图和原语映射到 MPS 图框架和 MPS 提供的优化内核上。有关更多信息,请参考官方文档 在 Mac 上介绍加速 PyTorch 训练 和 MPS 后端。
使用苹果硅芯片进行训练和推理的优势
- 使用户能够在本地训练更大的网络或批次大小
- 减少数据检索延迟,并由于统一内存架构,为 GPU 提供对完整内存存储的直接访问。因此,提高了端到端性能。
- 降低与基于云的开发相关的成本或对额外本地 GPU 的需求。
先决条件:要安装支持 mps 的 torch,请遵循这篇不错的 Medium 文章 GPU 加速来到 M1 Mac 上的 PyTorch。
开箱即用的工作原理
它在具有启用 MPS 的苹果硅 GPU 的 MacOs 机器上默认启用。要禁用它,请将 --cpu
标志传递给 accelerate launch
命令,或在回答 accelerate config
问卷时回答相应的问题。
您可以在启用 MPS 的苹果硅机器上直接运行以下脚本进行测试
accelerate launch /examples/cv_example.py --data_dir images
需要注意的一些注意事项
- 我们强烈建议您在您的 MacOS 机器上安装 PyTorch >= 1.13(撰写本文时为夜间版本)。它包含与模型正确性和基于 Transformer 的模型的性能改进相关的重大修复。有关更多详细信息,请参考 https://github.com/pytorch/pytorch/issues/82707。
- 分布式设置
gloo
和nccl
不适用于mps
设备。这意味着目前只能使用mps
设备类型的单个 GPU。
最后,请记住,Accelerate
仅集成 MPS 后端,因此如果您在 MPS 后端使用方面遇到任何问题或疑问,请向 PyTorch GitHub 提交问题。