Horovod


Horovod是一個支持TensorFlow、Keras、PyTorch和Apache MXNet的分布式訓練框架。Horovod的目標是讓分布式深度學習更快更易用。 

為啥不用原生的TensorFlow分布式訓練? 

1、代碼改動多少?

2、比原生的分布式訓練快多少?

Horovod用的MPI比分布式TensorFlow用的parameter servers,簡單直接得多。而且,Horovod更快,下面的benchmark用了128台服務器,每台機器4張Pascal GPU,機器之間是有RoCE能力的25Gbit/s網絡。

對於Inception V3和ResNet-101,Horovod有90%的擴展效率,對於VGG-16,則是68%。 

安裝Horovod:(這些環境問題要注意!!!) 

1、安裝OpenMPI或者其他MPI實現。OpenMPI 3.1.3有個問題會導致卡住,建議降級到3.1.2,或者升級到4.0.0。

2、如果是用PyPI裝的TensorFlow,要確保裝g++-4.8.5或者g++-4.9。如果是用PyPI裝的PyTorch,要確保裝g++-4.9或者以上。如果是用Conda裝的TensorFlow或者PyTorch,要確保裝gxx_linux-64 Conda包。

3、安裝Horovod pip包。

pip install horovod

通過docker使用Horovod:https://github.com/horovod/horovod/blob/master/docs/docker.rst 。

單機運行docker:

$ nvidia-docker run -it horovod:latest     // 可能還要別的參數,例如--net=host
root@c278c88dd552:/examples# horovodrun -np 4 -H localhost:4 python keras_mnist_advanced.py    // 舊版本只有mpirun,不是horovodrun

下面的錯誤信息是因為容器運行沒有用--privileged參數 

Read -1, expected 131072, errno = 1  

 

添加Mellanox RDMA支持

如果你有Mellanox網卡, 

 

參考鏈接:

https://github.com/horovod/horovod

https://arxiv.org/pdf/1802.05799.pdf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM