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

  • 与梦相伴,想因所梦(与梦想相伴800字)

    与梦相伴,想因所梦(与梦想相伴800字)

  • vivoY77怎么反向充电(vivos7e怎么反向充电)

    vivoY77怎么反向充电(vivos7e怎么反向充电)

  • 钉钉摄像头怎么设置前后摄像头翻转(钉钉摄像头怎么打开)

    钉钉摄像头怎么设置前后摄像头翻转(钉钉摄像头怎么打开)

  • qq音乐绿钻可以听vip歌曲吗(qq音乐绿钻可以送人吗)

    qq音乐绿钻可以听vip歌曲吗(qq音乐绿钻可以送人吗)

  • 微信声音锁安全吗(微信声音锁安全不)

    微信声音锁安全吗(微信声音锁安全不)

  • qq修改密码失败617(qq修改密码失败1005)

    qq修改密码失败617(qq修改密码失败1005)

  • 华为p30有隐藏功能吗(华为p30隐藏功能)

    华为p30有隐藏功能吗(华为p30隐藏功能)

  • 电脑微信怎么发文件夹给好友(电脑微信怎么发红包)

    电脑微信怎么发文件夹给好友(电脑微信怎么发红包)

  • 点管理储存空间没反应(管理储存空间在哪里)

    点管理储存空间没反应(管理储存空间在哪里)

  • 华为售后可以随时去贴膜吗(华为售后可以随时换屏吗)

    华为售后可以随时去贴膜吗(华为售后可以随时换屏吗)

  • qq视频分享屏幕可以看见人吗(qq视频分享屏幕怎么横屏)

    qq视频分享屏幕可以看见人吗(qq视频分享屏幕怎么横屏)

  • vivo手机自带浏览器卸载(vivo手机自带浏览器缓存视频在哪)

    vivo手机自带浏览器卸载(vivo手机自带浏览器缓存视频在哪)

  • 怎么在qq上找到以前删除的人(怎么在QQ上找到发黄的空间)

    怎么在qq上找到以前删除的人(怎么在QQ上找到发黄的空间)

  • cpu通过数据总线一次存取加工传送的数据称为(cpu通过数据总线一次存取加工的数据称为)

    cpu通过数据总线一次存取加工传送的数据称为(cpu通过数据总线一次存取加工的数据称为)

  • 小米商城的申请退款要多久(小米商城的申请退货流程)

    小米商城的申请退款要多久(小米商城的申请退货流程)

  • 爱奇艺怎么设置儿童模式(爱奇艺怎么设置几个人用)

    爱奇艺怎么设置儿童模式(爱奇艺怎么设置几个人用)

  • 微机内存容量为4g指的是(微机内存容量为128m指的是)

    微机内存容量为4g指的是(微机内存容量为128m指的是)

  • opporeno2与opporeno2z有什么不同(opporeno2与opporeno2z那个屏幕大)

    opporeno2与opporeno2z有什么不同(opporeno2与opporeno2z那个屏幕大)

  • iphonex是几核(苹果x多少核心)

    iphonex是几核(苹果x多少核心)

  • 抖音现在怎么没有动态了(抖音现在怎么没有美体功能了)

    抖音现在怎么没有动态了(抖音现在怎么没有美体功能了)

  • p30拍夜景怎么设置(p30拍照夜景模式怎么拍)

    p30拍夜景怎么设置(p30拍照夜景模式怎么拍)

  • vsco安卓不能用吗(安卓用不了vsco)

    vsco安卓不能用吗(安卓用不了vsco)

  • 0x是多少进制(0x是多少进制转化为二进制)

    0x是多少进制(0x是多少进制转化为二进制)

  • 小米mix3如何定金预约(小米max3定位设置)

    小米mix3如何定金预约(小米max3定位设置)

  • iphone8支持nfc吗(苹果8是否支持nfc)

    iphone8支持nfc吗(苹果8是否支持nfc)

  • 华为卡顿怎么设置(如何让华为手机卡顿)

    华为卡顿怎么设置(如何让华为手机卡顿)

  • element-ui表格自定义动态列(element-ui 表格)

    element-ui表格自定义动态列(element-ui 表格)

  • OK源码中国免费下载对于某些主题需要安装Swoole Loader扩展PHP-7.2,PHP-7.3,PHP-7.4,PHP-8.0,PHP-8.1(okhttp3源码)

    OK源码中国免费下载对于某些主题需要安装Swoole Loader扩展PHP-7.2,PHP-7.3,PHP-7.4,PHP-8.0,PHP-8.1(okhttp3源码)

  • 什么是企业的应纳税额
  • 企业注销涉及的法律问题
  • 贸易公司开发票进项跟销项不符合怎么办
  • 运输公司轮胎如何做会计分录
  • 加了油的电子发票怎么导出来
  • 其他应付款属于哪类
  • 实际发生应收账款坏账时的会计处理
  • 本期准予抵减税额怎么算
  • 购买自用应税车辆的应自购买之日起
  • 哪些属于不动产权
  • 合并报表长期股权投资怎么算
  • 速动比率和流动比率下降说明什么
  • 多缴纳的税款不退税怎么入账
  • 私募基金款打到什么账户
  • 银行利息回单怎么打印
  • 二手车公司怎么开发票
  • 来料加工复出口增值税政策
  • 固定资产增值税可以一次性抵扣吗
  • 前三季度盈利第四季度亏损 所得税记账
  • 如何看发票是否被抵扣
  • 工程开发票备注栏必需要写吗?
  • 公司工会有税号吗
  • 残疾人就业保障金怎么申报
  • 资产负债表和利润表的利润不一致
  • 分包发票怎么开对方可以差额纳税
  • 租房中介费计入租赁费吗
  • 影视行业如何盈利
  • 怎么区分进和近
  • 公司购酒的发票可以开多少
  • 设置按住键盘重启怎么弄
  • 使用u盘安装windows11步骤
  • 什么货物出口最多
  • 开发票货款未公对公转怎么做账
  • 广告公司收到广告费发票如何入账
  • 系统自带功能
  • 享受所得税优惠情况说明
  • 设备维修产生的人工费怎么开发票
  • css content \f041
  • 培训费个人的发票能开吗
  • 免税票如何做会计分录
  • java阻塞队列线程安全吗
  • 吸收合并需要清算嘛
  • 固定资产的入账时间应该是什么时间
  • 产品成本包括哪些
  • sql server 2005数据库备份
  • 税务师考试的报名时间
  • 销售返利冲抵货款怎么做账
  • 一般纳税人跨年冲红报年度所得税怎么做
  • 加油卡充值可以开增值税专用发票吗
  • 跨月开票的业务怎么做
  • 困难企业社保费返还
  • 进项税额转出如何申报
  • 租厂房需要办环评注意事项
  • 资本公积金转增股本会计处理
  • 库存商品差额调整会计目录
  • 蔬菜公司开具专票可以抵扣吗
  • 审计测试会计分录怎么做
  • 每月发票认证时间
  • 其他应付款转实收资本走什么程序
  • mysql的zip包怎么安装
  • java连接mysql数据库教程
  • sqlserver函数大全
  • ubuntu系统中如何安装WiFi驱动
  • 启动mac问号文件夹闪烁怎么办
  • xp系统ie浏览器怎么升级
  • windows xp的安装
  • xp硬盘安装win7系统教程
  • Cpqset.exe是什么系统进程 Cpqset有啥作用
  • xp清理系统的命令
  • win10如何打开defender
  • win7系统所有软件打不开
  • 局域网扫描器
  • python怎么图像处理
  • perl读取文件内容到数组
  • 怎样用python
  • 你应该知道的2000个地理常识
  • javascript的简介
  • 怎么运用知识点
  • 税务关系转移社保怎么办理
  • 建筑工程开票要在项目所在地
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设