Accelerated PyTorch training on Mac

本文翻译整理自: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分析器

相关推荐
大转转FE11 小时前
转转前端周刊第192期: 财务数仓 Claude AI Coding 应用实战
前端·人工智能
cd_9492172111 小时前
灵析数智:以 AI GEO 重构品牌增长,领跑生成式引擎优化新赛道
人工智能·搜索引擎·重构
yunhuibin11 小时前
videopipe学习之demo运行
人工智能·深度学习·学习
晓晓不觉早11 小时前
Hermes Agent 与 OpenClaw 全面对比:从“宠物级”到“自我进化”的本地 AI Agent 之争
人工智能
fzil00111 小时前
让 AI 自己协作 —— 多智能体(Swarm)系统的设计与实现
java·开发语言·人工智能·ubuntu
跨境卫士-小汪11 小时前
多渠道获客复杂化跨境卖家如何优化整体结构
大数据·人工智能·产品运营·跨境电商·跨境
java1234_小锋11 小时前
Spring AI快速入门
人工智能·spring·neo4j
研究点啥好呢11 小时前
Github热门项目推荐 | 开放数据的新时代
大数据·人工智能·机器学习·github·数据
AGV算法笔记11 小时前
GaussianWorld:多帧融合到世界建模的跃迁
人工智能·深度学习·计算机视觉·自动驾驶·感知算法·三维感知
天天进步201512 小时前
[进阶篇] 性能优化指南:Toonflow 在 GPU 推理与显存管理上的实践
人工智能·计算机视觉