PyTorch 1.10 发布:包括 CUDA Graphs API、前端和编译器改进
PyTorch 1.10 现已发布,该版本包含了自 1.9 以来的 3400 多个 commit ,有 426 位贡献者参与更新。PyTorch 1.10 更新侧重于改进 PyTorch 的训练和性能以及开发人员的可用性。完整的发行说明可在此处获得。主要亮点内容包括:
- 集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销。
- FX、torch.special 和 nn.Module Parametrization 等几个前端 API 已从测试版变为稳定版。
- 除了 GPU 之外,JIT Compiler 中对自动融合的支持扩展到 CPU。
- Android NNAPI 支持现已进入测试阶段。
除了 PyTorch 1.10 外,PyTorch 团队还发布了针对 PyTorch 库的重大更新,点此查看关于库更新的详细消息。
PyTorch 版本中的功能分为稳定版 (Stable)、测试版 (Beta) 和原型版 (Prototype)。
(Beta) CUDA Graphs API 集成
PyTorch 现在集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销。
CUDA Graphs 大大降低了 CPU 绑定 cuda 工作负载的 CPU 开销,从而通过提高 GPU 利用率来提高性能。对于分布式工作负载,CUDA Graphs 还可以减少 jitter,并且由于并行工作负载必须等待最慢的工作负载,因此减少 jitter 可以提高整体并行效率。
集成允许 cuda graphs 捕获的网络部分与由于 graph 限制而无法捕获的网络部分之间的无缝互操作。
(Beta)CPU 融合
开发团队在 PyTorch 1.10 中为 CPU 添加了一个基于 LLVM 的 JIT compiler,可以将torch库调用序列融合在一起以提高性能。这是 PyTorch 团队第一次将编译引入 CPU。
