张量流中分布式矩阵乘法的任何现有实现?

时间:2017-02-17 14:07:57

标签: tensorflow

从github代码看,似乎MatMul op不支持分区矩阵。那么tensorflow中是否有任何工具支持两个分布在多个节点上的巨大矩阵的乘法?

1 个答案:

答案 0 :(得分:3)

TensorFlow内置了支持跨机器分配计算的功能。我建议阅读分布式TensorFlow文档,以了解如何设置TensorFlow集群。

设置群集后,您可以决定如何对问题进行分区,并使用with tf.device将每个工作人员分配到其工作分区。

例如,假设您正在乘以a*a',并且您希望将中间乘法均匀地分配给2个工作人员,并且聚合结果将在3日结束。

你会做这样的事情:

with tf.device(worker0):
  # load a1
  b1 = tf.matmul(a1, tf.transpose(a1))

with tf.device(worker1):
  # load a2 
  b2 = tf.matmul(a2, tf.transpose(a2))

with tf.device(worker2):
  result = b1+b2

load a1部分取决于矩阵的存储量。如果它很大,那么也许load a1将从磁盘读取它。如果它适合内存,您可以使用a1=a[:n/2,:]来获取它的分区