PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug

​PyTorch 1.12 正式发布,还没有更新的小伙伴可以更新了。

距离 PyTorch 1.11 推出没几个月,PyTorch 1.12 就来了!此版本由 1.11 版本以来的 3124 多次 commits 组成,由 433 位贡献者完成。1.12 版本进行了重大改进,并修复了很多 Bug。

随着新版本的发布,大家讨论最多的可能就是 PyTorch 1.12 支持苹果 M1 芯片。​

其实早在今年 5 月,PyTorch 官方就已经宣布正式支持在 M1 版本的 Mac 上进行 GPU 加速的 PyTorch 机器学习模型训练。此前,Mac 上的 PyTorch 训练仅能利用 CPU,但随着 PyTorch 1.12 版本的发布,开发和研究人员可以利用苹果 GPU 大幅度加快模型训练。

在 Mac 上引入加速 PyTorch 训练​

PyTorch GPU 训练加速是使用苹果 Metal Performance Shaders (MPS) 作为后端来实现的。MPS 后端扩展了 PyTorch 框架,提供了在 Mac 上设置和运行操作的脚本和功能。MPS 使用针对每个 Metal GPU 系列的独特特性进行微调的内核能力来优化计算性能。新设备将机器学习计算图和原语映射到 MPS Graph 框架和 MPS 提供的调整内核上。

每台搭载苹果自研芯片的 Mac 都有着统一的内存架构,让 GPU 可以直接访问完整的内存存储。PyTorch 官方表示,这使得 Mac 成为机器学习的绝佳平台,让用户能够在本地训练更大的网络或批大小。这降低了与基于云算力的开发相关的成本或对额外的本地 GPU 算力需求。统一内存架构还减少了数据检索延迟,提高了端到端性能。

可以看到,与 CPU 基线相比,GPU 加速实现了成倍的训练性能提升:

有了 GPU 的加持,训练和评估速度超过 CPU

上图是苹果于 2022 年 4 月使用配备 Apple M1 Ultra(20 核 CPU、64 核 GPU)128GB 内存,2TB SSD 的 Mac Studio 系统进行测试的结果。测试模型为 ResNet50(batch size = 128)、HuggingFace BERT(batch size = 64)和 VGG16(batch size = 64)。性能测试是使用特定的计算机系统进行的,反映了 Mac Studio 的大致性能。

PyTorch 1.12 其他新特性

前端 API:TorchArrow

PyTorch 官方已经发布了一个新的 Beta 版本供用户试用:TorchArrow。这是一个机器学习预处理库,可进行批量数据处理。它具有高性能,兼具 Pandas 风格,还具有易于使用的 API,以加快用户预处理工作流程和开发。

(Beta)PyTorch 中的 Complex32 和 Complex Convolutions

目前,PyTorch 原生支持复数、复数 autograd、复数模块和大量的复数运算(线性代数和快速傅里叶变换)。在包括 torchaudio 和 ESPNet 在内的许多库中,都已经使用了复数,并且 PyTorch 1.12 通过复数卷积和实验性 complex32 数据类型进一步扩展了复数功能,该数据类型支持半精度 FFT 操作。由于 CUDA 11.3 包中存在 bug,如果用户想要使用复数,官方建议使用 CUDA 11.6 包。

(Beta)Forward-mode 自动微分

Forward-mode AD 允许在前向传递中计算方向导数(或等效地雅可比向量积)。PyTorch 1.12 显着提高了 forward-mode AD 的覆盖范围。

BetterTransformer

PyTorch 现在支持多个 CPU 和 GPU fastpath 实现(BetterTransformer),也就是 Transformer 编码器模块,包括 TransformerEncoder、TransformerEncoderLayer 和 MultiHeadAttention (MHA) 的实现。在新的版本中,BetterTransformer 在许多常见场景中速度快 2 倍,这还要取决于模型和输入特征。新版本 API 支持与先前的 PyTorch Transformer API 兼容,如果现有模型满足 fastpath 执行要求,它们将加速现有模型,以及读取使用先前版本 PyTorch 训练的模型。 此外,新版本还有一些更新:

  • 模块:模块计算的一个新 beta 特性是功能性 API。这个新的 functional_call() API 让用户可以完全控制模块计算中使用的参数。
  • TorchData:DataPipe 改进了与 DataLoader 的兼容性。PyTorch 现在支持基于 AWSSDK 的 DataPipes。DataLoader2 已被引入作为管理 DataPipes 与其他 API 和后端之间交互的一种方式。
  • nvFuser: nvFuser 是新的、更快的默认 fuser,用于编译到 CUDA 设备。
  • 矩阵乘法精度:默认情况下,float32 数据类型上的矩阵乘法现在将在全精度模式下工作,这种模式速度较慢,但会产生更一致的结果。
  • Bfloat16:为不太精确的数据类型提供了更快的计算时间,因此在 1.12 中对 Bfloat16 数据类型进行了新的改进。
  • FSDP API:作为原型在 1.11 版中发布,FSDP API 在 1.12 版的发布中达到了测试版,并添加了一些改进。

更多内容请查看:https://pytorch.org/blog/pytorch-1.12-released/。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
标签:
上一篇2025-08-22

相关推荐

  • 莱特帀手机钱包-莱特币手机钱包

    【莱特帀手机钱包】——您的虚拟货币安全助手随着数字货币的兴起,莱特帀作为一种备受关注的加密货币,越来越受到投资者的青睐,为了方便用户安全、便捷地管理莱特帀资

    2025-08-22 09:06:09
    2019
  • ttm数字货币币钱包-ttt数字货币

    TTM数字货币币钱包——您的虚拟货币钱包助手随着数字货币的普及,越来越多的人开始关注并投资数字货币,数字货币的安全存储问题成为了投资者们面临的一大挑战,为了解

    2025-08-22 09:06:09
    2013
  • 货币钱包转账违法吗

    虚拟货币钱包助手:揭秘钱包转账的合法性与风险尊敬的用户,您好!作为虚拟货币钱包助手,今天我们来探讨一下关于虚拟货币钱包转账的合法性与风险问题,什么是虚拟货币钱包

    2025-08-22 09:06:09
    2005
  • 欧意交易所app最新下载安装_欧意OK交易平台App下载教程

    大家好,今天来跟大家分享一下如何下载安装欧意交易所的官方App,也就是欧意OK交易平台App,这个App可以帮助用户在手机上轻松进行数字资产的交易和管理,下面是详细的下

    2025-08-22 09:06:09
    2004
  • 派币今天价值多少钱(派币今日价值报告)

    派币今天价值多少钱(派币今日价值报告)如果你是一名投资者,特别是加密货币投资者,那么你可能会对派币的表现感兴趣。究竟,在今天的市场上,你的派币价值是多少呢?让我们

    2025-08-22 09:06:09
    2003
  • usdt钱包官方下载(高级版本V6.4.24)_USDT钱包是什么?

    USDT钱包是一款基于区块链技术的数字货币钱包,主要应用于泰达币(USDT)的存储、转账和交易,泰达币作为一种稳定币,其价值与美元挂钩,1 USDT兑换1美元,因此在数字货币市场

    2025-08-22 09:06:09
    2003
  • 虚拟币前十名的各币价格

    在数字货币的世界里,各种虚拟币的价格波动总是牵动着投资者的心,下面,我将为您详细介绍当前市值排名前十的虚拟币及其价格情况,帮助您更好地了解这个市场,我们需要明确

    2025-08-22 09:06:09
    2003
  • 鱼池sc钱包-鱼池钱包模式

    【鱼池SC钱包】——您的虚拟货币守护神随着区块链技术的不断发展,虚拟货币已经成为越来越多人的投资选择,为了方便用户安全、便捷地管理自己的虚拟货币资产,各种虚拟

    2025-08-22 09:06:09
    2003