不一样的gpu卡训练可以一起调用_Tensorflow2.x 多卡并行训练时间不减少问题分析...

本文分析了在Tensorflow2.x中使用tf.keras API与Custom Training Loop进行多卡并行训练时,训练时间不减少的问题。实验发现,.cache()操作对keras API和Custom Training Loop有不同的影响,导致GPU空闲时间不同。解决方案是将数据预处理后的结果缓存到内存中,以提高Custom Training Loop的效率。后续工作将深入研究底层原因和寻找更优解决方案。
摘要由CSDN通过智能技术生成

1f83d5ff2e26434dec2645bcf8cf9f9b.png

Tensorflow2.x 多卡并行训练时间不减少问题分析

在进行单机多卡并行训练的时候,发现多个有趣现象。

  1. 多卡训练一定比单卡速度快
  2. 使用tf.keras API在MirroredStrategy的并行策略下可以很好的加速训练
  3. 使用Custom Training Loop在MirroredStrategy并行策略下卡数增加不能缩短训练时间

cb876bbf7c90408ae86c80c284f9e173.png

实验描述

起初不知道具体造成这个现象的原因,我通过控制变量来debug. 硬件设备8 * v100 GPUs

如上表所示,数据集选用10类狗共1万张图片;固定每张GPU上的batch_size既(batch_size_per_replica). 变量包括:

  1. 使用TF.DatasetAPI进行数据读取预处理(input pipeline)时是否进行dataset.cache()操作。
  2. API选择:tf.kerasAPI VS custom training loop
  3. 训练时的GPU卡数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值