8

PyTorch可对苹果M系芯片提供原生支持,实现GPU加速训练,性能最高提升20多倍

 3 years ago
source link: https://www.mittrchina.com/news/detail/10618
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

麻省理工科技评论-PyTorch可对苹果M系芯片提供原生支持,实现GPU加速训练,性能最高提升20多倍

科技与人文
PyTorch可对苹果M系芯片提供原生支持,实现GPU加速训练,性能最高提升20多倍
近日,开源机器学习框架 PyTorch 官方宣布,将提供对苹果 M 系芯片的原生支持。这意味着开发和研究人员可以利用苹果芯片的 GPU 进行更快的模型训练,之前在苹果平台电脑上的 PyTorch 框架
280



a98b882543c54848b6f266807701b5a1

近日,开源机器学习框架 PyTorch 官方宣布,将提供对苹果 M 系芯片的原生支持。

这意味着开发和研究人员可以利用苹果芯片的 GPU 进行更快的模型训练,之前在苹果平台电脑上的 PyTorch 框架只支持利用 CPU 训练。

7113d54d47694772a67bfc145fec32c7
(来源:PyTorch)

简单说一下苹果自研的 M 系芯片,该系列首款芯片 M1 发布于 2020 年 11 月,而在今年 3 月,苹果发布了其第四款 M1 芯片 M1 Ultra(另外两款为 M1 Pro 和 M1 Max),晶体管数量在一年半的时间里由 160 亿迅速增长到 1140 亿个。

苹果的 M 系芯片将 CPU、GPU、I/O、神经引擎等整合到了一起,而不是像很多电脑一样分别采用英特尔 CPU 和英伟达 GPU。另外,M 系芯片都是基于 Arm 架构,区别于 X86 架构,能够同时实现低功耗和高性能。

因此,由于苹果有着独有的生态系统,目前很多软件对其平台的适配性都不够完美。尤其是苹果的 Mac 电脑市场占有率较低,开发人员对其的支持力度也相对小一点。

ddf3a274ab854da6b650f373d7c9237d
(来源:苹果官网)

此次,PyTorch 官方对苹果电脑的支持,无疑对使用该平台的人士是一大好消息。

据了解,PyTorch 开源机器学习框架由 Meta(原 Facebook)的 AI 研究实验室所开发,主要应用于计算机视觉和自然语言处理等方面。PyTorch 在业界应用较为广泛,像特斯拉汽车自动驾驶功能、Uber 的开源编程语言 Pyro、AI 社区 Hugging Face 的 Transformers 库、显卡控制软件 Catalyst 等都有用到该框架。

PyTorch 提供了两个高级功能:通过 GPU 进行加速张量计算(如 NumPy)和一个建立在磁带式自动微分系统上的深度神经网络。

而本次对苹果 GPU 的支持功能,据悉是 PyTorch 和苹果的 Metal 工程团队合作实现的。

具体来说,是在 PyTorch 的后端添加了一个苹果的工具库Metal Performance Shaders(MPS),从而将 PyTorch 框架进行扩展,以此实现了在搭载苹果芯片电脑上运行 GPU 操作的能力。

使用已经发布的 PyTorch v1.12 版本,相关人员便可在 Mac 电脑上执行更进一步的机器学习训练工作。

“例如,在本地进行原型设计和微调。”PyTorch 官方说到。并表示,由于苹果的 M 系芯片有着统一的内存架构,这为苹果用户提供了一定机器学习训练优势。

其解释说:“苹果 GPU 可以直接访问完整的内存存储,用户使用 Mac 平台,能在本地训练更大的网络或批量大小,从而降低相关开发成本和对其他本地 GPU 算力的需求。并且数据检索延迟降低,端到端性能进一步提升。”

相比之前 CPU 基准,此次得到 PyTorch 原生支持后,使用苹果平台加速 GPU 训练的性能提升可见下图。

6877c76699e445d187c1c5242e8bf108
(来源:PyTorch 网站)

以上结果是苹果在今年 4 月,使用目前唯一搭载 M1 Ultra 芯片的电脑主机 Mac Studio(2022 年 3 月发布)进行测试得出的。测试用 Mac Studio 有着 20 核 CPU、64 核 GPU、 128GB RAM 和 2TB SSD(固态硬盘,Solid State Disk),系统为 macOS Monterey 12.3。

苹果借助 PyTorch 1.12 预览版,分别在 ResNet50、HuggingFace BERT、VGG16 等数据集下进行了测试,可以看到,性能提升最高超过 20 倍。

值得一提的是,之前苹果也有自己开发 GPU 调试工具,但跟得到 PyTorch 原生支持的效果还有差距。

针对 iOS 等各平台系统上的软件,苹果 2014 年 6 月推出了 3D 图形和计算应用接口 Metal,可一定程度利用 GPU 来提高性能。

Metal 旨在提供对 GPU 的低开销访问。在 2017 年 6 月的 WWDC上,苹果宣布了 Metal 的第二个版本。Metal 2 支持在 Xcode 中实现更高效的分析和调试、更低的 CPU 工作负载,并支持加速机器学习。而在 macOS 上,Metal 可以让应用程序开发人员自行指定要执行的 GPU。

从此可以看出,苹果显然知道 GPU 加速的重要性。但若得不到 PyTorch 等框架的原生支持,对 GPU 加速的利用就大打折扣。

d925db4326d94744ae03d0e4f6772207
(来源:PyTorch 网站)

而在 PyTorch 支持之前,为了在苹果平台充分发挥 GPU 加速功能,有用户不得不转向 TensorFlow 等其他机器学习平台,并利用 Metal 插件完成相关机器学习的训练。

最后,苹果 M 系芯片(尤其是 M1 Max 和 M1 Ultra)虽然有着强大的性能,但目前存在的一些软件兼容性等问题限制了其能力的最大程度发挥,一定程度阻碍了苹果电脑成为一个强大的生产力工具。同时也对苹果产品本身的使用、发展造成了一定影响。

另外,苹果基于 Arm 架构的 M 系芯片自推出以来就大受好评,改变了人们对 Arm 架构芯片低性能的看法。据悉,PyTorch 对 M 系芯片的适配,在 2020 年 M1 芯片刚发布时便提上了日程,或也是看到了苹果芯片未来的潜力。

而对苹果平台的支持,无疑也将使得 PyTorch 框架的应用范围得到进一步扩大。

-End-

af01674431b841b4ba7ad1a933d8a899

参考:
https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/
https://developer.apple.com/cn/metal/

e8e41062962844baaaf6b7cf52aad1a0

</div


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK