如何安装分布式训练的Uber的神器horovod的GPU版本?
这个是英文的介绍。
一共分3步。
- 安装NCCL2
- 安装OpenMpi
- 安装horovod
注意!!!注意!!!注意!!!最新版本的horovod要求tensorflow>=1.15.0版本。
一、安装NCCL2
首先先去下载NCCL2。地址
下载需要先注册Nvidia的账号,做一个非常简单的问卷。
- 下载对应的Local installers,安装repository。注意系统的版本和CUDA的版本。比如我是Ubuntu18.04版本,我的CUDA是10.2。
sudo dpkg -i nccl-repo-ubuntu1804-2.8.3-ga-cuda10.2_1-1_amd64.deb
2.更新
sudo apt update
3.安装(选择和自己CUDA对应的版本,下载页面有对应的命令。)
sudo apt install libnccl2=2.8.3-1+cuda10.2 libnccl-dev=2.8.3-1+cuda10.2
二、安装OpenMPI
- 下载安装包,我下载的是openmpi-4.0.5.tar.gz
2. 安装
gunzip -c openmpi-4.0.5.tar.gz | tar xf -
cd openmpi-4.0.5
./configure --prefix=/usr/local ## 很多输出 ##
make all install ## 很多输出 ##
3. 将安装地址放到PATH和LD_LIBRARY_PATH中
nano ~/.bashrc
export PATH=/usr/local/lib:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
source ~/.bashrc
三、安装horovod
- 安装前确认g++版本
请通过 g++ -v 确认g++是4.8.5或者4.9 版本。
更新:虽然官方的Github限制了g++的版本,但是我使用ubuntu原始的版本也安装成功了。gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
- 如果版本正确
HOROVOD_GPU_ALLREDUCE=NCCL pip install horovod
- 如果版本不对
apt-get install g++-4.9
nano ~/.bashrc
export CC=gcc-4.9
export CXX=g++-4.9
source ~/.bashrc
HOROVOD_GPU_ALLREDUCE=NCCL pip install horovod
测试例子的地址
horovodrun -np 4 -H localhost:4 python train.py # 一台机器4块GPU并行