位置: IT常识 - 正文

PyTorch 1.13 正式发布:CUDA 升级、集成多个库、M1 芯片支持(pytorch1.5)

编辑:rootadmin
PyTorch 1.13 正式发布:CUDA 升级、集成多个库、M1 芯片支持

推荐整理分享PyTorch 1.13 正式发布:CUDA 升级、集成多个库、M1 芯片支持(pytorch1.5),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch 1.8,pytorch 1.8.1,pytorch1.5,pytorch 1.7,pytorch1.5,pytorch 1.1.0,pytorch 1.7,pytorch 1.7,内容如对您有帮助,希望把文章链接给更多的朋友!

内容导读:近日,PyTorch 团队在官方博客宣布 Pytorch 1.13 发布。本文将详细围绕新版本的 4 大亮点展开介绍。

据官方介绍,PyTorch 1.13 中包括了 BetterTransformer 的稳定版,且不再支持 CUDA 10.2 及 11.3,并完成了向 CUDA 11.6 及 11.7 的迁移。此外 Beta 版还增加了对 Apple M1 芯片及 functorch 的支持。

PyTorch 1.13 不可错过的亮点汇总:

BetterTransformer 功能集 (feature set) 支持一般的 Transformer 模型在推理过程中,无需修改模型即可进行 fastpath 执行 此外改进还包括对 Transformer 模型中常用 size 进行加速的 add+matmul 线性代数内核,现已默认启用嵌套 Tensor。

不再支持旧的 CUDA 版本,引入 Nvidia 推出的最新 CUDA 版本。这使得 PyTorch 和新的 NVIDIA Open GPU 内核模块得以支持 C++17 。

functorch 从单独软件包变为可直接通过 import functorch 导入 PyTorch 使用,无需再单独安装。

测试为 M1 芯片 Mac 提供本地构建,并提供更好的 PyTorch API 支持。

Stable Features1. BetterTransformer API

BetterTransformer 功能集 (feature set) 支持一般的 Transformer 模型在推理过程中,无需修改模型即可进行 fastpath 执行。

作为补充,PyTorch 1.13 中还针对 Transformer 模型中常用的 size,加速了 add+matmul 线性代数内核。

为了提升 NLP 模型性能,PyTorch 1.13 中的 BetterTransformer 默认启用嵌套 Tensor (Nested Tensor)。 在兼容性方面,执行 mask check 确保能提供连续 mask。

Transformer Encoder 中 src_key_padding_mask 的 mask check 可以通过设置 mask_check=False 屏蔽。该设置可以加快处理速度,而非仅提供对齐的 mask。

最后,提供了更好的报错信息,简化错误输入的诊断,同时为 fastpath execution 错误提供了更佳的诊断方法。

Better Transformer 直接集成到 PyTorch TorchText 库中, 这使得 TorchText 用户能够更轻松地利用 BetterTransformer 的速度及效率性能。

2. 引入 CUDA 11.6 和 11.7,不再支持 CUDA 10.2 和 11.3

CUDA 11 是第一个支持 C++17 的 CUDA 版本,不再支持 CUDA 10.2 是推进 PyTorch 支持 C++17 的重要一步,还能通过消除遗留的 CUDA 10.2 特定指令,来改进 PyTorch 代码。

CUDA 11.3 的退出和 11.7 的引入,使得 PyTorch 对 NVIDIA Open GPU 内核模块的兼容性更好, 另一个重要的亮点是对延迟加载 (lazy loading) 的支持。

CUDA 11.7 自带 cuDNN 8.5.0,包含大量优化,可加速基于 Transformer 的模型,库的 size 减少 30% ,并对 runtime fusion engine 进行了各种改进。

Beta Features1. functorch

与 Google JAX 类似,functorch 是 PyTorch 中的一个库,提供可组合的 vmap(矢量化)和 autodiff 转换。 它支持高级的 autodiff 用例(在 PyTorch 中难以表达),包括:

模型集成 model ensembling

高效计算 Jacobian 和 Hessians

PyTorch 1.13 正式发布:CUDA 升级、集成多个库、M1 芯片支持(pytorch1.5)

计算 per-sample-gradients 或其他 per-sample quantities

PyTorch 1.13 内置 functorch 库,无需单独安装。通过 conda 或 pip 安装 PyTorch 后,就可以在程序中 import functorch 了。

2. 集成英特尔 VTune™ Profiler 及 ITT

PyTorch 用户如果希望在英特尔平台上用底层性能指标来分析每个算子的性能时,可以在英特尔 VTune™ Profiler 中可视化 PyTorch 脚本执行的算子级 timeline。

with torch.autograd.profiler.emit_itt(): for i in range(10): torch.itt.range_push('step_{}'.format(i)) model(input) torch.itt.range_pop()3. NNC:增加 BF16 和 Channels last 支持

通过在 NNC 中增加 Channels last 和 BF16 的支持,TorchScript 在 x86 CPU 上的 graph-mode 推理性能得到了显著提升。

在英特尔 Cooper Lake 处理器上,通过这两项优化,可以使得视觉模型性能达到 2 倍以上的提升。

通过现有的 TorchScript、Channels last 以及 BF16 Autocast API, 可以实现性能提升。如下所示,NNC 中的优化将迁移到新的 PyTorch DL Compiler TorchInductor 中:

import torchimport torchvision.models as modelsmodel = models.resnet50(pretrained=True)# Convert the model to channels-lastmodel = model.to(memory_format=torch.channels_last)model.eval()data = torch.rand(1, 3, 224, 224)# Convert the data to channels-lastdata = data.to(memory_format=torch.channels_last)# Enable autocast to run with BF16with torch.cpu.amp.autocast(), torch.no_grad():# Trace the modelmodel = torch.jit.trace(model, torch.rand(1, 3, 224, 224)) model = torch.jit.freeze(model) # Run the traced model model(data)4. 增加对 M1 芯片苹果设备的支持

自 1.12 版本以来,PyTorch 一直致力于为苹果 M1 芯片提供原生构建。PyTorch 1.13 进一步改进了相关 API。

PyTorch 1.13 在 M1 macOS 12.6 实例上进行了除 torch.distribution 之外的所有子模块测试。这些改进后的测试,可以修复 cpp 扩展以及某些输入的 convolution correctnes 等功能。

注意:该功能要求 M1 芯片的 macOS 12 或更高版本,并使用原生 Python (arm64) 。

Prototype Features1. 针对 AWS Graviton 的 ACL 后端支持

PyTorch 1.13 通过 Arm Compute Library (ACL) 在 aarch64 CPU 上实现了 CV 和 NLP 推理的实质性提升, 这使得 ACL 后端得以支持 PyTorch 及 torch-xla 模块。亮点包括:

启用 mkldnn+acl 作为 aarch64 torch wheel 的默认后端

为 arch64 BF16 设备启用 mkldnn matmul operator

将 TensorFlow xla+acl 功能引入 torch-xla。

2. CUDA Sanitizer

启用后,Sanitizer 将开始分析因用户的 PyTorch 代码而调用的底层 CUDA operation,以检测数据争用报错 (data race error)。

注:这些报错是由源自不同 CUDA Stream 的不同步数据访问而导致的。

与 Thread Sanitizer 类似,定位到的报错会与错误访问的堆栈 trace 一起打印出来。

机器学习应用中损坏的数据很容易被忽略,报错有时候也并不显现,因此用于检测并定位错误的 CUDA Sanitizer 就格外重要了。

3. 部分支持 Python 3.11

用户可通过 pip 下载支持 Python 3.11 的 Linux 二进制文件。不过这个功能只是一个 preview 版,Distributed、Profiler、FX 和 JIT 等功能并未完全支持。

从 0 到 1,学习 PyTorch 官方教程

OpenBayes.com 现已上线多个中文 PyTorch 官方教程,包括但不限于 NLP,CV,DL 等多个实例,您可以访问控制台,在公开资源中搜索查看。

运行 PyTorch 中文教程,点击文末阅读原文,或访问以下链接:

https://openbayes.com/console/public/tutorials

本文链接地址:https://www.jiuchutong.com/zhishi/299174.html 转载请保留说明!

上一篇:HBuilderX 安装教程(hbuilderx安装教程视频)

下一篇:sklearn预测评估指标计算详解:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1score(sklearn average precision)

  • 优酷怎么使用全景视频教程(优酷如何全屏观看)

    优酷怎么使用全景视频教程(优酷如何全屏观看)

  • 苹果13支持120hz吗(苹果13支持120hz高刷吗)

    苹果13支持120hz吗(苹果13支持120hz高刷吗)

  • icloud关闭后本地照片还在吗(icloud关闭后本地文件还在吗)

    icloud关闭后本地照片还在吗(icloud关闭后本地文件还在吗)

  • 凯迪仕指纹锁怎么更换密码(凯迪仕指纹锁怎么进入管理模式)

    凯迪仕指纹锁怎么更换密码(凯迪仕指纹锁怎么进入管理模式)

  • 怎么用电脑打出乘号(怎么用电脑打出@符号)

    怎么用电脑打出乘号(怎么用电脑打出@符号)

  • 2020ipad pro什么时候发布(2020ipad pro什么时候出的)

    2020ipad pro什么时候发布(2020ipad pro什么时候出的)

  • 手机qq如何给对方播放视频(手机qq如何对一个人隐身)

    手机qq如何给对方播放视频(手机qq如何对一个人隐身)

  • 非连续文本是指什么(非连续文本包括哪些)

    非连续文本是指什么(非连续文本包括哪些)

  • 美团众包不干了要注销吗(美团众包不干了接单拿回家会怎么样)

    美团众包不干了要注销吗(美团众包不干了接单拿回家会怎么样)

  • 黄伟达显卡是什么意思(英伟达显卡怎么样)

    黄伟达显卡是什么意思(英伟达显卡怎么样)

  • 步步高学习机怎么截屏(步步高学习机下载中心)

    步步高学习机怎么截屏(步步高学习机下载中心)

  • 为什么抖音没有扫一扫(为什么抖音没有切换账号功能)

    为什么抖音没有扫一扫(为什么抖音没有切换账号功能)

  • oppoa11x有闪充功能吗(oppoa11闪充标志在哪)

    oppoa11x有闪充功能吗(oppoa11闪充标志在哪)

  • 为什么苹果手机的邮件无法使用(为什么苹果手机屏幕亮度突然变暗)

    为什么苹果手机的邮件无法使用(为什么苹果手机屏幕亮度突然变暗)

  • 华为荣耀10有录屏功能吗(华为荣耀10有录音功能吗)

    华为荣耀10有录屏功能吗(华为荣耀10有录音功能吗)

  • 荣耀20青春版指纹在哪里(荣耀20青春版指纹解锁怎么用)

    荣耀20青春版指纹在哪里(荣耀20青春版指纹解锁怎么用)

  • excel的默认工作簿名称是(Excel的默认工作簿名称为)

    excel的默认工作簿名称是(Excel的默认工作簿名称为)

  • 光纤亮红灯是什么情况(光纤亮红灯咋办)

    光纤亮红灯是什么情况(光纤亮红灯咋办)

  • 承载系统lte打开会提高网速吗(承载系统lte打开收费吗)

    承载系统lte打开会提高网速吗(承载系统lte打开收费吗)

  • 换手机信息如何转移到另外手机上(换手机之后信息怎么转移)

    换手机信息如何转移到另外手机上(换手机之后信息怎么转移)

  • 苹果怎么用另一个号发短信(苹果怎么用另一个卡发短信)

    苹果怎么用另一个号发短信(苹果怎么用另一个卡发短信)

  • 苹果8可以反向充电吗(苹果8反向充电)

    苹果8可以反向充电吗(苹果8反向充电)

  • vivo手机如何sos(ViVO手机如何截图)

    vivo手机如何sos(ViVO手机如何截图)

  • 华为手机会说话怎么关闭(华为手机会说话的叫什么)

    华为手机会说话怎么关闭(华为手机会说话的叫什么)

  • 浏览器私密空间怎么打开(浏览器私密空间在哪里打开)

    浏览器私密空间怎么打开(浏览器私密空间在哪里打开)

  • 小米8未知来源怎么设置(小米8未知来源安装在哪里设置)

    小米8未知来源怎么设置(小米8未知来源安装在哪里设置)

  • access2002的报表由什么组成(access怎么设置报表显示内容)

    access2002的报表由什么组成(access怎么设置报表显示内容)

  • 前端知识——css之flex布局(css前端还是后端)

    前端知识——css之flex布局(css前端还是后端)

  • 【ES6丨前端进阶基础 】ES6的关键字,新特性以及解构赋值(前端es6是什么意思)

    【ES6丨前端进阶基础 】ES6的关键字,新特性以及解构赋值(前端es6是什么意思)

  • 应交税费是什么科目
  • 税控盘这个月没有反写会怎么样
  • 培训个人所得税计算
  • 无票收入在增值税表中填哪
  • 工会刻章费用计入什么支出
  • 科目余额表凭证号顺序
  • 什么是非限制
  • 小规模公司房租费发票税率
  • 制造企业售后服务方案
  • 办公楼贷款比例
  • 减免税费期末如何结转
  • 个人账户可以转公户吗?
  • 生产企业报关单金额大于发票金额
  • 退税勾选的发票账务处理
  • 企业开票代码是什么意思
  • 连年亏损的企业因为具有递延税金的优势
  • 房地产开发公司注册资金要求
  • 社保和医保是分开到账吗
  • 财务费用属于什么会计科目类别
  • 怎么用苹果6splus
  • 主营业务成本计入成本类账户吗
  • 印花税的征收范围
  • 收到增值税红字发票怎么入账
  • 建筑工程增值税税率是多少
  • PHP:session_register_shutdown()的用法_Session函数
  • 处理固定资产的账务处理
  • fedora23安装
  • 软件服务费应计入什么
  • 新年快乐彝文怎么写
  • 物流公司交保险是骗局吗
  • thinkphp i方法
  • springboot -d
  • pytorch教程
  • dmesg | grep tty
  • php 密码
  • 融资租赁初始直接费用计入哪个科目
  • 发票勾选平台进入后没有什么内容
  • 如何办理出口退税备案
  • 计提工会经费明细表
  • 按摊余成本计量的应收账款
  • 什么是合伙企业?它的特点有哪些?
  • 工业企业成本核算方法
  • python的shell怎么运行文件
  • 设备安装工程验收规范
  • 股东清算收入是负债吗
  • 净营业周期为负数
  • 个税申报中本人扣除比例什么意思
  • 购买的机械设备算固定资产吗
  • mysql数据库在使用时的常见错误号和解决方法有哪些?
  • 结算备付金账户是什么帐户
  • 融资租赁的会计处理方法举例子
  • 机械设备预付款比例
  • 企业购买理财产品收益要交税吗
  • 刻章费用怎么说
  • 与其他企业联营
  • 技术服务费可以开专票吗
  • 外经证是干什么用的
  • 成本核算方法是移动加权平均法吗
  • 记账凭证原始凭证回单的粘贴顺序
  • 管理会计运用什么软件
  • mysql 5.7.30安装
  • Vista 目前的窘境5大原因分析
  • windows8关机在哪里
  • msqry32.exe进程是什么文件 作用是什么 msqry32进程查询
  • excel自动关闭如何设置
  • win10安装字体的操作步骤
  • linux从一个命令获取数据到另一个命令
  • opengl光照效果
  • javascript数组操作方法
  • angular的ngif
  • unity反射效果
  • unity uishader
  • 如何获取医院电子发票
  • &&在js中
  • jq复选框选中触发事件
  • 小规模纳税人开3%专票怎么交税
  • 关于保安公司词语
  • 消费税征税环节
  • 城镇土地使用税的计算公式
  • 广东省社保缴费基数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设