PyTorch1.6:补上自动混合精度训练、Windows版开发维护权让给微软

在英伟达的帮助下增加了对自动混合精度(AMP)训练的本地支持,并且具有稳定的功能;

增加了对 TensorPipe 的本地支持;

在前端 API 增加了对复杂张量的支持;

提供张量级内存消耗信息的新分析工具;

分布式数据并行(DDP)训练和远程过程调用(RPC)包的大量改进和新功能。

PyTorch 官方博客表示,从此版本开始,PyTorch 的特性将分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版)。需要注意的是,Prototype 特性不包含在二进制包中,但可以通过使用 Nightly 从源代码构建或通过编译器标志(compiler flag)来使用。

此外,Facebook 还宣布,他们将把 Windows 版 PyTorch 的开发维护权移交给微软。

在 Windows 系统上运行 PyTorch 一直都是一种不愉快的体验,显然微软也看到了这一点。他们在 Pytorch 的博客中表示:

「在 PyTorch 1.6 中,我们为核心 PyTorch 及其域库提供了与 Linux 相同的测试覆盖率,同时将教程测试自动化,以此来改进 Windows 的核心质量。在 PyTorch 社区的帮助下,我们将测试覆盖范围添加到三个域库中:TorchVision、TorchText 和 TorchAudio。在 PyTorch 的后续版本中,我们将继续改进。根据收到的社区反馈,下一步的改进方向应该会聚焦于分布式训练支持和更好的 pip 安装体验。」

除了本地 Windows 体验,在今年的 Build 2020 大会上,微软还宣布了一个为 WSL 提供 GPU 计算支持的计划,PyTorch 将在其中起到不小的作用。现阶段,WSL2 已获得对 GPU 的初始支持,其中就包含对 PyTorch 的支持,WSL 用户可以直接运行本地 PyTorch 程序,进行机器学习,不需要传统的虚拟机或双引导设置。

性能与分析

[STABLE] 自动混合精度(AMP)训练

AMP 使用户可以轻松启用自动混合精度训练,从而在 Tensor Core GPU 上实现更高的性能并节省多达 50%的内存。使用本地支持的 torch.cuda.amp API,AMP 为混合精度提供了方便的方法,其中某些运算使用 torch.float32 (float)。其他运算使用 torch.float16(half)。有些运算,如线性层和卷积,在 float16 中要快得多。而另一些运算,比如缩减,通常需要 float32 的动态范围。混合精度尝试将每个运算与其相应的数据类型相匹配。

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章