一般来说,全连接层的前向和后向传递所需的计算量与权重的数量成正比。此外,数据并行训练中所需的带宽与可训练权重的数量成比例。因此,随着每个节点计算速度的提高,所需的网络带宽也随之增加。这篇文章主要是根据阈值进行梯度的稀疏化和量化操作,从而降低分布式训练中的通信开销。稀疏化指的是只传输那些比较重要的梯度(例如绝对值较大的梯度),而量化则是使用较少的比特来表示原始梯度,二者的差别由下图描述[1]:

本文提出的梯度压缩方法基于以下两个观点:(1)很多加速SGD的方法,包括minibatch SGD、动量法、双缓冲以及异步SGD,都可以在某种程度上视为延迟更新的变体;(2)节点上的子梯度是非常稀疏的,这就意味着只有少量的权值需要更新,换句话说,我们只需要传递那些对权值更新产生较大作用的梯度,而不再传输其余的梯度,这样就能降低带宽占用。

因为只传输那些大于某一阈值的梯度,所以我们必须记住这些梯度的索引,以在接收端对其进行重构。在实现上,我们可以使用字典存储索引和对应的梯度值。为了保证精度,我们并不直接在原始梯度上进行操作,而是操纵一个名为梯度残差的东西。在处理每个minibatch时,我们首先将上一次迭代的梯度残差与本次迭代的原始梯度相加,得到本次迭代的梯度残差。随后,对于残差向量中的每个元素,如果该元素大于正阈值,就将该元素的索引与正阈值编码进字典中,再从对应的残差元素中减去阈值;如果该元素小于负阈值,就将该元素的索引与负阈值编码进字典中,再从对应的残差元素中加上阈值。对于那些绝对值小于阈值的残差元素,我们不再传输它们。但是,随着迭代次数的增加,这些元素可能在某次迭代时就超过了阈值,从而完成一次更新。在某种程度上来说,这就是一种延迟更新策略。算法伪代码如下所示:

在实现中,我们将每个梯度(残差)元素编码为两个数字:整数元素索引和浮点梯度元素。为了进一步降低通信开销,本文使用1比特来编码梯度元素,使用31比特编码元素索引,这样就使用4个字节编码了1个整数和1个浮点数。为了保证模型精度,同样需要使用1 Bit SGD中提到的误差补偿技术。需要注意的是,本文使用的是对等结构而非参数服务器架构,而且整个训练过程中只进行梯度的传输,不进行权值的传输。为了降低GPU与OS之间的I/O瓶颈,作者还使用了CUDA中的某些字符串压缩函数。

参考资料

[1] Tang Z, Shi S, Chu X, et al. Communication-Efficient Distributed Deep Learning: A Comprehensive Survey[J]. arXiv preprint arXiv:2003.06307, 2020.

INTERSPEECH 2015 | Scalable Distributed DNN Training Using Commodity GPU Cloud Computing的更多相关文章

  1. Meet Dgraph — an open source, scalable, distributed, highly available and fast graph databas

    https://dgraph.io/ Meet Dgraph — an open source, scalable, distributed, highly available and fast gr ...

  2. Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and Java--转

    原文地址:https://dzone.com/articles/scalable-distributed-systems-using-akka-spring-boot-ddd-and-java Whe ...

  3. 论文阅读笔记六十四: Architectures for deep neural network based acoustic models defined over windowed speech waveforms(INTERSPEECH 2015)

    论文原址:https://pdfs.semanticscholar.org/eeb7/c037e6685923c76cafc0a14c5e4b00bcf475.pdf 摘要 本文研究了利用深度神经网络 ...

  4. (转)分布式深度学习系统构建 简介 Distributed Deep Learning

    HOME ABOUT CONTACT SUBSCRIBE VIA RSS   DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...

  5. https ddos检测——研究现状

    from: https://jyx.jyu.fi/bitstream/handle/123456789/52275/1/URN%3ANBN%3Afi%3Ajyu-201612125051.pdf 相关 ...

  6. 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)

    CCI,Commodity Channel Index 商品通道指标 Channel Index,商品通道指标.(2015.7.1)" title="77-CCI,Commodit ...

  7. 分布式系统(Distributed System)资料

    这个资料关于分布式系统资料,作者写的太好了.拿过来以备用 网址:https://github.com/ty4z2008/Qix/blob/master/ds.md 希望转载的朋友,你可以不用联系我.但 ...

  8. [专题论文阅读]【分布式DNN训练系统】 FireCaffe

    FireCaffe Forrest N. Iandola FireCaffe: near-linear acceleration of deep neural network training on ...

  9. Toward Scalable Systems for Big Data Analytics: A Technology Tutorial (I - III)

    ABSTRACT Recent technological advancement have led to a deluge of data from distinctive domains (e.g ...

随机推荐

  1. 【数据结构】图的基本操作——图的构造(邻接矩阵,邻接表),遍历(DFS,BFS)

    邻接矩阵实现如下: /* 主题:用邻接矩阵实现 DFS(递归) 与 BFS(非递归) 作者:Laugh 语言:C++ ***************************************** ...

  2. uboot无法通过nfs加载ubuntu18.04中的文件(转)

    问题描述: i.mx6ull开发板,采用alientek官方维护的uboot,使用ubuntu18.04 lts作为nfs server,导致开发板uboot上nfs命令无法加载网络文件系统. 解决: ...

  3. Android官方文档翻译 五 1.3Building a Simple User Interface

    Building a Simple User Interface 创建一个简单的用户界面 This lesson teaches you to 这节课将教给你: Create a Linear Lay ...

  4. openssl基本原理 + 生成证书(转)

    https://blog.csdn.net/cpcpcp123/article/details/108885922 https://liruzhen.blog.csdn.net/article/det ...

  5. gin框架简介

    介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小.自身的n ...

  6. ARP链路追踪

    arp协议在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层.arp协议即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议.它可以解决同一个局域网内主机或路由器的IP地址 ...

  7. Android安卓开发-记账本布局

    账单页面布局统计页面布局我的页面布局主页面加号记账页面布局.点击记账页面记账类别布局点击收入页面收入类别布局统计页面支出布局统计页面收入布局查询页面布局数据库设计字段一,支出id和收入id分配字段二, ...

  8. SIFT,SuperPoint在图像特征提取上的对比实验

    SIFT,SuperPoint都具有提取图片特征点,并且输出特征描述子的特性,本篇文章从特征点的提取数量,特征点的正确匹配数量来探索一下二者的优劣. 视角变化较大的情况下 原图1 原图2 SuperP ...

  9. Understanding C++ Modules In C++20 (1)

    Compiling evironment: linux (ubuntu 16.04)+ gcc-10.2. The Post will clarify and discuss what modules ...

  10. X000001

    一些相互无关联的题目的集合 都是码量不大,略有思维难度的题 做起来还是很舒适的 P6312 [PA2018]Palindrom 空间限制很小,不足以存下整个字符串,故暴力判断不可行. 考虑使用字符串哈 ...