前言:之前在看分布式训练的时候看到了这个框架,尝试安装并使用,但是在安装和使用过程中踩了很多的坑,这里记录一下。(关于分布式训练有个系列文章很不错,链接我放在这里大家和可以看看。)
单机多卡-1.理论基础、单机多卡-2.TensorFlow、单机多卡-3.Pytorch、单机多卡-4.Horovod
我们先来到horovod的官网:horovod安装引导
这里我们看到了一些基本的要求,包括python3,cmake,g++等等,安装过程比较简单这里不在赘述。同时为了使用显卡,cuda+cudnn也是需要安装的,安装过程大家可以参考ubuntu20.04 显卡驱动 cuda cudnn安装。在系统为ubuntu20.04,深度学习框架为pytorch的条件下,以2021.11.08为时间节点,这里给出一个推荐的版本配置:
nvidia-driver = 470.57
cuda = 11.3
cudnn = 8.2.1
pytorch =1.10.1
我们继续往后看可以看到:
这里要求我们安装MPI和Gloo中的一种。
这里说明了当我们在GPU运行时需要安装NCCL,我们继续跳转到Horovod on GPU:
我们按照这个流程进行安装。
来到官网,我们在早期版本中找到适配于cuda11.3的NCCL库:
这里本地安装和网络安装都可以,我们通过网络安装,完整脚本如下。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" apt-get update apt install libnccl2=2.9.9-1+cuda11.3 libnccl-dev=2.9.9-1+cuda11.3
还是来到官网:
根据文档,我们需要先对文件进行下载,然后按照官网安装说明进行安装,完整脚本如下:
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.1.tar.gz tar -zxvf openmpi-4.1.1.tar.gz cd openmpi-4.1.1 ./configure --prefix=/usr/local make all install
安装过程很慢,需要多等等。
根据官网:
HOROVOD_GPU_OPERATIONS=NCCL pip install --no-cache-dir horovod
至此horovod安装完成。