资讯详情

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

作者丨陈萍

来源!机器之心

PyTorch 1.12 正式发布,未更新的合作伙伴可以更新。

距离 PyTorch 1.11 推出几个月,PyTorch 1.12 来了!这个版本的原因 1.11 版本以来的 3124 多次 commits 组成,由 433 贡献者完成.12 版本有了很大的改进,修复了很多 Bug。

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

bf5b1998d572536ba23912f45a87e028.png

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

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 官方已经发布了一个新的 Beta 版本供用户试用:TorchArrow。这是一个机器学习预处理库,可以批量处理数据。性能高,性能高 Pandas 风格也很容易使用 API,加快用户预处理流程和开发。

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

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

PyTorch 现在支持多个 CPU 和 GPU fastpath 实现(BetterTransformer),也就是 Transformer 编码器模块,包括 TransformerEncoder、TransformerEncoderLayer 和 MultiHeadAttention (MHA) 的实现。在新版本中,BetterTransformer 在许多常见场景中,速度很快 2 这也取决于模型和输入特性。新版本 API 支持以前的 PyTorch Transformer API 兼容性,如果现有模型满足, fastpath 执行要求将加速现有模型的读取和使用以前的版本 PyTorch 训练模型。新版本 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/

本文仅进行学术分享。如有侵权行为,请联系删除。

1.自动驾驶领域的多传感器数据集成技术

2.自动驾驶领域3D点云目标检测全栈学习路线!(单模态 多模态/数据 代码)3.彻底了解视觉三维重建:原理分析、代码解释、优化和改进4.中国第一门面向工业级实战的点云处理课程5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码解释6.彻底理解视觉-惯性-惯性SLAM:基于VINS-Fusion正式开课啦7.彻底了解基础LOAM框架的3D激光SLAM: 从源代码分析到算法优化8.室内外激光彻底分析SLAM关键算法原理、代码和实战(cartographer LOAM LIO-SAM)

9.从零开始建造一套结构光3D重建系统[理论 源码 实践]

10.单目深度估计方法:算法梳理和代码实现

11.在自动驾驶中部署深度学习模型

12.相机模型及标定(单目) 双目 鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战:/p>

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

扫码添加小助手微信,可

也可申请加入我们的细分方向交流群,目前主要有等微信群。

一定要备注:,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。也请联系。

▲长按加微信群或投稿

▲长按关注公众号

:针对3D视觉领域的五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

标签: 传感器m1

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台