tf模型固化方式,tf训练入门教程

首页 > 经验 > 作者:YD1662023-11-05 04:31:54

RoCE 技术虽然有很多技术优势,但是它对无损网络的要求也导致网络配置非常复杂,除了新增很多网络设备的管控配置,同时也把之前相对独立的网卡设备纳入了网络运营的范围,大大增加了运营的内容和难度。与此相适应,在主机上需要安装专门的 RDMA 软件平台包,包括网卡驱动、用户库和管控软件等部件。这些软件可以做到一键部署、自动配置和定期巡检,并且与相应的监控系统都有数据对接。通过安装这些软件包,就可以做到及时发现物理网络的配置错误,硬件故障,让应用远离复杂的网络管理,顺利享受 RDMA 带来的技术红利。

tf模型固化方式,tf训练入门教程(5)

2.3 Ring AllReduce 技术

对于许多在大型数据集上训练的现代深度学习模型来说,基于数据并行(Data Parallelism)的同步分布式训练是最合适的训练方法。数据并行的同步分布式训练在每个 worker 上都有一份完整的模型,每个 worker 读取训练集的不同部分计算出不同的梯度,然后同步各个 worker 上的梯度并求平均值,再用平均梯度来更新每个 worker 上的模型。在社区版 Tensorflow 中,梯度平均通过将 Variable 分配到公共的 ps (parameter server)节点上实现,通信代价受 worker 数量和 Variable 分配策略影响很大。在 PAISoar 中我们使用 Ring AllReduce 技术实现梯度平均,通信代价的上限与 worker 数量无关,且不再需要额外的 ps 节点。

★ Ring Allreduce 算法的原理与核心功能如下:

Ring AllReduce 算法将 device 放置在一个逻辑环路(logical ring)中。每个 device 从上行的 device 接收数据,并向下行的 deivce 发送数据,因此可以充分利用每个 device 的上下行带宽。

★ 使用 Ring Allreduce 算法进行某个稠密梯度的平均值的基本过程如下:

  1. 将每个设备上的梯度 tensor 切分成长度大致相等的 num_devices 个分片;
  2. ScatterReduce 阶段:通过 num_devices - 1 轮通信和相加,在每个 device 上都计算出一个 tensor 分片的和;
  3. AllGather 阶段:通过 num_devices - 1 轮通信和覆盖,将上个阶段计算出的每个 tensor 分片的和广播到其他 device;
  4. 在每个设备上合并分片,得到梯度和,然后除以 num_devices,得到平均梯度;

★ 以 4 个 device上的梯度求和过程为例:

ScatterReduce 阶段:

tf模型固化方式,tf训练入门教程(6)

经过 num_devices - 1 轮后,每个 device 上都有一个 tensor 分片进得到了这个分片各个 device 上的和。

AllGather 阶段:

tf模型固化方式,tf训练入门教程(7)

经过 num_devices - 1 轮后,每个 device 上都每个 tensor 分片都得到了这个分片各个 device 上的和;由上例可以看出,一次 Ring Allreduce 中单个节点总的通信数据量是

tf模型固化方式,tf训练入门教程(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.