我打算運行一個非常大的經常性網絡(例如2048x5),是否有可能在張量流中的一個GPU上定義一個層?我應該如何實現該模型才能達到最佳效率。我知道GPU或GPU與CPU之間的通信存在開銷。是否有可能在張量流中將多個GPU分割成多個GPU?
7
A
回答
15
在TensorFlow中將多個GPU分割成一個大型模型當然是可能的,但是最好的做法是一個很難研究的問題。在一般情況下,你需要做到以下幾點:你的代碼
裹大的連續的區域在
with tf.device(...):
塊,命名不同的GPU:with tf.device("/gpu:0"): # Define first layer. with tf.device("/gpu:1"): # Define second layer. # Define other layers, etc.
當構建優化,通過可選參數
colocate_gradients_with_ops=True
到optimizer.minimize()
方法:loss = ... optimizer = tf.train.AdaGradOptimizer(0.01) train_op = optimizer.minimize(loss, colocate_gradients_with_ops=True)
您可能需要噸(任選地)。
config = tf.ConfigProto(allow_soft_placement=True) sess = tf.Session(config=config)
相關問題
- 1. 有多少個GPU?
- 2. 一個GPU設備中的多個流
- 3. tensorflow:多GPU和分佈式張量流之差
- 4. Cuda多個GPU:所有GPU都是同一個型號?
- 5. 張多流分佈式訓練混合多GPU方法
- 6. 在張量流中動態地將2d張量分成多個張量
- 7. TensorFlow從多個GPU選擇GPU使用
- 8. 是否可以多線程調用GPU?
- 9. TensorFlow:如何測量每個張量需要多少GPU內存?
- 10. 是否有可能有多個STDIN流?
- 11. 是否可以在多個GPU上運行directcompute?
- 12. 如何開發無GPU的張量流與gpu
- 13. Tensorflow GPU /多GPU如何分配內存?
- 14. 如何安裝張量流gpu?
- 15. OptiX中有多個GPU(異步啓動可能?)
- 16. 使用多個CUDA GPU
- 17. 帶有多個GPU的TensorFlow XLA不同時使用GPU
- 18. 在多個GPU中固定內存
- 19. 具有Cuda Thrust的多個GPU?
- 20. 將圖像分割成多張圖像
- 21. tensorflow多GPU共享變量
- 22. 跨多GPU縮放性能
- 23. TensorFlow:多GPU配置(性能)
- 24. CUDA多 - GPU附加功能
- 25. Tensorflow多GPU性能不好
- 26. Arrayray python是否支持多GPU編程
- 27. 如何將TensorFlow圖形(模型)分割到多個GPU上以避免OOM?
- 28. 是否有可能將多個分支拼湊成一個分支?
- 29. cudaMallocHost/cudaHostAlloc多GPU
- 30. 多GPU的SLI
[這裏](https://www.tensorflow.org:當您創建
tf.Session
,如果任何模型中的操作不能在GPU上運行o啓用「軟放置」在tf.ConfigProto
/versions/r0.7/how_tos/using_gpu/index.html#using_multiple_gpus)是說明。 [這裏](https://www.tensorflow.org/versions/r0.7/tutorials/deep_cnn/index.html)就是一個例子。數據並行比功能並行要容易得多。 – fluency03我瞭解tf.device()的用法。但是,在定義不同GPU上的圖層後,我發現漸變仍然存儲在第一個GPU上。你能給出一個在不同GPU上分裂梯度計算的具體例子嗎? –
構建模型時,您可能會嘗試將'colocate_gradients_with_ops = True'傳遞給'optimizer.minimize()'方法。 – mrry