回答
这取决于你从哪个角度看它。在任何多重设置中,无论是多GPU还是多机器,您都需要决定如何在并行资源之间分配计算。在单节点多GPU设置中,有两个非常合理的选择:
(1)模型内并行性。如果一个模型具有长而独立的计算路径,那么您可以将模型分割到多个GPU中,并且每个计算都是其中的一部分。这需要仔细了解模型和计算依赖关系。
(2)复制式培训。启动模型的多个副本,训练他们,然后同步他们的学习(应用于他们的权重&偏差的渐变)。
我们的released Inception model在自述文件中有一些很好的图表,显示了多GPU和分布式培训如何工作。在多GPU设置中,通常通过将权重存储在CPU(以及在其连接的DRAM中)来同步更新模型通常是最好的。但在多机设置中,我们经常使用单独的“参数服务器”来存储和传播权重更新。要将其扩展到大量副本,可以在多个参数服务器之间分割参数。
多GPU和参数的服务器,你会发现自己使用的结构,如with tf.device('/gpu:1')
要更小心设备配置,或放置重物使用tf.train.replica_device_setter
分配它/job:ps
或/job:worker
参数服务器上。通常,在一台机器上对一堆GPU进行培训要高效得多 - 它需要16个以上的分布式GPU才能在一台机器上实现8个GPU的性能 - 但分布式培训可以让您扩展到甚至更大的数量,并利用更多的CPU。
直到最近,还没有张量流的开源集群版本 - 只有零个或更多GPU的单个机器。 新版本v0.9可能会或可能不会改变事物。 原始发布文档(2015年10月)中的文章显示Google具有基于群集的解决方案 - 但他们尚未开源。
这里是什么whitepaper说:
3.2多设备执行一旦系统具有多个设备,有两个主要的并发症:决定哪些设备放置计算为图表中的每个节点,并然后管理这些 放置决定所隐含的跨设备边界的所需数据通信。本小节讨论这两个问题
感谢您的回答!然而,他们宣布他们发布了分布式tensorflow与他们的v0.8,他们有一个教程页面:https://www.tensorflow.org/versions/r0.8/how_tos/distributed/index.html。那不是真正的分布式张量流? – xyd
这是个好消息! - 让我们希望有人能够在这个问题上接近谁是“炙手可热”的。 – GavinBrelstaff
- 1. 张多流分布式训练混合多GPU方法
- 2. Tensorflow大张量分流到小张量
- 3. TensorFlow变量和TensorFlow张量之间的实现差异
- 4. 是否有可能在张量流中将多个GPU分割成多个GPU?
- 5. TensorFlow:如何测量每个张量需要多少GPU内存?
- 6. Tensorflow GPU /多GPU如何分配内存?
- 7. tensorflow多GPU共享变量
- 8. 以编程方式区分TensorFlow中的张量,变量和Ops
- 9. 如何安装张量流gpu?
- 10. 张量流中tf.clip_by_average_norm和tf.clip_by_norm之间的差异
- 11. 张量流softmax_cross_entropy_with_logits和sigmoid_cross_entropy_with_logits之间的实现差异
- 12. 在tensorflow中,如何在移动到GPU之前访问标量张量值?
- 13. tensorflow多GPU训练
- 14. Tensorflow:关于张量流功能
- 15. 如何开发无GPU的张量流与gpu
- 16. 张量tensorflow
- 17. Tensorflow:如张量
- 18. 分布式tensorflow PS服务器自动使用所有的GPU?
- 19. Tensorflow:在GPU和CPU
- 20. 将张量分配给张量流
- 21. TensorFlow布尔张量操作等效
- 22. 恢复分布式张量流中的检查点
- 23. CancelledError:运行分布式张量流时的RunManyGraphs
- 24. 如何使分布式张量流支持故障转移?
- 25. 在Mac上安装分布式张量流程
- 26. Tensorflow。 Cifar10多gpu示例在更多gpus中表现更差
- 27. TensorFlow从多个GPU选择GPU使用
- 28. 在分布式张量流列车上运行多个模型的步骤messd
- 29. Tensorflow多GPU训练和可变范围
- 30. 在张量流中动态地将2d张量分成多个张量
非常感谢您的解释! – xyd
启动链接已损坏。 [Here](https://github.com/tensorflow/models/blob/16e4679834e1bf3e805703b197d377e35504fa09/tutorials/image/cifar10/cifar10_multi_gpu_train.py)是另一个例子。 – Albert