稳定版|PyTorch 1.10正式版上线:Android NNAPI支持来了

机器之心报道
机器之心编辑部

广受人们欢迎的深度学习框架 PyTorch 刚刚更新了 1.10 正式版 , 在 CUDA Graphs API 等方面进行了诸多改进 。
PyTorch 是一个开源的 Python 机器学习库 , 基于 Torch , 底层由 C++ 实现 , 主要应用于人工智能领域 , 如自然语言处理 , 它最初由 Facebook 的人工智能研究团队开发 。 由于 PyTorch 定义网络结构简单等特点 , 自发布以来便受到众多研究人的青睐 。
经过研究者的不断努力 , 现在 ,PyTorch 更新到 PyTorch 1.10 版本 。 此版本由 1.9 版本以来的 3,400 多次 commits 组成 , 由 426 位贡献者完成 。

稳定版|PyTorch 1.10正式版上线:Android NNAPI支持来了
【稳定版|PyTorch 1.10正式版上线:Android NNAPI支持来了】此次PyTorch 1.10 的更新侧重于改进 PyTorch 的训练和性能以及开发人员的可用性 。 亮点包括以下:
  • 集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销;
  • FX、torch.special 和 nn.ModuleParametrization 等几个前端 API 已从测试版变为稳定版;
  • 除了 GPU 之外 , JIT Compiler 中对自动融合的支持扩展到 CPU;
  • Android NNAPI 支持现已推出测试版 。
(注:从 PyTorch 1.6 版本开始 , PyTorch 特性分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版) 。
PyTorch 1.10 最新特性

稳定版|PyTorch 1.10正式版上线:Android NNAPI支持来了
前端 API
使用 FX 进行 Python 代码转换(稳定版):FX 提供了一个用于转换和降低 PyTorch 程序的 python 化平台 , 它是一个工具包 , 在 1.10 版本中 , FX 趋于稳定 , 用户可以使用 torch.fx 实现程序转换 。
torch.special(稳定版):torch.special 模块 , 类似于 SciPy 的特殊模块 , 现在稳定版可用 。 该模块有 30 种运算 , 包括 gamma、Bessel 和(高斯)误差函数 。
nn.Module 参数化(稳定版):允许用户在不修改 nn.Module 本身的情况下参数化任何参数等 , 在稳定版中可用 。 此版本增加了权重归一化 (weight_norm)、正交参数化(矩阵约束和部分剪枝) , 用户在创建自己的参数化时更加灵活 。
CUDA Graphs API 集成(测试版):PyTorch 现在集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销 。
CUDA Graphs 大大降低了 CPU 绑定 cuda(CPU-bound cuda)工作负载的 CPU 开销 , 从而通过提高 GPU 利用率来提高性能 。 对于分布式工作负载 , CUDA Graphs 还可以减少抖动 , 并且由于并行工作负载必须等待最慢的工作负载 , 因此减少抖动可以提高整体并行效率 。

推荐阅读