PyTorch 1.7發布,支持CUDA 11、Windows分布式訓練
昨日,PyTorch 團隊發布 PyTorch 1.7 版本。該版本增添了很多新特性,如支持 CUDA 11、Windows 分布式訓練、增加了支持快速傅里葉變換(FFT)的新型 API 等。

PyTorch 1.7 版本包含很多新的 API,如支持 NumPy 兼容的 FFT 操作、性能分析工具,以及對基于分布式數據并行(DDP)和基于遠程過程調用(RPC)的分布式訓練的重要更新。
此外,一些特性也更新為穩定版,包括自定義 C++ 類、內存分析器、通過自定義類張量對象進行擴展、RPC 中的用戶異步函數,以及 torch.distributed 中的許多其他特性(如 Per-RPC 超時、DDP dynamic bucketing、RRef helper)。
本次更新的亮點包括:
(1) CUDA 11 得到 PyTorch 官方支持;
(2) 對 autograd 分析器,更新和添加了 RPC、TorchScript 和堆棧跟蹤(Stack trace)的分析和性能;
(3) (測試版)通過 torch.fft 支持 NumPy 兼容的 FFT 操作;
(4) 原型版)支持英偉達 A100 GPU 和原生 TF32 格式;
(5) 原型版)支持 Windows 系統上的分布式訓練。
(6) torchvision
- (穩定版)transforms 支持張量輸入、批處理計算、GPU 和 TorchScript
- (穩定版)JPEG 和 PNG 格式的原生圖像 I/O
- (測試版)新型視頻讀取器 API
(7) torchaudio
- (穩定版)增加了對語音錄制(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 量化等。

PyTorch 1.7 部分新特性,詳情參見 https://github.com/pytorch/pytorch/releases/tag/v1.7.0。
開發者對 PyTorch 1.7 的態度
有開發者對 PyTorch 1.7「支持 Windows 上的分布式訓練」這一新功能表示贊賞:

以及樂見于「PyTorch 對 CUDA 11 的支持」:

依然有人趁機表白 PyTorch,并列出偏好 PyTorch 的原因,如報錯易讀、代碼直觀、易于實驗。

當然,版本更迭的路似乎永無止境。有開發者提出了自己的需求,例如 fp32 卷積、TensorFlow 有而 PyTorch 沒有的 Semantic Versioning:
此時距離 PyTorch 1.6 版本發布僅三個月,不知道 PyTorch 的下一個版本又將帶給我們哪些驚喜。
參考鏈接:
- https://pytorch.org/blog/pytorch-1.7-released/
- https://github.com/pytorch/pytorch/releases/tag/v1.7.0
- https://www.reddit.com/r/MachineLearning/comments/jj4sr7/d_pytorch_17_released_w_cuda_11_new_apis_for_ffts/
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】