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