回答
這取決於你從哪個角度看它。在任何多重設置中,無論是多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