PyTorch 1.6 发布:原生支持自动混合精度训练并进入稳定阶段
PyTorch 1.6 稳定版已发布,此版本增加了许多新的 API、用于性能改进和性能分析的工具、以及对基于分布式数据并行(Distributed Data Parallel, DDP)和基于远程过程调用(Remote Procedure Call, RPC)的分布式训练的重大更新。部分更新亮点包括:
- 原生支持自动混合精度训练(automatic mixed-precision training),并已进入稳定阶段
- 为 tensor-aware 增加对 TensorPipe 的原生支持
- 在前端 API 增加了对 complex tensor 的支持
- 新的分析工具提供了张量级的内存消耗信息
- 针对分布式数据并行训练和远程过程调用的多项改进和新功能
此外,从该版本起,新功能的状态将分为三种,分别是稳定、Beta 和原型。原型功能即为新功能提案,团队如果能从用户获取对此的良好反馈,那么原型功能就会进入 Beta 阶段,否则就停止开发。另外,原型功能不包含在二进制发行版中,而是通过从 Nightly 版本源代码构建或通过 compiler flag 使用。详情查看此博客。
原生支持自动混合精度训练
由 Nvidia 贡献的自动混合精度训练功能已经进入稳定阶段,AMP 训练能在 Tensor Core GPU 上实现更高的性能并节省多达 50% 的内存。
AMP API 提供方便使用混合精度的方法。官方提到,在像线性层(Linear Layer)或是卷积操作上,float16 运算较快,但像 Reduction 运算又需要 float32 的动态范围,而现在有了 AMP 功能,便可以在部分运算操作使用 float16,另一部分则使用 float32,混合精度功能会尝试为每个运算使用相匹配的数据类型。
改进分布式训练
PyTorch 支持两种强大的范式:用于对模型进行完全同步数据并行训练的 DDP 和支持分布式模型并行的 RPC 框架。过去这两个功能独立运行,用户无法混合和匹配它们来尝试混合并行范式。
从 PyTorch 1.6 开始,DDP 和 RPC 可以无缝协作,用户可以结合这两种技术来实现数据并行和模型并行。官方举了一个例子,用户希望将大型嵌入表放置在参数服务器上,并使用 RPC 框架嵌入查找,但希望将较小的密集参数存储在训练器上,并使用 DDP 来同步密集参数,下面是示例代码:
// On each trainer
remote_emb = create_emb(on="ps", ...)
ddp_model = DDP(dense_model)
for data in batch:
with torch.distributed.autograd.context():
res = remote_emb(data)
loss = ddp_model(res)
torch.distributed.autograd.backward([loss])
PyTorch 1.6 带来了对 complex tensor 的 Beta 支持,包含 torch.complex64 和 torch.complex128 dtypes 两种类型。Beta 阶段支持通用的 PyTorch 和 complex tensor,以及 Torchaudio、ESPnet 等所需的功能。
>>> x = torch.randn(2,2, dtype=torch.cfloat) >>> x tensor([[-0.4621-0.0303j, -0.2438-0.5874j], [ 0.7706+0.1421j, 1.2110+0.1918j]])

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Spring Cloud Data Flow 2.6.0 发布
Spring Cloud Data Flow 2.6.0 发布了。Spring Cloud Data Flow 是构建数据集成和实时数据处理流水线的工具包。 此版本主要亮点包括: Wavefront:新集成,可使用 Wavefront 监视流和任务。 计划的平台支持:任务计划有了平台支持。 JavaCFEnv:对新版本的 Java CFEnv极大地提高了用户的体验。 Bitnami:从 Helm Hub迁移到Bitnami作为 Helm 图表存储。 Composed Task Runner作为SCDF 本机模块:Composed Task Runner现在是 SCDF 本身不可或缺的一部分,并且隐式注册,而具有自定义组合任务运行程序的用户仍可以覆盖本机模块。这样能够在 Spring Cloud Data Flow 的上下文中集成组合的任务管理。 详情查看发布公告: https://spring.io/blog/2020/08/04/spring-cloud-data-flow-2-6-0-released
-
下一篇
Pale Moon 28.12.0 发布,苍月浏览器
Pale Moon 28.12.0 现已发布。PaleMoon是一款基于Firefox浏览器优化而成的浏览器,它主要是为了提升 Firefox 的速度而设计,其中也添加了多种 Firefox 扩展,以使其更美观,功能更多。 此版本的更新内容如下: Changes/fixes 在浏览器的首选项中添加了 WASM 控件,并且默认情况下启用。 启用了各种任意禁用的 CSS 功能。 在 CSS 剪辑路径中添加了对基本路径描述符(即多边形)的使用。 为 Abort API 实现了多线程请求信号处理。请参阅下面的实施说明。 更新了随附的美国英语词典,增加了大约 2500 个单词。 删除了 DOM 电池 API。由于隐私原因,该功能已被禁用很长时间了。 修复了在仅提供工具包的附件(例如提供的词典)上显示的错误警告。 修复了会话存储选项卡加载首选项的问题。 改进了下载文件名称的生成,以防止混淆。(CVE-2020-15658) 修复了 base64 数据编码的代码问题。 修复了 JavaScript 中的 2 个安全隐患。(一个是CVE-2020-15656)DiD 修复了有关脚本跨域加载的规范合规性...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- 设置Eclipse缩进为4个空格,增强代码规范
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8