前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch 1.7发布:支持CUDA 11、Windows分布式训练

PyTorch 1.7发布:支持CUDA 11、Windows分布式训练

作者头像
量子位
发布2023-03-10 14:54:08
6440
发布2023-03-10 14:54:08
举报
文章被收录于专栏:量子位量子位
木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI

自从7月份CUDA 11发布以来,就陆陆续续听到了网友类似的吐槽:

这正说着,10月27日,PyTorch团队发布了PyTorch 1.7,终于能支持CUDA 11了,可喜可贺(狗头)。

除此之外,这次1.7的版本,也带来了许多功能的更新和稳定。

在更新上,有了许多新的应用编程接口,如支持与NumPy兼容的快速傅立叶变换的操作及性能分析工具。

此外,分布式数据并行(DDP)和基于远程过程调用(RPC)的分布式训练也有了重大的更新,在Windows平台上的分布式训练提供支持。

最后,一些功能也稳定了下来,包括torchvision中的本机图像IO,torchaudio中的语音识别、文字转语音等许多功能。

自从PyTorch 1.6开始,PyTorch的功能便分为稳定版(stable),测试版(Beta)和原型版(prototype)。

那么,这次PyTorch 1.7又具体从哪些方面带来了新的功能,这些功能又进展到哪一版本呢?

接下来让我们来快速盘点一下。

前端API

前端API共有3项更新,都是处于测试版状态。

NUMPY兼容的TORCH.FFT模块 [BETA]

PyTorch 1.7版本增加了一个新的torch.fft模块,该模块使用与NumPy相同的API来实现与FFT相关的功能。

对变压器神经网络模块的C++支持 [BETA]

1.7版本更新后,开发人员可以从C++前端直接使用nn.transformer模块抽象。

TORCH.SET_DETERMINISTIC [BETA]

PyTorch 1.7增加了torch.set_determinative(bool)函数,该函数可以指导PyTorch操作者在可用时选择确定性算法,并在操作可能导致不确定性行为时引发运行时错误。

性能&分析

堆栈跟踪添加至探查器 [BETA]

探查器可以帮助操作者追踪操作符的名称及输入等信息,而在1.7版本更新后,他们还可以追踪操作符在代码中的位置。

分布式训练&RPC

分布式训练和RPC有着最多的更新数目——7项,这其中有1项稳定版、5项测试版及1项原型版。

Torchelastic捆绑进PYTORCH DOCKER镜像 [STABLE]

Torchelastic提供了当前torch.distributed.launch命令行界面的严格超集,并增加了容错和弹性功能。

通过将Torchelastic捆绑在与PyTorch相同的docker镜像中,用户可以立即开始试用TorchElastic而不必单独安装。

支持DDP中不均匀的数据集输入 [BETA]

PyTorch 1.7引入了一个新的上下文管理器,该管理器将与使用torch.nn.parallel.DistributedDataParallel训练的模型结合使用,以便能够在不同的过程中使用不均匀的数据集大小进行训练。

NCCL可靠性-异步错误/超时处理 [BETA]

过去由于集合体拥挤,NCCL训练可能会死机。如果检测到潜在的死机,此功能将中止卡住的集合体,并抛离异常或崩溃的程序。

TORCHSCRIPT RPC_REMOTE & RPC_SYNC [BETA]

PyTorch 1.7将功能将扩展到其余两个核心RPC API,完成针对TorchScript支持的主要RPC API,它允许用户使用TorchScript中的现有python RPC API。

分布式优化器的TORCHSCRIPT支持 [BETA]

在PyTorch 1.7中,启用分布式优化器中的TorchScript支持来删除GIL,并使在多线程应用程序中运行优化器成为可能。新的分布式优化器与以前有完全相同的接口,但是它自动将每个工作器中的优化器转换成TorchScript,使每个GIL空闲。

增强基于RPC的分析 [BETA]

PyTorch 1.6首次引入了对将PyTorch分析器与RPC框架结合使用的支持。在PyTorch 1.7中,进行了以下增强:

  • 实现了对通过RPC分析TorchScript函数的更好支持
  • 在与RPC配合使用的探查器功能方面实现了均等
  • 在服务器端增加了对异步RPC函数的支持

分布式训练的WINDOWS支持 [PROTOTYPE]

PyTorch 1.7为Windows平台上的分布式数据并行和集合通信带来了原型支持。

移动支持

PyTorch Mobile通过Cocoapods和JCenter中提供的二进制软件包同时支持iOS和Android。

提高性能的PYTORCH移动缓存分配器 [BETA]

为了减少性能损失,PyTorch 1.7为CPU提供了一个简单的缓存分配器。分配器根据张量大小缓存分配,目前只能通过PyTorch C++ API获得。

视觉工具包torchvision

变换现在支持张量输入、批量计算、图形处理器和TORCHSCRIPT [STABLE]

PyTorch 1.7 实现了以下新功能:

  • 支持图形处理器加速
  • 批量转换,如视频所需
  • 变换多波段torch张量图像(多于3-4个通道)
  • torchscript将与用户部署的模型一起转换

JPEG和PNG格式的本机图像IO [STABLE]

torchvision 0.8.0引入了针对JPEG和PNG格式的本机图像读取和写入操作。

RETINANET检测模型 [STABLE]

该版本为RetinaNet增加了预处理模型。

新的视频读取API [BETA]

这个版本引入了一个新的视频阅读抽象,它提供了对视频迭代的更细粒度的控制。

它支持图像和音频,并实现了一个迭代器接口,因此它可以与其他python库之间互操作。

音频工具包torchaudio

在此版本中,torchaudio扩展了对模型和端到端应用程序的支持,增加了wav2letter训练管道、端到端文本到语音和源分离管道。

语音识别 [STABLE]

在wav2letter模型的基础上,新版本现在添加了一个带有LibriSpeech数据集的wav2letter训练管道示例。

文字转语音 [STABLE]

新版本添加了一个基于WaveRNN模型的声码器,此外还提供了一个WaveRNN训练管道的例子。

声源分离 [STABLE]

在论文“Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation”的基础上,增加了ConvTasNet模型,支持声源分离。

网友讨论:PyTorch更直观易懂、更新比TF快

对于PyTorch的更新,在reddit引起了网友其与Tensorflow的讨论。

从网友的讨论来看,直观、易懂似乎是PyTorch胜过Tensorflow的一大优势。

然而,也有网友指出了PyTorch的不足:PyTorch在边缘计算并没有Tensorflow成熟。

最后,还有网友发出了灵魂拷问:

PyTorch更新它的官方支持好像比TF更快?稳定性和更新率,你们更喜欢其中哪一种呢?

如果是你的话,会更喜欢哪一种呢?

参考链接: https://pytorch.org/blog/pytorch-1.7-released/ https://github.com/pytorch/pytorch/releases https://www.reddit.com/r/MachineLearning/comments/jj4sr7/d_pytorch_17_released_w_cuda_11_new_apis_for_ffts/?sort=new

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

「百度AI开发系列课」免费报名!

5分钟上手,10分钟定制高精度AI模型,硬核百度EasyDL,小白也能学!

10.28日,百度高级工程师带你轻松学AI开发实现AI模型训练与部署!扫码添加量子位小助手(qbitbot12)、加入课程直播群吧~▽

p.s.参与群互动、完成课堂任务还有机会获得100元京东卡、《智能经济》图书等礼品哦~

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端API
    • NUMPY兼容的TORCH.FFT模块 [BETA]
      • 对变压器神经网络模块的C++支持 [BETA]
        • TORCH.SET_DETERMINISTIC [BETA]
        • 性能&分析
          • 堆栈跟踪添加至探查器 [BETA]
          • 分布式训练&RPC
            • Torchelastic捆绑进PYTORCH DOCKER镜像 [STABLE]
              • 支持DDP中不均匀的数据集输入 [BETA]
                • NCCL可靠性-异步错误/超时处理 [BETA]
                  • TORCHSCRIPT RPC_REMOTE & RPC_SYNC [BETA]
                    • 分布式优化器的TORCHSCRIPT支持 [BETA]
                      • 增强基于RPC的分析 [BETA]
                        • 分布式训练的WINDOWS支持 [PROTOTYPE]
                        • 移动支持
                          • 提高性能的PYTORCH移动缓存分配器 [BETA]
                          • 视觉工具包torchvision
                            • 变换现在支持张量输入、批量计算、图形处理器和TORCHSCRIPT [STABLE]
                              • JPEG和PNG格式的本机图像IO [STABLE]
                                • RETINANET检测模型 [STABLE]
                                  • 新的视频读取API [BETA]
                                  • 音频工具包torchaudio
                                    • 语音识别 [STABLE]
                                      • 文字转语音 [STABLE]
                                        • 声源分离 [STABLE]
                                        • 网友讨论:PyTorch更直观易懂、更新比TF快
                                        相关产品与服务
                                        语音识别
                                        腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档