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

  • airpods pro能连安卓吗(AirPods pro能连安卓手机吗)

    airpods pro能连安卓吗(AirPods pro能连安卓手机吗)

  • 2ndf手机计算器里是什么键字(手机计算器20%)

    2ndf手机计算器里是什么键字(手机计算器20%)

  • vivo手机连不上苹果11热点(vivo手机连不上自家wifi)

    vivo手机连不上苹果11热点(vivo手机连不上自家wifi)

  • 拼多多申请退款撤销后还能再申请吗(拼多多申请退款退货的流程)

    拼多多申请退款撤销后还能再申请吗(拼多多申请退款退货的流程)

  • 手机晚上忘关屏醒来很烫(手机晚上忘关屏幕怎么办)

    手机晚上忘关屏醒来很烫(手机晚上忘关屏幕怎么办)

  • 手机智能侧边栏不显示怎么办(手机智能侧边栏找不见)

    手机智能侧边栏不显示怎么办(手机智能侧边栏找不见)

  • 支付宝不支持手机号码充值是怎么回事(支付宝不支持手机版本怎么办)

    支付宝不支持手机号码充值是怎么回事(支付宝不支持手机版本怎么办)

  • 微信如何设置自动回复功能(微信如何设置自动抢红包功能)

    微信如何设置自动回复功能(微信如何设置自动抢红包功能)

  • 单片机的组成(单片机的组成有哪些)

    单片机的组成(单片机的组成有哪些)

  • 天猫方糖不插电能用吗(天猫方糖突然不能联网怎么弄)

    天猫方糖不插电能用吗(天猫方糖突然不能联网怎么弄)

  • 抖音发了为啥浏览量为0(为什么抖音发的视频浏览量显示但是看不到)

    抖音发了为啥浏览量为0(为什么抖音发的视频浏览量显示但是看不到)

  • 手机wps怎么查看字数(手机wps怎么查看页边距)

    手机wps怎么查看字数(手机wps怎么查看页边距)

  • 金立手机锁屏壁纸取消(金立手机锁屏壁纸怎么关闭)

    金立手机锁屏壁纸取消(金立手机锁屏壁纸怎么关闭)

  • word开始选项卡功能(word开始选项卡不能完成的任务)

    word开始选项卡功能(word开始选项卡不能完成的任务)

  • 荣耀20语音助手叫什么(荣耀20语音助手唤醒词怎么改)

    荣耀20语音助手叫什么(荣耀20语音助手唤醒词怎么改)

  • 微信怎么取消收款码(微信怎么取消收款店员)

    微信怎么取消收款码(微信怎么取消收款店员)

  • 苹果系统12.4.1更新了什么(苹果系统更新12.5)

    苹果系统12.4.1更新了什么(苹果系统更新12.5)

  • 手机怎么打带横线的字(手机横符号怎么打出来)

    手机怎么打带横线的字(手机横符号怎么打出来)

  • 3dtachi是什么(3d-tlc)

    3dtachi是什么(3d-tlc)

  • 哈罗单车怎么调座位的高低(哈罗单车怎么调整座椅高低)

    哈罗单车怎么调座位的高低(哈罗单车怎么调整座椅高低)

  • word不显示网格线怎么设置(word文档中没有网格框线在哪儿添加)

    word不显示网格线怎么设置(word文档中没有网格框线在哪儿添加)

  • 如何养成安全的上网习惯(如何养成良好的安全行为)

    如何养成安全的上网习惯(如何养成良好的安全行为)

  • 电脑任务栏在右边怎么办?(电脑任务栏在右边怎么调回下边)

    电脑任务栏在右边怎么办?(电脑任务栏在右边怎么调回下边)

  • web前端-JavaScript中的forEach和map方法(Web前端开发知识点总结)

    web前端-JavaScript中的forEach和map方法(Web前端开发知识点总结)

  • 织梦DEDECMS教程:给图片加上自动编号(织梦cms要钱吗)

    织梦DEDECMS教程:给图片加上自动编号(织梦cms要钱吗)

  • 公司去社保局开什么发票
  • 已认证的专票可以取消认证吗
  • 增值税进项发票网上勾选平台
  • 企业出售房产要交哪些税
  • 公司产品的打样费入什么会计科目
  • 没申报可以开票嘛
  • 所得税一般纳税人几个点
  • 固定资产折旧财务
  • 房地产企业契税税率是多少
  • 进货有商业折扣商品怎么入库
  • 企业的固定资产因自然灾害产生的净损失应计入哪里
  • 制造费用的
  • 管理费用中的五项费用
  • 房地产企业预收账款
  • 关于进项税额转出的规定
  • 固定资产处置的账务处理
  • 不抵扣的发票怎么导入做账系统
  • 金融资产包括哪三大类及会计科目
  • 购进非税货物有折扣怎么做账?
  • 银行借款用于在建工程
  • 跨年红冲发票影响所得税吗
  • 法人向公司借款用途怎么写
  • 以旧换新计税依据
  • 冲减增值税进项税怎么处理
  • 农业生产用水水资源税
  • 怎样让鼠标变得好看些
  • 域名解析错误怎么解决mac
  • 360tray.exe损坏文件怎么修复
  • 公司已经控股一年怎么办
  • 交易性金融资产属于什么科目
  • 对于在某一时点履行义务,企业应当在
  • 今天端午节?
  • 退货时可以按部分退货吗
  • 伊吕波赛道
  • 应收票据到期后账务处理
  • 丑八怪 英文
  • jasypt加密解密
  • 出租车发票可以改时间吗
  • 缴纳税收的凭证怎么打印
  • sql server更新数据
  • 固定资产报废处置的请示
  • FreeBSD安装xfce4: 鼠标不能用
  • mysql 索性
  • 电子税务局增值税抵扣流程
  • 2020年混凝土增值税税率是多少
  • 库存现金太多违反什么规定
  • 负数发票作废后对原发票有影响吗
  • 未开票确认收入账务处理
  • 工业用电交税怎么算
  • 独立核算好处
  • 增值税年末必须要交吗
  • 内部交易内部交易收益造成的当期折旧的多计额
  • 什么时候确认应收
  • 商业企业注销应检查哪方面的问题
  • 强制删除快捷键是什么
  • linux转移文件代码
  • 安装2个win10系统
  • windows提升性能
  • Windows Server 2008的节能降耗
  • 苹果mac安装win7系统
  • 运维zabbix
  • spvic.exe - spvic是什么进程 有什么作用
  • centos最小化安装配置网络
  • 不用第三方软件获取鼠标坐标
  • win7电脑剪贴板里面的内容在哪打开
  • centos5.4
  • WIN10安装介质不识别硬盘
  • php九宫格
  • 微信小程序模板框架
  • js内存泄漏的原因及解决办法
  • unity编译原理
  • 怎么申请返回
  • sed基本用法
  • js的点击事件怎么做
  • angularjs4
  • unity怎么写接口
  • unity方法调用
  • jquery easyui有哪些特点
  • 城市垃圾处理费会计分录
  • 审计的起源和发展史
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设