pytorch实现苹果m1芯片gpu加速:训练速度提升7倍,性能最高提升21倍

CSDN资讯 CSDN资讯     2023-03-12     846

关键词:

整理 | 于轩       责编 | 张红月

出品 | CSDN(ID:CSDNnews)

5月18日,PyTorch官网宣布,通过与Apple的Metal工程团队合作,目前已可以支持在搭载M1芯片的Mac上使用GPU加速PyTorch训练。而在此之前,在Mac上进行PyTorch训练仅能利用CPU。

但随着PyTorch v1.12版本的发布,开发和研究人员可以利用Apple Silicon CPU的优势,大大加快模型训练速度。这解锁了在Mac上执行机器学习工作流程的能力,例如在本地进行原型设计和微调。

据PyTorch官网介绍,其使用Apple的Metal Performance Shaders(MPS)作为PyTorch的后端来加速GPU训练。MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。MPS通过针对每个Metal GPU系列的独特特性进行微调的内核来优化计算性能。新设备将机器学习计算图和原语映射到MPS提供的MPS Graph框架和优化内核上。

此外,因为每台搭载Apple Silicon的Mac都有统一的内存架构,为GPU提供了直接访问完整内存存储的能力。这让Mac成为机器学习的绝佳平台,也使用户能够在本地训练更大的网络或批大小。同时,这也降低了与基于云的开发相关的成本或对额外本地GPU的需求。此外,统一内存架构还减少了数据检索延迟,提高了端到端的性能。

在下图中,显示了与CPU基线相比,加速GPU训练和评估所带来的性能提升:

图源:PyTorch官网

可以看出,使用GPU可将模型训练速度提升约7倍,评估(Evaluation)速度最高可提升约21倍。

以上是Apple于2022年4月使用配备Apple M1 Ultra、20核CPU、64核GPU、128GB内存和2TB SSD的Mac Studio系统进行的测试结果。系统为macOS Monterey 12.3、预发布的PyTorch 1.12,测试模型为ResNet50(batch size=128)、HuggingFace BERT(batch size=64)和VGG16(batch size=64)。性能测试是使用特定的计算机系统进行的,反映了Mac Studio的大致性能。

对于想要体验的用户,以下为具体要求:只需在搭载M1芯片的Mac上安装原生版本(arm64)的Python,并将系统升级至macOS 12.3或更高版本,然后去官网(https://pytorch.org/get-started/locally)下载最新的PyTorch预览版就可以。

参考链接:

  • https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/

  • https://pytorch.org/get-started/locally/

深度学习系列50:苹果m1芯片加速pytorch(代码片段)

1.介绍Apple的MetalPerformanceShaders(MPS)作为PyTorch的后端来加速GPU训练。MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。MPS通过针对每个MetalGPU系列的独特特性进行微调的内核来优化计算性能。新... 查看详情

pytorch1.12发布,正式支持苹果m1芯片gpu加速,修复众多bug

...Python学习,选择加星标精彩内容不迷路机器之心报道PyTorch1.12正式发布,还没有更新的小伙伴可以更新了。距离PyTorch1.11推出没几个月,PyTorch1.12就来了!此版本由1.11版本以来的3124多次commits组成,由433位贡献... 查看详情

pytorch1.12发布,正式支持苹果m1芯片gpu加速,修复众多bug

...Python学习,选择加星标精彩内容不迷路机器之心报道PyTorch1.12正式发布,还没有更新的小伙伴可以更新了。距离PyTorch1.11推出没几个月,PyTorch1.12就来了!此版本由1.11版本以来的3124多次commits组成,由433位贡献... 查看详情

深度学习系列50:苹果m1芯片加速pytorch(代码片段)

1.介绍Apple的MetalPerformanceShaders(MPS)作为PyTorch的后端来加速GPU训练。MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。MPS通过针对每个MetalGPU系列的独特特性进行微调的内核来优化计算性能。新... 查看详情

深度学习系列50:苹果m1芯片加速pytorch(代码片段)

1.介绍Apple的MetalPerformanceShaders(MPS)作为PyTorch的后端来加速GPU训练。MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。MPS通过针对每个MetalGPU系列的独特特性进行微调的内核来优化计算性能。新... 查看详情

提升5-7倍速,使用macm1芯片加速pytorch完全指南(代码片段)

2022年5月,PyTorch官方宣布已正式支持在M1芯片版本的Mac上进行模型加速。官方对比数据显示,和CPU相比,M1上炼丹速度平均可加速7倍。哇哦,不用单独配个GPU也能加速这么多,我迫不及待地搞到一个M1芯片的MacB... 查看详情

macm1芯片如何使用gpu(代码片段)

2022年5月,PyTorch官方宣布已正式支持在M1芯片版本的Mac上进行模型加速。官方对比数据显示,和CPU相比,M1上炼丹速度平均可加速7倍。1.加速原理Question1:MacM1芯片为什么可以用来加速pytorch?因为MacM1芯片不是... 查看详情

性能提升21倍!pytorch加持macm1gpu训练

...的一天。昨天,通过与苹果Metal团队工程师合作,PyTorch官方宣布已正式支持在M1版本的Mac上进行GPU加速的PyTorch机器学习模型训练。此前,Mac上的PyTorch训练仅能利用CPU,但随着即将发 查看详情

pytorch在gpu上训练模型(代码片段)

PyTorch在GPU上训练模型为了真正利用Pytorch中Tensor的优秀属性,加速模型的训练,我们可以将训练过程转移到GPU上进行.1.首先要定义设备,如果CUDA是可用的则被定义成GPU,否则被定义成CPU.device=torch.device("cuda:0"iftorch.cuda.is_availabl... 查看详情

配置pytorch(gpu)分析环境(代码片段)

Pytorch是目前最火的深度学习框架之一,另一个是TensorFlow。不过我之前一直用到是CPU版本,几个月前买了一台3070Ti的笔记本(是的,我在40系显卡出来的时候,买了30系,这确实一言难尽),同时我... 查看详情

苹果发布“合二为一”芯片,华为公布“芯片叠加”的专利

...过精彩内容素材来源| 网络、EDN电子技术设计昨日凌晨的苹果春季发布会上,苹果发布了最强的“M1‌Ultra”芯片。在大会上,苹果公布了M1‌Ultra芯片很多牛逼的参数,比如:晶体管数量1140亿颗20核CPU(16个高... 查看详情

[pytorch]单多机下多gpu下分布式负载均衡训练(代码片段)

...其慢的训练速度,此时就要使用多GPU进行模型训练了,在pytorch上实现多GPU训练实际上十分简单:只需要将模型使用nn.DataParalle 查看详情

苹果英伟达展开竞赛800亿个晶体管“最强”gpu芯片来了-

....13亿美元收入,为英伟达贡献了总收入约40%。不久之前,苹果在3月8日春季发布会上发布的新款自研芯片震惊了市场。当时,这款新款个人电脑用芯片M1Max被苹果公司称之为“迄今最强芯片”,这挑战了市场专业芯片研发商的神... 查看详情

让pytorch训练速度更快,你需要掌握这17种方法

...之心掌握这17种方法,用最省力的方式,加速你的Pytorch深度学习训练。近日,Reddit上一个帖子热度爆表。主题内容是关于怎样加速PyTorch训练。原文作者是来自苏黎世联邦理工学院的计算机科学硕士生LORENZKUHN,文... 查看详情

让pytorch训练速度更快,你需要掌握这17种方法

...之心掌握这17种方法,用最省力的方式,加速你的Pytorch深度学习训练。近日,Reddit上一个帖子热度爆表。主题内容是关于怎样加速PyTorch训练。原文作者是来自苏黎世联邦理工学院的计算机科学硕士生LORENZKUHN,文... 查看详情

pytorch实现tpu版本cnn模型(代码片段)

...时间的问题,我们使用TPU运行时环境来加速训练。为此,PyTorch一直在通过提供最先进的硬件加速器 查看详情

pytorch中多gpu训练指南

...数据量的不断提升,使用多GPU去训练是不可避免的事情。Pytorch在0.4.0及以后的版本中已经提供了多GPU训练的方式,本文简单讲解下使用Pytorch多GPU训练的方式以及一些注意的地方。这里我们谈论的是单主机多GPUs训练,与分布式训... 查看详情

pytorch2如何通过算子融合和cpu/gpu代码生成加速深度学习(代码片段)

动动发财的小手,点个赞吧!PyTorch中用于图形捕获、中间表示、运算符融合以及优化的C++动动发财的小手,点个赞吧!PyTorch中用于图形捕获、中间表示、运算符融合以及优化的C++和GPU代码生成的深度学习编译器技术入门计算机... 查看详情