本文为您介绍如何使用分布式通信框架gRPC++进行分布式训练。

gRPC++通过Sharing Nothing架构、BusyPolling机制、用户态零拷贝及Send/Recv融合等多种优化技术,降低了E2E的通信延时,提高了Server的吞吐能力,从而可以支持更大的训练规模和训练性能。针对典型业务场景,其训练性能比原生TensorFlow提升了数倍。

开启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++")