zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    URI 和 URL
    TCP/IP协议
    TCP/IP 通信传输流
    Python 之 函数可变参数和关键字参数
    Python 之装饰器decorator
    Python 之进程
    Android
    Redis持久化(persistence)
    python正则表达式
    selenium+python定位iframe元素
  • 原文地址:https://www.cnblogs.com/yangwenhuan/p/11165168.html
Copyright © 2011-2022 走看看