使用DLC进行深度学习训练时,您可以使用gRPC++分布式训练,从而加速模型训练。本文介绍如何开启分布式通信框架gRPC++。
gRPC++通过Sharing Nothing架构、BusyPolling机制、用户态零拷贝及Send/Recv融合等多种优化技术,降低了E2E的通信延时,提高了Server的吞吐能力,从而可以支持更大的训练规模和训练性能。针对典型业务场景,其训练性能比原生TensorFlow提升了数倍。
警告
公共云GPU服务器即将过保下线,您可以继续提交CPU版本的TensorFlow任务。如需使用GPU进行模型训练,请前往DLC提交任务,具体操作请参见创建训练任务。
开启gRPC++分布式训练
使用gRPC++进行分布式训练,需要在tf.train.Server中添加protocol="grpc++"
。
cluster = tf.train.ClusterSpec({"ps": ps_hosts, "worker": worker_hosts})
server = tf.train.Server(cluster,
job_name=FLAGS.job_name,
task_index=FLAGS.task_index,
protocol="grpc++")