第14章 分布式TensorFlow
TensorFlow的一大亮点就是支持分布式计算。分布式TensorFlow是由高性能的gRPC库作为底层技术来支持的。本章我们就来学习分布式TensorFlow所支持的架构和适用场景。
本章前3节主要参考了Martín Abadi、Ashish Agarwal和Paul Barham等的论文《TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems》[1]。
14.1 分布式原理
首先,我们介绍TensorFlow的分布式原理。TensorFlow的分布式集群由多个服务器进程和客户端进程组成。TensorFlow有几种部署方式,如单机多卡和分布式(多机多卡),一般我们把多机多卡的部署称为TensorFlow的分布式。本节先介绍单机多卡和分布式的区别,随后介绍分布式的部署方式。
14.1.1 单机多卡和分布式
单机多卡是指单台服务器有多块GPU。假设一台机器上有4块GPU,单机多GPU的训练过程如下。
(1)在单机单GPU的训练中,数据是一个批次(batch)一个批次地训练的。在单机多GPU中,一次处理4个批次的数据,每个GPU处理一个批次