对于搞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相比,后者训练网络的速度达到了原来的两倍。 可喜可贺,可喜可贺!