打开网易新闻 查看更多图片

新智元报道

编辑: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/