|PyTorch1.7发布,支持CUDA11分布式训练


机器之心报道
参与:魔王、小舟
昨日 , PyTorch 团队发布 PyTorch 1.7 版本 。 该版本增添了很多新特性 , 如支持 CUDA 11、Windows 分布式训练、增加了支持快速傅里叶变换(FFT)的新型 API 等 。
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图
【|PyTorch1.7发布,支持CUDA11分布式训练】

PyTorch 1.7 版本包含很多新的 API , 如支持 NumPy 兼容的 FFT 操作、性能分析工具 , 以及对基于分布式数据并行(DDP)和基于远程过程调用(RPC)的分布式训练的重要更新 。
此外 , 一些特性也更新为稳定版 , 包括自定义 C++ 类、内存分析器、通过自定义类张量对象进行扩展、RPC 中的用户异步函数 , 以及 torch.distributed 中的许多其他特性(如 Per-RPC 超时、DDP dynamic bucketing、RRef helper) 。
本次更新的亮点包括:

  • CUDA 11 得到 PyTorch 官方支持;
  • 对 autograd 分析器 , 更新和添加了 RPC、TorchScript 和堆栈跟踪(Stack trace)的分析和性能;
  • (测试版)通过 torch.fft 支持 NumPy 兼容的 FFT 操作;
  • (原型版)支持英伟达 A100 GPU 和原生 TF32 格式;
  • (原型版)支持 Windows 系统上的分布式训练 。
  • torchvision
  1. (稳定版)transforms 支持张量输入、批处理计算、GPU 和 TorchScript
  2. (稳定版)JPEG 和 PNG 格式的原生图像 I/O
  3. (测试版)新型视频读取器 API
  • torchaudio
  1. (稳定版)增加了对语音录制(wav2letter)、文本转语音(WaveRNN)和源分离(ConvTasNet)的支持
(注:从 PyTorch 1.6 版本开始 , PyTorch 特性分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版) 。
新特性
PyTorch 1.7 相比之前版本 , 增加了很多新特性 , 包括 Python API、C++ API、Autograd、CUDA、量化等多个方面 。
例如 Python API 增添了多个新的 namespace、operator 以及 API 扩展 , CUDA 增加了 TF32 支持等 , 量化方面增加了新的量化操作、支持 FP16 量化等 。
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图

PyTorch 1.7 部分新特性 , 详情参见 https://github.com/pytorch/pytorch/releases/tag/v1.7.0 。
开发者对 PyTorch 1.7 的态度
有开发者对 PyTorch 1.7「支持 Windows 上的分布式训练」这一新功能表示赞赏:
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图

以及乐见于「PyTorch 对 CUDA 11 的支持」:
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图

依然有人趁机表白 PyTorch , 并列出偏好 PyTorch 的原因 , 如报错易读、代码直观、易于实验 。
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图

当然 , 版本更迭的路似乎永无止境 。 有开发者提出了自己的需求 , 例如 fp32 卷积、TensorFlow 有而 PyTorch 没有的 Semantic Versioning:
|PyTorch1.7发布,支持CUDA11分布式训练
本文插图

|PyTorch1.7发布,支持CUDA11分布式训练
本文插图
此时距离 PyTorch 1.6 版本发布仅三个月 , 不知道 PyTorch 的下一个版本又将带给我们哪些惊喜 。


推荐阅读