pytorch宣布支持苹果m1芯片gpu加速!训练快6倍,推理提升21倍!(代码片段)

Charmve Charmve     2022-11-29     824

关键词:

点击上方“迈微AI研习社”,选择“星标★”公众号

重磅干货,第一时间送达

转载自:机器之心 | 编辑:泽南、蛋酱

对于 Mac 用户来说,这是令人激动的一天。

今年 3 月,苹果发布了其自研 M1 芯片的最终型号 M1 Ultra,它由 1140 亿个晶体管组成,是有史以来个人计算机中最大的数字。苹果宣称只需 1/3 的功耗,M1 Ultra 就可以实现比桌面级 GPU RTX 3090 更高的性能。

随着用户数量的增长,人们已经逐渐接受使用 M1 芯片的计算机,但作为一款 Arm 架构芯片,还有人在担心部分任务的兼容性问题。

昨天,通过与苹果 Metal 团队工程师合作,PyTorch 官方宣布已正式支持在 M1 版本的 Mac 上进行 GPU 加速的 PyTorch 机器学习模型训练。

此前,Mac 上的 PyTorch 训练仅能利用 CPU,但随着即将发布的 PyTorch v1.12 版本,开发和研究人员可以利用苹果 GPU 大幅度加快模型训练。现在,人们可以在 Mac 上相对高效地执行机器学习工作,例如在本地进行原型设计和微调。

苹果芯片的 AI 训练优势

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

每台搭载苹果自研芯片的 Mac 都有着统一的内存架构,让 GPU 可以直接访问完整的内存存储。PyTorch 官方表示,这使得 Mac 成为机器学习的绝佳平台,让用户能够在本地训练更大的网络或批大小。

这降低了与基于云算力的开发相关的成本或对额外的本地 GPU 算力需求。统一内存架构还减少了数据检索延迟,提高了端到端性能。

可以看到,与 CPU 基线相比,GPU 加速实现了成倍的训练性能提升:

上图是苹果于 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 的大致性能。

有开发者推测,鉴于谷歌云服务中使用的英伟达 T4 在 FP32 任务上的浮点性能为 8 TFLOPS,而 M1 Ultra 的图形计算能力大概在 20 TFLOPS 左右。在最有利情况下,可以期望的 M1 Ultra 速度提升或可达到 2.5 倍。

若想使用最新的加速能力,你需要在使用 M1 系列芯片的 Mac 电脑上安装原生版本(arm64)的 Python,并将系统升级至 macOS 12.3 预览版或更新的版本。

开发者亲测:加速效果显著

虽然官方已宣布提供支持,但目前还不是所有在 PyTorch 上的模型都能用 M1 芯片集成的 GPU 加速,你也可以花几分钟进行一下测试。

机器学习研究者,捷克理工大学博士 Dmytro Mishkin 对多个模型的推理进行了测试,结果显示,大多数图像分类架构都提供了很好的加速。对于一些自定义代码(比如 kornia),可能无法正常工作。

各个测试结果如下:

首先是经典的卷积神经网络 VGG16,从 2.23 秒提升到 0.5 秒:

接下来是大部分芯片发布会上都会跑的 Resnet50,它在 M1 GPU 上的速度较慢,不升反降,从 0.549 秒到 0.592 秒:

但 ResNet18 的提速惊人,从 0.243 秒到 0.024 秒:

AlexNet 的速度对比为 0.126 秒 vs0.005 秒,速度提升了几十倍:

尝试一下视觉 transformer 模型,在 M1 CPU 上的速度是 1.855 秒,在 M1 GPU 上则运行崩溃了……

EfficientNetB0 实现了 2.5 倍的加速:

EfficientNetB4 实现了 3.5 倍加速:

ConvMixer 运行良好,从 11 秒提速到 2.8 秒:

Dmytro Mishkin 也表示,使用 M1 芯片集成的 GPU 加速只需要预热一下模型,没有同步命令。和 CUDA 不同,无需异步执行。

威斯康星大学麦迪逊分校助理教授 Sebastian Raschka 也对 M1 芯片的 GPU 机器学习能力进行了一番测试,他使用的芯片是 M1 和 M1 Pro。

看上去,M1 CPU 似乎比 M1 GPU 更快。但 LeNet-5 是一个非常小的网络,而 MNIST 是一个非常小的数据集。如果用 rescaled CIFAR-10 图像再试一次,结果如下:

与 M1 Pro CPU(正数第二行)和 M1 Pro GPU(倒数第二行)相比,M1 Pro GPU 训练网络的速度提高了一倍。

可见,M1 系列芯片的 GPU 加速结果非常可观,在部分情况下已能满足开发者的需求。不过我们知道在 M1 Ultra 这样的芯片中也有 32 核的神经网络引擎,目前却只有苹果自己的 Core ML 框架支持使用该部分获得加速。

不知启用了 Neural Engine 之后,M1 芯片的 AI 推理速度还能提升多少?

参考内容:

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

https://sebastianraschka.com/blog/2022/pytorch-m1-gpu.html

 
 

绘图神器下载

后台回复:绘图神器,即可下载绘制神经网络结构的神器!

PyTorch 学习资料下载

后台回复:PyTorch资料,即可下载访问最全的PyTorch入门和实战资料!

专栏推荐下载

 

专栏订阅:https://blog.csdn.net/charmve/category_10595130.html

迈微AI学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!

▲扫码进群

备注:姓名-学校/公司-研究方向-城市(如:小C-北大-目标检测-北京)

推荐阅读

(更多“抠图”最新成果)

迈微AI研习社

微信号: MaiweiE_com   CSDN、知乎: @Charmve

主页: github.com/Charmve   GitHub: @Charmve

投稿: yidazhang1@gmail.com

如果觉得有用,就请点赞转发吧!

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系列的独特特性进行微调的内核来优化计算性能。新... 查看详情

深度学习系列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... 查看详情

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

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

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

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

查看pytorch版本以及是否支持gpu加速(代码片段)

查看Pytorch版本importtorchprint(torch.__version__)>>>1.4.0#这里便是torch版本查看Pytorch是否支持GPU加速importtorchprint(torch.cuda.is_available())>>>True#这便代表此Pytorch支持GPU加速 查看详情

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

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

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

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

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

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

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

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

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

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

pytorch是啥?

PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:具有强大的GPU加速的张量计算(如NumPy... 查看详情

pytorch中多gpu训练指南

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

macos(m1芯片arm架构)下如何安装tensorflow(代码片段)

导语由于目前anconda官网上对于macos系统只支持X86结构的,因此基于arm结构的MacOS暂时无法使用anconda来对tensorflow进行配置。虽然Anconda无法在M1上运行,但是相应的替代品有Miniforge,同样也能实现类似的效果。此外,... 查看详情

速度是macos的两倍?首个支持m1mac的linux发行版终于出现

...x发行版:3月18日,由HectorMartin领导的AsahiLinux团队宣布其发行版已成功在M1MacBookAir笔记本电脑上运行,并由此发布了AsahiLinux的Alpha版本。(图片来自维基百科)一、“适用于开发人员和高级用户”据团队官方介... 查看详情