本文翻译整理自:Accelerated PyTorch training on Mac
https://developer.apple.com/metal/pytorch/
文章目录
Metal 加速
PyTorch使用新的 Metal Performance Shaders(MPS)后端进行GPU训练加速。
这个MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。
MPS框架使用针对每个Metal GPU系列的独特特性进行微调的内核来优化计算性能。
新的mps
设备将机器学习计算图和原语映射到MPS Graph框架和MPS提供的调优内核上。
要求
- 配备Apple芯片或AMD GPU的Mac电脑
- macOS 12.3或更高版本
- Python 3.7或更高版本
- Xcode命令行工具:
xcode-select --install
开始
您可以使用Anaconda或pip。请注意,带有Apple芯片的Mac和带有Intel x86的Mac之间的环境设置会有所不同。
使用安装页面上的PyTorch安装选择器为MPS设备加速选择预览(夜间)。MPS后端支持是PyTorch 1.12官方版本的一部分。PyTorch的预览(夜间)版本将在您的设备上提供最新的mps
支持。
1.Set up
Anaconda
Apple silicon
shell
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
sh Miniconda3-latest-MacOSX-arm64.sh
x86
shell
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
sh Miniconda3-latest-MacOSX-x86_64.sh
pip
您可以使用macOS附带的预装pip3
。或者,您可以从Python网站或Homebrew包管理器安装它。
2.安装
Anaconda
shell
conda install pytorch torchvision torchaudio -c pytorch-nightly
pip
shell
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
从源代码构建
构建支持MPS的PyTorch需要Xcode13.3.1或更高版本,您可以在Mac App Store上下载最新的公开Xcode版本或在Mac App Store上下载最新的beta版本或在Apple Developer网站上下载最新的beta版本。
USE_MPS
环境变量控制构建PyTorch并包含MPS支持。
要构建PyTorch,请按照PyTorch网站上提供的说明进行操作。
3.验证
您可以使用简单的Python脚本验证mps
支持:
python
import torch
if torch.backends.mps.is_available():
mps_device = torch.device("mps")
x = torch.ones(1, device=mps_device)
print (x)
else:
print ("MPS device not found.")
输出应显示:
shell
tensor([1.], device='mps:0')
反馈意见
MPS后端处于测试阶段,我们正在积极解决问题并修复错误。要报告问题,请使用标签为"模块:MP"的GitHub问题跟踪器。
资源
PyTorch安装页面
PyTorch留档在MPS后端
添加一个新的PyTorch操作到MPS后端
PyTorch性能分析使用MPS分析器