TensorFlow单机模式和分布模式

StudyAi的TensorFlow课程笔记

client 客户端,设计计算蓝图,通过Session的接口与master以及多个worker相连接
master 负责所有的worker按照流程执行计算图
worker 每一个worker可以与多个硬件设备相连,比如CPU和GPU,并负责管理这些硬件
device

TensorFlow单机模式下,client,master,worker全部在同一台计算机上的同一个进程中
在这里插入图片描述
分布模式下,允许client,master,worker在不同的机器的不同进程中,同时由集群调度系统统一管理各项任务
在这里插入图片描述
TensorFlow设计了一套为节点分配设备的策略
不同设备间的通信方法:
在这里插入图片描述
CPU和GPU通信:
在这里插入图片描述
单机多设备分配GPU: tf.device()

for i in range(8):
	for d in range(4):
		with tf.device('/gpu:%d' %d):
			input = x[i] if d is 0 else m[d-1]
			m[d],c[d] = LSTMCell(input,mprev[d],cprev[d])
			mprev[d] = m[d]
			cprev[d] = c[d] 

TensorFlow数据并行计算模式:

——加速效果最明显的
同步并行:
使用一个线程。比如1000个样本的minn-batch拆成10份,每份100个样本,进行并行计算。完成后把这10份梯度数据合并得到最终梯度并更新到共享的参数服务器(Parameter Server)。缺点是容错性差,一个device出问题后,就需要重头再来
在这里插入图片描述
异步并行:
使用多线程控制梯度计算,每一个线程计算完成后,异步地更新模型参数。缺点是梯度更新不同步,会有梯度干扰问题,每一组梯度利用率下降。

在这里插入图片描述

TensorFlow模型并行模式

模型并行就是将计算图的不同部分放在不同的设备上运算,模型并行需要模型自身有大量的互不依赖或者依赖程度不高的子图。
多核CPU上使用多线程基本是没有什么额外开销,多GPU上的限制主要在于PCle的带宽,多机之间的开销在于网络通信。

TensorFlow流水线并行模式

和异步数据并行比较像,只不过在同一个硬件设备上实现并行。提高设备的利用率。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值