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

  • 这4件事,让文案小白变大神

    这4件事,让文案小白变大神

  • airpods不在通信范围怎么办

    airpods不在通信范围怎么办

  • 一加7T PRO是不是E3屏幕材质吗

    一加7T PRO是不是E3屏幕材质吗

  • 苹果11日历在哪里设置节日(苹果11日历在哪里设置)

    苹果11日历在哪里设置节日(苹果11日历在哪里设置)

  • 苹果11最近删除照片在哪里(苹果11最近删除的照片清空了还能恢复吗)

    苹果11最近删除照片在哪里(苹果11最近删除的照片清空了还能恢复吗)

  • 陌陌隐身了怎么看在线(陌陌隐身了怎么知道他在不在线)

    陌陌隐身了怎么看在线(陌陌隐身了怎么知道他在不在线)

  • 抖音怎么看不到别人的音浪(抖音怎么看不到谁收藏了我的作品)

    抖音怎么看不到别人的音浪(抖音怎么看不到谁收藏了我的作品)

  • 华为下滑任务栏不见了(华为下滑任务栏怎么开启)

    华为下滑任务栏不见了(华为下滑任务栏怎么开启)

  • word翻译功能用不了(word中翻译工具怎么使用)

    word翻译功能用不了(word中翻译工具怎么使用)

  • 可以为同一个好友解封2次吗(对同一个)

    可以为同一个好友解封2次吗(对同一个)

  • qq加人为什么要发短信(qq加人为什么要发短信怎么解决)

    qq加人为什么要发短信(qq加人为什么要发短信怎么解决)

  • ip协议属于什么层(ip协议又称为什么协议)

    ip协议属于什么层(ip协议又称为什么协议)

  • opsson手机是山寨机吗(oppsson是是不是杂牌手机)

    opsson手机是山寨机吗(oppsson是是不是杂牌手机)

  • 手机上hd开启了有害吗(手机上hd开启了会怎么样)

    手机上hd开启了有害吗(手机上hd开启了会怎么样)

  • 候补订单购票几率大吗(候补购票多久能买到票)

    候补订单购票几率大吗(候补购票多久能买到票)

  • xr能用11的手机壳吗(xr用11的手机壳)

    xr能用11的手机壳吗(xr用11的手机壳)

  • ad是哪个公司的软件(ad是哪个公司的简称)

    ad是哪个公司的软件(ad是哪个公司的简称)

  • 快手怎么设置开播提醒(快手怎么设置开播)

    快手怎么设置开播提醒(快手怎么设置开播)

  • 省钱月卡怎么取消自动续费(省钱月卡怎么取消自动续费美团)

    省钱月卡怎么取消自动续费(省钱月卡怎么取消自动续费美团)

  • 手机缓存是什么(苹果手机怎样清除缓存)

    手机缓存是什么(苹果手机怎样清除缓存)

  • 乐视手机怎样定位(乐视手机定时开关机怎么设置)

    乐视手机怎样定位(乐视手机定时开关机怎么设置)

  • 淘宝怎么取消设置提醒(淘宝怎么取消设置免密支付功能)

    淘宝怎么取消设置提醒(淘宝怎么取消设置免密支付功能)

  • 苹果手机呼吸灯怎么关(苹果手机呼吸灯闪烁怎么设置)

    苹果手机呼吸灯怎么关(苹果手机呼吸灯闪烁怎么设置)

  • 手机怎么剪音乐片段(手机怎么剪音乐串烧)

    手机怎么剪音乐片段(手机怎么剪音乐串烧)

  • 苹果手机升级微信最新版本教程(苹果手机升级微信版本)

    苹果手机升级微信最新版本教程(苹果手机升级微信版本)

  • Vue使用axios用post方式将表单中的数据以json格式提交给后端接收(vue-axios详细介绍)

    Vue使用axios用post方式将表单中的数据以json格式提交给后端接收(vue-axios详细介绍)

  • 怎么做税种
  • 食堂用固定资产可以抵扣吗
  • 隔月发票退回应该如何操作
  • 税务申报有什么技巧
  • 工会账户谁来管理
  • 工商公示纳税总额包含个税吗
  • 政府购买服务合同最多签几年
  • 自产自用的资源税记入
  • 小规模企业工资表怎么做
  • 一般纳税人增值税优惠政策
  • 企业所得税季度申报
  • 公司注销时应付职工薪酬怎么处理
  • 事业单位职工福利费支出范围
  • 社会组织接受捐赠的资金的使用原则
  • 个人股权转让申报表
  • 2年前的增值税发票能不能用
  • 简并税率后,申报增值税要注意哪几点?
  • 电子税务局里的利润表,本月金额是填累计数吗
  • 所得税费用一年交几次
  • 小规模差额征税季度不超过30万的税收优惠
  • 买方投资公司
  • 同期对比和同比增长
  • 公司没有残疾人需要缴纳残保金吗
  • 仪器购买税率
  • 进口增值税发票怎么认证
  • 固定资产报废的净损失计入哪里
  • 公司个人股份转让需要缴税吗
  • php入门基础教程
  • 税务局怎么核定征收股权转让的
  • PHP:pg_connect_poll()的用法_PostgreSQL函数
  • 企业向银行贷款要交印花税吗
  • vue3 超好用的富文本编辑器
  • 外汇业务的核算ppt
  • 无偿赠送房屋要交税吗
  • 承兑汇票到期超过10天怎么办
  • 如何修改php网页内容
  • php如何实现分页功能
  • 呕心沥血的历史人物
  • 在php中,字符串有哪些表示形式
  • find命令结果怎么导出到文本
  • macps字体怎么导入
  • 实际发放股票股利
  • 连通函数
  • python中的装饰器的使用实战
  • python numpy 删除元素
  • mysql清空缓存
  • 预算收入的核算
  • 计提工资的时候计提个税吗
  • 税前利润弥补是什么意思
  • 总分类账户余额表怎么做账
  • sql server数据表的关联
  • 增值税发票相关罪名
  • 一般纳税人商品暂估按销售的数量可以暂估成本吗
  • 主营业务成本借贷方向增减
  • 坏账损失记入
  • 用友t3财务通普及版如何开下年账
  • 电子发票开具流程?
  • 会计凭证的审核的注意事项有哪些
  • Windows7/2008中批量删除隧道适配器的方法
  • 无光驱是不是放不了光盘
  • vmware10虚拟机安装
  • win8不能联网
  • 苹果电脑怎么截屏按哪个键
  • centos开机grub
  • windows7模块安装程序可以关闭吗
  • win7系统虚拟机
  • unity数学函数
  • 基于android的app
  • 【新功能】“回调特性”的使用教程:
  • javascript+css3开发打气球小游戏完整代码
  • 批处理自动关机命令
  • shell脚本ne
  • javascript 接口
  • javascript面向对象精要pdf
  • 东莞市国家税务局网上办税大厅
  • 税务局高风险是怎么办
  • 广东etc扣费异常打哪个电话
  • 合伙企业的税收较高
  • 深圳国委
  • 北京税务网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设