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

  • 小米平板5杜比全景声怎么开启(小米平板5杜比音效设置)

    小米平板5杜比全景声怎么开启(小米平板5杜比音效设置)

  • 闲鱼拍了多久卖家必须发货(闲鱼买家拍后卖家多久就要收到钱)

    闲鱼拍了多久卖家必须发货(闲鱼买家拍后卖家多久就要收到钱)

  • 微信粘贴不了是怎么办(微信不能粘帖)

    微信粘贴不了是怎么办(微信不能粘帖)

  • 微信好友动态提醒怎么回事(微信好友动态提醒怎么弄)

    微信好友动态提醒怎么回事(微信好友动态提醒怎么弄)

  • 芒果tv会员最多几个人(芒果tv会员最多共享几个人登录)

    芒果tv会员最多几个人(芒果tv会员最多共享几个人登录)

  • 微信签名为什么改不了(微信签名为什么只能写30个字)

    微信签名为什么改不了(微信签名为什么只能写30个字)

  • 关系规范化中的删除操作异常是指(关系规范化中的操作异常有哪些)

    关系规范化中的删除操作异常是指(关系规范化中的操作异常有哪些)

  • sim卡无法使用lte是什么意思(sim卡无法使用移动网络怎么办)

    sim卡无法使用lte是什么意思(sim卡无法使用移动网络怎么办)

  • 微信语音断断续续怎么办(微信语音断断续续怎么解决)

    微信语音断断续续怎么办(微信语音断断续续怎么解决)

  • 华为小艺怎么改名字(华为小艺怎么改语言)

    华为小艺怎么改名字(华为小艺怎么改语言)

  • 什么是obd检测(obd检测针对哪些车型)

    什么是obd检测(obd检测针对哪些车型)

  • 麒麟935相当于骁龙什么(麒麟935处理器相当于高通多少?)

    麒麟935相当于骁龙什么(麒麟935处理器相当于高通多少?)

  • ps怎么修身份证(ps怎么修身份证人像)

    ps怎么修身份证(ps怎么修身份证人像)

  • 苹果如何关闭语音信箱(苹果如何关闭语音播报功能)

    苹果如何关闭语音信箱(苹果如何关闭语音播报功能)

  • 手机卡显示4ghd(手机卡显示4g网络,但是没有网是怎么回事?)

    手机卡显示4ghd(手机卡显示4g网络,但是没有网是怎么回事?)

  • 小米6烧屏怎么处理(小米烧屏怎么检测)

    小米6烧屏怎么处理(小米烧屏怎么检测)

  • qq情侣空间怎样加亲密值(qq情侣空间怎样让别人看到)

    qq情侣空间怎样加亲密值(qq情侣空间怎样让别人看到)

  • 拼多多免拼成功啥意思(拼多多免拼成功后怎么取消订单)

    拼多多免拼成功啥意思(拼多多免拼成功后怎么取消订单)

  • 荣耀手环3怎么配对(荣耀手环3怎么用)

    荣耀手环3怎么配对(荣耀手环3怎么用)

  • 华为手机与电脑连接方法(华为手机与电脑多屏协同)

    华为手机与电脑连接方法(华为手机与电脑多屏协同)

  • 拼多多定位功能在哪里关闭(拼多多定位功能取消了怎么开启)

    拼多多定位功能在哪里关闭(拼多多定位功能取消了怎么开启)

  • 新开传世,产品介绍(传世新传)

    新开传世,产品介绍(传世新传)

  • 数据库怎么连接(html和数据库怎么连接)

    数据库怎么连接(html和数据库怎么连接)

  • 抖音里的单机拍摄在哪(抖音我怎么找不到单机拍摄)

    抖音里的单机拍摄在哪(抖音我怎么找不到单机拍摄)

  • 微信如何绑定就诊卡号(微信如何绑定就诊卡)

    微信如何绑定就诊卡号(微信如何绑定就诊卡)

  • ChatGPT在科研论文的应用:提问命令汇总(科研toc)

    ChatGPT在科研论文的应用:提问命令汇总(科研toc)

  • 房产税如何进行税源采集
  • 甲乙公司与银行之间的往来如何记账
  • 企业所得税表利润总额怎么填写
  • 对公账户余额和实际不符
  • 固定收益凭证是固定的吗
  • 借款利息收入要开票吗
  • 税务局登录账号是多少
  • 增值税可以做平吗
  • 购买方已抵扣开具红字信息表之后做账需要什么原始凭证
  • 职工取暖费可以一次性发放吗
  • 拿租金抵押金如何做账?
  • 公司支付倒垃圾费怎么做会计分录
  • 固定资产清理科目怎么结转
  • 个税手续费返还会计分录
  • 监控设备的维修保养
  • 提前报废资产损失税前扣除
  • 合理损耗算入账价值吗
  • 开出销项负数发票怎么做账
  • 银行承兑贴现到哪里去了
  • 销售劳务的税率是多少
  • 发放员工过节费
  • 增值税留抵退税怎么记账
  • 应付福利费科目
  • 华为分享的文件在电脑哪个文件夹
  • Mac怎么强制关闭程序
  • win7为什么现在不能用了
  • 公司基本户注销流程
  • 青岛酒店式公寓出租
  • vue中使用v-for指令时 为什么要加 key解释正确的是
  • win7系统不可用怎么办
  • kb4586853更新
  • 结转出租包装物报废的残料价值计入
  • 报错代码678什么意思
  • 小微企业直接融资和间接融资
  • 销售地下车库缴纳哪些税
  • html流光按钮
  • 这年头不好混图片
  • 大学生问卷spss数据分析作业
  • js-cookie vue
  • php搜索代码
  • php jsondecode
  • 奖金的发放应做到
  • 企业购买的土地出买后无法收回资金属国有资产流失吗?
  • 一般纳税人技术服务费几个点
  • 以货换货怎么交印花税
  • 特许经营企业的特点
  • mysql中数据类型主要分为哪四种
  • 小规模纳税人免税政策2023年
  • 公司给材料商付款表格
  • 租赁的生产设备计入哪个科目
  • 银行询证函费用发票
  • 工程发票入账
  • 施工企业人工费控制措施
  • 往来账项询证函怎么填写
  • 工程公司存货包括哪些科目
  • 期末留抵税额会计分录
  • 员工福利费怎么写分录
  • 总账的建立
  • mysql中文乱码解决的命令
  • 过滤重复字符串
  • 如何防止sql注入及数据安全问题
  • sqlserver管理工具有哪些
  • mysql如何列转行
  • win8.1 升级
  • FreeBSD mpd VPN服务器安装步骤
  • yum下载已安装的包
  • rdclient怎么用win10怎么设置
  • linux 磁带机
  • 游戏新手引导架构
  • opengl模块加载失败
  • 阴影映射可视域分析
  • python框架教程
  • 批处理命令是什么语言
  • js复制字符串的方法
  • 设置家的地址
  • 国内免费机场
  • 买楼送地下室划算吗
  • 车船税填表说明
  • 福建税务网址
  • 加强监督管理工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设