horovod 安装及使用

本文基于Ubuntu 16.04 系统介绍Horvod安装使用情况。

官方安装教程见:https://github.com/horovod/horovod#id6

其中,Open MPI的安装可见本人博客https://blog.csdn.net/u013431916/article/details/80230152

如需NCCL支持,可见本人博客https://blog.csdn.net/u013431916/article/details/82759525

如不需使用GPU,可使用以下指令快速安装:

$ pip install horovod

horovod on GPU的官方教程见https://github.com/horovod/horovod/blob/master/docs/gpus.rst#horovod-on-gpu。简单来说,如果希望GPU发挥高性能,先安装NCCL,然后在使用pip安装horovod时,设置使用NCCL进行allreduce操作。如:

$ HOROVOD_GPU_ALLREDUCE=NCCL pip install --no-cache-dir horovod

需要注意的是,如果服务器上有多个版本的cuda,并且你所使用的并非软链接到/usr/local/cuda的版本,那么需要设置cuda路径等变量:

$ HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_CUDA_HOME=/usr/local/cuda-9.0 HOROVOD_NCCL_HOME=/usr/local/cuda-9.0 pip install --no-cache-dir horovod

否则可能出现计算能力不匹配等问题。

 

horovod的使用,以单机使用2块GPU,启动2个worker为例:

$ CUDA_VISIBLE_DEVICES='0,1' horovodrun -np 2 -H localhost:2 python ~/test/horovod/tensorflow_mnist.py

其中,tensorflow_mnist.py见https://github.com/horovod/horovod/blob/master/examples/tensorflow_mnist.py

 

附:

  1. 查看tensorflow使用的NCCL版本:

设置环境变量

$ export NCCL_DEBUG=VERSION

这样,在NCCL首次调用ncclCommInitAll或者ncclCommInitRank的时候会打印NCCL版本。

 

参考:

1. Cuda failure 'invalid device function'

2. Is there the way to check the version of NCCL ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值