位置: 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)

  • 微信支付怎么将之前认证的账户清除(微信支付怎么将零钱转入银行卡)

    微信支付怎么将之前认证的账户清除(微信支付怎么将零钱转入银行卡)

  • 360浏览器极速模式如何打开(360浏览器极速模式怎么开手机)

    360浏览器极速模式如何打开(360浏览器极速模式怎么开手机)

  • 微信如何引用别人的话回复(微信如何引用别人说的话)

    微信如何引用别人的话回复(微信如何引用别人说的话)

  • 苹果手机下载软件密码忘了怎么办(苹果手机下载软件都需要购买吗)

    苹果手机下载软件密码忘了怎么办(苹果手机下载软件都需要购买吗)

  • 华为hg8310m最大带宽(华为hg8310m是否支持200m宽带)

    华为hg8310m最大带宽(华为hg8310m是否支持200m宽带)

  • 微信群聊为什么只能加40人(微信群聊为什么找不到了)

    微信群聊为什么只能加40人(微信群聊为什么找不到了)

  • 苹果快充有标志吗(苹果快充标志闪)

    苹果快充有标志吗(苹果快充标志闪)

  • 微视不认证有收益吗(微视认证必须qq登陆吗)

    微视不认证有收益吗(微视认证必须qq登陆吗)

  • 本地连接未启用dhcp是什么意思(本地连接未启用dncp)

    本地连接未启用dhcp是什么意思(本地连接未启用dncp)

  • 红米k30掉电太快怎么办(红米k30掉电太快怎么回事)

    红米k30掉电太快怎么办(红米k30掉电太快怎么回事)

  • 华为电脑pin是几位(华为电脑pin码是多少)

    华为电脑pin是几位(华为电脑pin码是多少)

  • 苹果xsmax要不要更新13系统

    苹果xsmax要不要更新13系统

  • 戴尔笔记本无线网络开关在哪里(戴尔笔记本无线鼠标怎么连接)

    戴尔笔记本无线网络开关在哪里(戴尔笔记本无线鼠标怎么连接)

  • 苹果11怎么显示电池电量百分比(苹果11怎么显示蓝牙耳机电量)

    苹果11怎么显示电池电量百分比(苹果11怎么显示蓝牙耳机电量)

  • 怎么关闭输入法震动(怎么关闭输入法的记忆)

    怎么关闭输入法震动(怎么关闭输入法的记忆)

  • 新买的手机号码被别人注册微信怎么办(新买的手机号码支付宝被注册了怎么办)

    新买的手机号码被别人注册微信怎么办(新买的手机号码支付宝被注册了怎么办)

  • 荣耀手环5怎么连接手机(荣耀手环5怎么充电)

    荣耀手环5怎么连接手机(荣耀手环5怎么充电)

  • ie浏览器如何取消360导航(ie浏览器如何取消保存密码)

    ie浏览器如何取消360导航(ie浏览器如何取消保存密码)

  • 怎样投屏(怎样投屏到电视上去)

    怎样投屏(怎样投屏到电视上去)

  • wps表格公式怎么用(wps表格公式怎么输入)

    wps表格公式怎么用(wps表格公式怎么输入)

  • 如何远程控制桌面?(远程怎么控制电脑)

    如何远程控制桌面?(远程怎么控制电脑)

  • 记录Chrome插件从V2版本升级到V3版本的过程中遇到的问题(谷歌浏览器历史记录插件)

    记录Chrome插件从V2版本升级到V3版本的过程中遇到的问题(谷歌浏览器历史记录插件)

  • 帝国cms怎么整合ckplayer6.1(帝国cms怎么用)

    帝国cms怎么整合ckplayer6.1(帝国cms怎么用)

  • 计提住房公积金怎么算
  • 交易性金融资产有哪些
  • 出口退税综合服务平台广东
  • 因产品不合格退回报废会计处理
  • 交易性金融资产入账价值怎么计算
  • 办公室购置空调的词语
  • 预付款怎么做账务处理
  • 营业外收入是否报增值税
  • 会计审计合同
  • 简易办法征收一般纳税人开票税率
  • 买入返售金融资产什么意思
  • 汇算清缴需要调增的费用
  • 报销单里报销内容可以写送客户烟吗
  • 短期借款的明细科目是什么
  • 支付董事会成员津贴计入什么科目
  • 1697508669
  • 企业没有进项票只有成本票
  • 制造费用月末怎么结转到生产成本
  • 公司购买的办公桌椅属于固定资产吗
  • 工业企业预付材料款时一般应借记什么账户
  • 税务局返还的个税手续费需要缴纳增值税吗
  • 公司工会需要单独做账么
  • 增值税开票系统客服电话
  • 房子按季度收取租金,怎么交房产税
  • 清卡处于非征期是什么意思
  • 事业单位政府预算
  • 商场充值卡发票在哪开
  • 递延所得税资产是什么意思
  • 微软的客户主要是什么
  • dgservice.exe是什么软件
  • 什么手机最薄最有手感
  • conda不是内部或外部命令
  • 残疾人就业保障金有什么好处
  • php官方文档
  • 该税号缺少必要信息
  • YII Framework的filter过滤器用法分析
  • 购买原材料产生的费用
  • 大前端需要掌握什么技能
  • Ubuntu18.04配置允许远程访问
  • 快速傅里叶变换matlab
  • css如何应用
  • 权益法转成本法非同一控制下为什么不公允
  • mysql中regexp_instr函数的使用
  • 各行业税点大全最新
  • 增值税退税怎么退
  • 会计分录格式范本手写
  • python__get__
  • 股权投资公司属于证券公司
  • sqlserver2005数据库备份
  • 税金及附加包括哪些科目
  • 企业清算是怎么做账的
  • 长期股权投资与其他权益工具投资的区别
  • 现金预算包括哪些内容,来源是什么
  • 税务评估价多久更新一次
  • 以前年度社保计提出错了怎么调整
  • 企业收到个体户的普通发票还需要缴纳20%的税吗
  • 企业退休职工取暖费
  • 公司员工抽奖活动
  • 公司员工还款会计分录
  • 往来账是什么样的
  • 业务提成怎么做账内账
  • 用户登陆login什么意思
  • MYSQL数据库应用
  • win8蓝屏代码大全
  • centos查看硬件设备
  • WIN10系统安装EXCEL打开会报警
  • win7系统怎么启用本地连接
  • mac中quick-cocos2dx-2.2.5+sublime text 2搭建lua的开发环境
  • javascript运用
  • Node.js中的包管理工具是什么
  • scrollview不滚动
  • JavaScript中的this指向
  • jQuery基本选择器
  • js中substring和substr有区别吗
  • 国家税务局河南省税务总局官网
  • 税务稽查案件办案程序规定
  • 如何在税务系统增加开票人员
  • 没有代理记账资质做代理记账业务
  • 销货清单表格的制作方法
  • 大班直播课怎么上
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设