苹果炼丹6倍速!PyTorch加持Mac GPU训练,性能最高提升21倍

iOS开发

共 4712字,需浏览 10分钟

 · 2022-05-22

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇




  新智元报道  

编辑:David 拉燕 好困

【新智元导读】果粉Big Day!PyTorch宣布,原生支持苹果Mac GPU机器学习加速。与单CPU加速相比,训练性能提升6倍,推理任务性能最高提升21倍


对于搞AI和机器学习的苹果用户来说,今天无疑是个好日子。
 
如果是用PyTorch的苹果用户,可能更是盼了一年半的大日子!
 
刚刚,PyTorch官宣,在苹果Mac系统上正式支持GPU加速训练。现在,M1芯片强悍的GPU终于可以在机器学习任务上大展身手了!
 
 
作为业界应用最广泛的机器学习框架之一,PyTorch在之前很长一段时间内对于Mac系生态的支持一直不太完善。在苹果平台上仅支持CPU加速。
 
Pytorch官方推特置顶发布了这条重磅消息,并给出了与之前仅CPU加速的性能提升对比。
 
从对比图上看,在ResNet50\HuggingFace BERT\VGG 16几个主流数据集上,相对性能提升最高达到21倍。
 
 
实际上,作为全球软硬件生态最完善的巨头之一,苹果当然懂得GPU加速对深度学习计算任务的支持有多重要。
 
早在2014年,苹果就推出了兼顾图形与计算功能,面向底层的硬件加速应用接口 Metal。
 
 
Metal结合了类似于OpenGL和OpenCL的功能。通过为iOS、iPadOS、macOS和tvOS上的应用程序提供对 GPU 硬件的底层访问来提高性能。
 
不过,虽然Metal经历两次大的版本更新,但对于苹果用户来说,没有框架的原生支持,要想在主流框架下调用GPU实现加速,还是要「曲线救国」。
 
有开发者甚至表示,因为PyTorch对苹果GPU的支持不够好,自己一度被迫转用TensorFlow,在TensorFlow环境下通过Metal插件实现GPU加速。
 
 
最后他表示,「若Apple Silicon的GPU能获得pytorch的原生支持,将是一个让人欣喜的消息。期待!」
 
今天,这位网友的期待终于成真了。
 
 
PyTorch官网宣布,在与Metal工程团队合作后,很高兴地宣布支持Mac上的GPU加速的PyTorch训练。
 
PyTorch称,到目前为止,Mac上的PyTorch训练只能利用CPU,但在PyTorch v1.12版本,开发人员和研究人员可以利用Apple Silicon GPU的优势,大大加快模型训练。
 
现在,开发者可在Mac上就地执行原型设计和微调等机器学习任务流。
 

开发者:终于来了,盼一年多了!


实际上,关于Pytorch框架原生支持苹果GPU加速的问题,早在一年多以前就已经提上了开发日程。
 
之前就有网友在Pytorch的官方Github上找到了关于这个问题的issue,问题发布于2020年11月,与苹果M1芯片的推出几乎同步。
 
 
然后,这个问题很快就获得了Pytorch创始人Soumith的回复:已有原生支持计划,决定适配M1,但开发进度未知。
 
 
不过这事儿到此好像没了下文,一年多来,甚至有网友在知乎的问题帖下「打卡求更」。
 
 
今天,还有人来这个问题下「拍了拍」这位答主,一年多的时间,总算是没白等啊,好事好事!
 
 
很快,就有人拉去测试了。
 
VGG16,CIFAR-10图像为224x224像素
 
可以看出,M1 Pro的CPU和GPU相比,后者训练网络的速度达到了原来的两倍。
 
可喜可贺,可喜可贺!
 

往事:用Mac GPU炼丹,先装Tensorflow


其实,今天这个消息出来之前,网友们就已经尝试过各种各样的办法来解决这个问题。
 
有网友表示,「用了我的办法,就不需要别的了。」
 
首先,最简单的办法就是,先安装一个miniconda3。在此之后,用户需要安装Tensorflow。
 
然后,这位博主展示了有16个GPU核心的M1 Pro的性能。
 
该博主表示,16核GPU的M1 Pro是M1的升级版。它具有两倍的GPU内核和两倍多的内存带宽。用户可以访问大量内存,而因为内存由CPU和GPU共享,所以这是深度学习的最佳选择。
 
用户不需要将Tensor从一个设备移动到另一个设备。另外,用户还能得到64GB内存的配置,它这算得上是目前市场上最大的移动GPU了。
 
结果来看,还不错。
 
 
就像预期的那样,M1Pro Max的速度是 M1Pro 的两倍(GPU 核心库的两倍)
 
知乎上有网友也尝试了Tensorflow来在Mac上获得原生支持的Metal加速。
 
但是,在wheel生成上,他遇到了问题。他通过pypi安装d2I包,出现了一些依赖问题。
 
最终,他通过在github上的release进行安装,解决了这个问题。
 
然后,在按照官方的方法安装Tensorflow的插件,就可以获得GPU加速了。
 
经过测试,总体来看M1 max以「极低」的功耗(在训练时整机功耗75w左右)产生了不错的算力。
 
该网友表示,「用作调参还是勉强可用的。」
 

这就开Mac跑一波训练!

 

在推特上,各路网友也是表达了自己的喜悦。毕竟,已经期待太久了~
 
 
前节跳动AI实验室总监,UCSB助理教授李磊就表示,「PyTorch终于能支持在Mac M1GPU上训练了!是时候把电脑打开了!」
 
 
推特上搞数据科学和机器学习的网友表示,这下对PyTorch更感兴趣了。
 
 
谷歌云的工程师rogerbai表示,「我倒是想看看M1 Ultra和英伟达40xx在PyTorch上谁的速度更快。」
 
参考资料: 
https://wandb.ai/tcapelle/apple_m1_pro/reports/Deep-Learning-on-the-M1-Pro-with-Apple-Silicon---VmlldzoxMjQ0NjY3
https://www.macrumors.com/2022/05/18/pytorch-gpu-accelerated-training-apple-silicon/
https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/
https://developer.apple.com/metal/


-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报