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


分布式训练
在 1.10 版本中 , 有许多特性在分布式包中从测试版过渡到稳定版 , 具体包括:

  • Remote Module(稳定版):此功能允许用户远程操作模块 , 就像使用本地模块一样 , 其中 RPC 对用户是透明的;
  • DDP Communication Hook(稳定版):此功能允许用户覆盖 DDP 如何跨进程同步梯度;
  • ZeroRedundancyOptimizer(稳定版):此功能可与 DistributedDataParallel 结合使用 , 以减少每个进程优化器状态的大小 。
性能优化以及工具
(测试版)TorchScript 严格要求源代码具有类型注释才能成功编译 。 长期以来 , 用户只能通过反复试验来添加缺失或不正确的类型注解 , 效率低下 , 耗时长 。 现在 , PyTorch 1.10 利用 MonkeyType 等现有工具为 torch.jit.script 启用了配置文件定向输入 , 这使得该过程变得更容易、更快和更高效 。
(测试版)CPU 融合:PyTorch 1.10 为 CPU 添加了一个基于 LLVM 的 JIT 编译器 , 可以将 Torch 库调用序列融合在一起以提高性能 。 虽然此前的版本在 GPU 上拥有此功能已有一段时间了 , 但 1.10 版本是第一次将编译引入 CPU 。
PyTorch Profiler
(测试版)PyTorch Profiler 的目标是针对时间或内存成本最高的执行步骤 , 并可视化 GPU 和 CPU 之间的工作负载分布 。 PyTorch 1.10 包括以下主要功能:
  • 增强型内存视图:这有助于用户更好地了解内存使用;
  • 增强型内核视图:附加列显示网格和块大小以及每个线程共享内存使用和寄存器的情况;
  • 分布式训练:Gloo 现在支持分布式训练工作;
  • TensorCore:该工具显示 Tensor Core(TC) 的使用 , 并为数据科学家和框架开发人员提供建议;
  • NVTX:对 NVTX markers 的支持是从旧版 autograd profiler 移植过来的;
  • 支持移动设备分析:PyTorch profiler 现在与 TorchScript 、移动后端能够更好的集成 , 支持移动工作负载的跟踪收集 。
支持 Android NNAPI
去年 , PyTorch 官方发布了对 Android Neural Networks API (NNAPI) 的原型支持 。 PyTorch1.10 版本增加了更多的操作 , 包括在加载时对形状的支持 , 以及在主机上运行模型进行测试的能力 。
此外 , 迁移学习已经添加到对象检测示例中 。
对于此次 PyTorch 的更新 , 网友也不仅赞叹:「PyTorch 团队的出色工作 , 融合和 profiler 工作 , 非常酷!」

稳定版|PyTorch 1.10正式版上线:Android NNAPI支持来了
关于 PyTorch1.10 版本的更新 , 更多信息请参考:

推荐阅读