作者丨陈萍

来源丨机器之心

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/

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊精品课程官网:3dcver.com

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从入门到精通:理论与实战

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

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

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

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

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

觉得有用,麻烦给个赞和在看~  

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

  1. Homebrew正式支持苹果M1,程序员换新Mac又多了一条理由

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 缺少Homebrew支持,是不是阻碍你更换M1芯片的Mac最大原因之一? 好消息来了:今天Homebrew官方发布了3.0.0版,开始正式 ...

  2. Linux 5.13-rc1 发布 初步支持苹果M1

    Linus Torvalds 发布了 Linux 5.13-rc1 版本,L inus 在邮件中描述,这是一个大的版本更新,并且进行的相当顺利,该版本进行了较大窗口的合并.Linux 5.13-rc1 ...

  3. 使用了12个月的苹果 M1 芯片,我发现了它的「致命」弱点

    作者 | Attila Vágó 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 首先,我仍然相信苹果 M1 的芯片在技术上取得了巨大的飞跃,再次站在了创新的最前沿,然而一旦新鲜感消失之 ...

  4. 95后大学生利用漏洞免费吃肯德基获刑;Linux内核初步支持苹果M1;Android Studio 4.2 发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  5. Docker容器已正式支持苹果M1Mac电脑

    Docker今日发布了新版本Docker Desktop,正式支持了苹果M1芯片的Mac电脑. Docker官方表示,M1 Mac版本的Docker Desktop更加高效,运行起来更加安静,开发者能 ...

  6. Windows 11 有望支持苹果 M1 Mac?微软和高通的秘密协议即将到期

    上个月 5 号,Windows 11 正式发布,虽然伴随着不断的骂声,但不可否认的是,还是有许多人想尝尝这"苹果味儿"的 Windows 界面,其中就包括部分 M1 Mac 用户. ...

  7. m1的linux支持哪些版本,加入对苹果M1芯片支持并合并至主线 全新Linux内核版本曝光...

    加入对苹果M1芯片支持并合并至主线 全新Linux内核版本曝光 来源:IT之家 2021-04-28 08:43:53 本月上旬,开发者 Hector Martin 宣布,将开始初步支持 M1 的工作 ...

  8. 任天堂 Wii 模拟器 Dolphin 已原生支持苹果 M1 Mac 电脑

    著名的任天堂 Wii 和 GameCube 模拟器 Dolphin(海豚)近日宣布,已原生支持苹果 M1 Mac 电脑,同时优化了 Mali GPU 的适配,在 Android 平台使用体验更好.Do ...

  9. m1芯片 mysql_苹果M1芯片各种不支持,但居然可以刷朋友圈!你会买单吗?

    上个月和大家一起分享过,最新的苹果M1芯片上支持的各种开源软件.什么?还没读过?赶紧点这里:一文解读苹果 M1 芯片电脑上的开源软件. 现在已经过去了半个月,想必有不少的同学都已经入手了最新的苹果M1 ...

最新文章

  1. neo4j图形数据库JAVA实现
  2. 浅谈RxJava与2.0的新特性
  3. 找到二叉树中的最大搜索子树
  4. 【ABAP】带Excel附件的邮件发送功能
  5. Qt Creator使用ClearCase
  6. 十分钟看懂什么是VoLTE【包学包会,否则退款】
  7. python异步和进程_12.python进程\协程\异步IO
  8. spring 集成mybatis——多数据源切换(附带定时器的配置)
  9. 为LogAnalyzer添加源IP
  10. [Git]解决Permission denied, please try again问题
  11. iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别
  12. 公司规定所有接口都用 POST请求,看不起 get ?这是为什么?
  13. android studio for android learning (二十八) android基础知识
  14. Echarts异步获取数据不显示问题
  15. 西门子代理商 上海西纪帮您选型刚刚好
  16. Linux当前目录下所有jpg文件,解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法...
  17. this的指向为什么是undefined
  18. VSCode 菜单栏不见了,该怎么办
  19. java 篮球队淘汰赛冠军_《黑白2》口袋世界淘汰赛挑战各馆主冠军方法
  20. MFC中单文档程序框架

热门文章

  1. ubuntu16 + gt940m + cuda9.2 + cudann7.3
  2. 酒店销售找客户的方法 酒店销售技巧
  3. WebApi 将 DataRow、DataTable转换成JObject返回
  4. 第三章 jQuery
  5. 【iPhone/iPad】白苹果修复教程
  6. python发红包程序解析-微信红包python实现
  7. 如何本地ssh远程登录阿里云服务器 ECS
  8. 云时代架构之微店大数据开发平台架构演进
  9. 心里的花,我想要带你回家
  10. 我妈微信加我了,我差点把我妈当微商拉黑!!!