记录一下这两天配置NCCL和horovod的过程(原创)

Installation Guide :: NVIDIA Deep Learning NCCL Documentation
NVIDIA Collective Communications Library (NCCL) Download Page | NVIDIA Developer

以上两个为nccl官网的安装教程

一、下面根据官网进行安装(并没有成功)

1.

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004 /x86_64/7fa2af80.pub

2.

sudo add-apt-repository “deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/ x86_64/ /”

(根据自己操作系统的版本进行更换)

3.

sudo apt update

4.

(1) 安装最新版

sudo apt install libnccl2 libnccl-dev

(2) 根据自己的版本进行安装

sudo apt install libnccl2=2.4.8-1+cuda10.0 libnccl-dev=2.4.8-1+cuda10.0

但是只是安装了,并没有编译,官网说的并不详细,/usr/local/下没有找到nccl

二、第二个方法从github下clone

nccl的github网站

1.

git clone https://github.com/NVIDIA/nccl.git
cd nccl

2.

make -j12 src.build BUILDDIR=/home/yourname/nccl CUDA_HOME=/usr/local/cuda NVCC_GENCODE="-gencode=arch=compute_86, ode=sm_86"

((NVCC_GENCODE可以不添加,如果不添加该字段,默认会编译支持所有架构;为了加速编译以及降低二进制文件大小,添加该字段,具体comute_86,sm_86是和显卡算力相匹配,具体见:https://developer.nvidia.com/cuda-gpus))

  • -j12:表示使用12个核心,使用nproc查看总核心数,根据具体情况进行调整;
  • BUILDDIR:表示编译后,一些文件的存储路径;默认是nccl/build;当然如果是root用户可以指定到/usr/local/ncc/;
  • CUDA_HOME:表示CUDA的目录,默认就是/usr/local/cuda,可以不加,如果报错,加上

3.

最后呢,编译完成的文件都在指定的NVCC_GENCODE字段路径下,需要将其添加到环境变量;

vim ~/.bashrc

该文件在/home/yourname下
添加如下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourname/nccl/lib

export PATH=$PATH:/home/yourname/nccl/bin

按ESC,:WQ,然后执行以下命令

source ~/.bashrc

4.验证NCCL是否安装成功:

git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make -j12 CUDA_HOME=/usr/local/cuda
./build/all_reduce_perf -b 8 -e 256M -f 2 -g 4

(需要用机器GPU的个数替换,我这边有4块显卡,就指定4;)

Linux下NCCL源码编译安装

接着安装horovod(还需要安装Openmpi, gcc±5以上(horovod官网要求), tensorflow>=1.15.0)

horovod


安装horovod(环境)的正确姿势
openmpi入门1-安装与测试
Horovod的安装和使用
如何安装Horovod?
ubuntu 18.04安装horovod

1. 安装gcc
  • sudo apt-get install g++
  • g++ --version 查看g++的版本
2. 查看openmpi版本
  • ompi_info (or mpiexec –version or mpirun –version or mpicxx --showme:version)
3. 开始安装tensorflow

pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple

测试tensorflow

import tensorflow as tf

报错
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd

解决办法一:

  • pip install numpy –upgrade(升级Numpy,但我的已经是最新版,无效)

解决办法二:

  • 卸载numpy重新安装(我卸载后再次安装提示我环境有Numpy,这说明刚才环境有两个numpy, import tensorflow as tf,提示No module named 'numpy.core._multiarray_umath, 升级numpy后成功导入tensorflow)
4. 安装horovod

HOROVOD_GPU_OPERATIONS=NCCL pip install --no-cache-dir horovod

5. 测试

import tensorflow as tf
import horovod.tensorflow as hvd

(没有报错,安装成功)
6. 测试horovod的一些例子

horovod/examples/


issues

该链接是提供了horovod该怎么安装的办法
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值