Tensorflow RDMA verbs详解
如何编译和启用RDMA的Tensorflow
- 按照常规的TF编译说明进行操作。 在配置步骤中,如果您想要支持基于ibverbs的RDMA,请回答此问题:
Do you wish to build TensorFlow with VERBS-RDMA support [y/N]
要打开RDMA连接,请在服务器定义中添加协议“grpc + verbs”:
server=tf.train.Server(cluster, job_name="local", task_index=0, protocol='grpc+verbs') # default protocol is 'grpc'
概要
该设计基于TensorFlow r1.0。在服务器之间添加一个RDMA路径用于tensor传递(权重,梯度等)。现有的gRPC路径保留并负责“管理”任务,如设置RDMA路径,交换计算图等。
在服务器设置期间,创建一个RDMA管理器来管理低级RDMA组件,如RDMA通道和RDMA适配器,创建一个RDMA会合管理器来监视服务器之间的发送/重启操作。按照分布式TensorFlow设计理念,发送操作是被动的,即仅在本地输出表中放置tensor。而实际启动tensor传递的是接收操作。
TensorFlow为要发送或接收的tensor动态分配内存。这对于需要固定存储器的RDMA操作来说是困难的。可以使用两种补救措施:存储器被