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

  • 鸿蒙怎么添加健康码到桌面(鸿蒙怎么添加桌面快捷方式)

    鸿蒙怎么添加健康码到桌面(鸿蒙怎么添加桌面快捷方式)

  • realme gt neo2摄像头参数是怎样的(realme gt neo前摄)

    realme gt neo2摄像头参数是怎样的(realme gt neo前摄)

  • 苹果13怎么恢复出厂设置(苹果13怎么恢复短信删除的内容)

    苹果13怎么恢复出厂设置(苹果13怎么恢复短信删除的内容)

  • Excel怎么做电子表格(电脑怎么做excel表格)

    Excel怎么做电子表格(电脑怎么做excel表格)

  • 网易邮箱账号被锁定了怎么办啊(网易邮箱账号被换绑了能找回吗)

    网易邮箱账号被锁定了怎么办啊(网易邮箱账号被换绑了能找回吗)

  • 华为手机应用助手没了(华为手机应用助手不见了)

    华为手机应用助手没了(华为手机应用助手不见了)

  • 手机钉钉怎么升级新版本(手机钉钉怎么升级到最新版本苹果)

    手机钉钉怎么升级新版本(手机钉钉怎么升级到最新版本苹果)

  • iphonex用1A还是2A(苹果x用1a充电器好么)

    iphonex用1A还是2A(苹果x用1a充电器好么)

  • 华为mate30pro截屏有几种(华为mate30pro截屏在哪里设置)

    华为mate30pro截屏有几种(华为mate30pro截屏在哪里设置)

  • 数据模型有三个组成要素(数据模型有三个层次)

    数据模型有三个组成要素(数据模型有三个层次)

  • emui10正式版更新时间(emui10最新版本)

    emui10正式版更新时间(emui10最新版本)

  • 淘宝性别是固定的吗(淘宝性别在哪里设置)

    淘宝性别是固定的吗(淘宝性别在哪里设置)

  • 苹果xsmax是不是双卡(苹果xsmax是不是停产了)

    苹果xsmax是不是双卡(苹果xsmax是不是停产了)

  • 抖音禁止播放还能看吗(抖音视频被禁止播放)

    抖音禁止播放还能看吗(抖音视频被禁止播放)

  • 有流量为什么用不了(有流量为什么用的是话费)

    有流量为什么用不了(有流量为什么用的是话费)

  • siri旁白模式是什么(siri开启旁白模式关闭网络)

    siri旁白模式是什么(siri开启旁白模式关闭网络)

  • 优盘插手机在哪里查看(优盘插手机如何使用)

    优盘插手机在哪里查看(优盘插手机如何使用)

  • Windows11防火墙怎么关闭? win11关闭防火墙的技巧(w11系统防火墙)

    Windows11防火墙怎么关闭? win11关闭防火墙的技巧(w11系统防火墙)

  • 如何给浏览器屏蔽掉广告(怎么把浏览器屏幕缩小)

    如何给浏览器屏蔽掉广告(怎么把浏览器屏幕缩小)

  • bp.exe是什么进程 bp进程是安全的吗(bp程序是什么)

    bp.exe是什么进程 bp进程是安全的吗(bp程序是什么)

  • fsw.exe是什么进程 有什么作用 fsw进程查询(fsrec.sys)

    fsw.exe是什么进程 有什么作用 fsw进程查询(fsrec.sys)

  • ccsvchst.exe是什么进程 ccsvchst.exe应用程序错误怎么办(ccs是什么软件)

    ccsvchst.exe是什么进程 ccsvchst.exe应用程序错误怎么办(ccs是什么软件)

  • UNIAPP手机号一键登录(uniapp获取手机通讯录)

    UNIAPP手机号一键登录(uniapp获取手机通讯录)

  • 干货!​如何打造我们自己的“ChatGPT”?| 大佬思辨

    干货!​如何打造我们自己的“ChatGPT”?| 大佬思辨

  • 「上海名媛群」低价拼顶级下午茶、酒店、奢侈品…「名媛」的英文是什么?(想要上海名媛群群号)

    「上海名媛群」低价拼顶级下午茶、酒店、奢侈品…「名媛」的英文是什么?(想要上海名媛群群号)

  • 网上报税怎么报啊
  • 税收实体法有哪18种
  • 怎么计提固定资产折旧科目
  • 增值税不含税销售额怎么计算
  • 购买厨房用品属于什么费用
  • 银行承兑汇票背书可以拆分
  • 什么情况下可以报警
  • 进口增值税的计税依据
  • 房租抵扣个税需要提供发票吗
  • 小规模纳税人个税申报时间
  • 应付职工薪酬包括个税吗
  • 增值税进项大于销项,要全部认证吗
  • 个体户个人所得税怎么交
  • 支付员工补偿金计入管理费用的福利费用吗
  • 供应商已注销欠的发票怎么办?
  • 运费发票备注栏样板
  • 预缴企业所得税是含税数还是不含税
  • 微型小型车
  • 科技开发属于什么产品
  • 高技术制造企业
  • 司机出车补助会计科目
  • 华为鸿蒙怎么打开5g
  • 未形成固定资产的项目卖出怎么入账
  • 建筑单位没有资质可以承包项目吗
  • 客户预付的购货款是收入吗
  • 什么是摊余成本计量的金融资产
  • macOS Big Sur 11.1 RC预览版(20C69)正式更新
  • 微软系统安装软件
  • 迷迭香怎么养殖方法
  • 当月报废的固定资产
  • 德比郡在哪
  • 个人转让公司限额多少
  • 资产负债表日后期间是指
  • 计提工会经费会计账务处理
  • 机票的退票费可以开具发票吗
  • cvpr2020结果
  • php yield 异步
  • phpstudy ftp怎么用
  • 休产假期间社保个人部分怎么办
  • java的基本
  • 红字更正法和红字冲销的区别
  • 房地产企业的开发成本和开发费用有什么区
  • 进项税计税依据
  • 净资产是资产负债表中的什么
  • 个税申报怎样作废
  • 个人向企业借贷违法吗
  • 债券发行时发生的承销费、法律费
  • mysql常用命令语句
  • 增值税税控系统技术维护费怎么抵扣
  • 免征水利建设基金条件
  • 药品进销差价会计科目
  • 开票方没有缴纳增值税
  • 增加固定资产原值后折旧
  • 代理进口货物如何确定增值税纳税人
  • 企业不如实申报个税的风险
  • 餐饮店赠品
  • 快递费用是否可以开发票
  • 汇算清缴资产总额全年季度平均值怎么算
  • 房地产项目企业
  • 非营利医疗机构由谁批准
  • ie8 开发者工具
  • 如何修改centos7的workspace name
  • centos7yum安装
  • win8程序和功能在哪
  • 安卓沉浸式状态栏框架
  • nginx服务器日志
  • jq判断浏览器
  • shell脚本编程100例
  • unity延迟执行方法
  • 编写shell脚本,实现备份文件:每天18:00归档
  • javascript的for循环
  • json转复杂对象
  • 修改jquery版本号不生效
  • jQuery插件扩展extend的简单实现原理
  • 国税局税务大厅电话
  • 国家税务总局查发票
  • 小规模纳税人能开9个点的发票吗
  • 福建省税务局 电子
  • 购置税缴费方式
  • 代理记账公司有什么风险吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设