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

近日,开源机器学习框架 PyTorch 官方宣布,将提供对苹果 M 系芯片的原生支持。这意味着开发和研究人员可以利用苹果芯片的 GPU 进行更快的模型训练,之前在苹果平台电脑上的 PyTorch 框架只支持利用 CPU 训练。

(来源:PyTorch)简单说一下苹果自研的 M 系芯片,该系列首款芯片 M1 发布于 2010 年 11 月,而在今年 3 月,苹果发布了其第四款 M1 芯片 M1 Ultra(另外两款为 M1 Pro 和 M1 Max),晶体管数量在一年半的时间里由 160 亿迅速增长到 1140 亿个。苹果的 M 系芯片将 CPU、GPU、I/O、神经引擎等整合到了一起,而不是像很多电脑一样分别采用英特尔 CPU 和英伟达 GPU。另外,M 系芯片都是基于 Arm 架构,区别于 X86 架构,能够同时实现低功耗和高性能。因此,由于苹果有着独有的生态系统,目前很多软件对其平台的适配性都不够完美。尤其是苹果的 Mac 电脑市场占有率较低,开发人员对其的支持力度也相对小一点。

(来源:苹果官网)此次,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 训练的性能提升可见下图。(来源: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 加速的利用就大打折扣。

(来源:PyTorch 网站)而在 PyTorch 支持之前,为了在苹果平台充分发挥 GPU 加速功能,有用户不得不转向 TensorFlow 等其他机器学习平台,并利用 Metal 插件完成相关机器学习的训练。最后,苹果 M 系芯片(尤其是 M1 Max 和 M1 Ultra)虽然有着强大的性能,但目前存在的一些软件兼容性等问题限制了其能力的最大程度发挥,一定程度阻碍了苹果电脑成为一个强大的生产力工具。同时也对苹果产品本身的使用、发展造成了一定影响。另外,苹果基于 Arm 架构的 M 系芯片自推出以来就大受好评,改变了人们对 Arm 架构芯片低性能的看法。据悉,PyTorch 对 M 系芯片的适配,在 2020 年 M1 芯片刚发布时便提上了日程,或也是看到了苹果芯片未来的潜力。而对苹果平台的支持,无疑也将使得 PyTorch 框架的应用范围得到进一步扩大。

-End-

参考:网页链接

雪球转发:1回复:0喜欢:0