栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Horovod安装,bert多GPU训练(非root用户)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Horovod安装,bert多GPU训练(非root用户)

Horovod安装,bert多GPU训练(非root用户) linux环境: conda虚拟环境部署,cuda版本10.0,GCC == 4.8.5

(gcc与tensorflow_gpu版本依赖,原gcc==4.8.5)如下安装方式可不升级gcc版本,已验证

1. 包依赖情况 conda install(主要依赖包)

tensorflow_gpu=1.15.0 参考连接:https://tensorflow.google.cn/install/source#gpucuDNN=7.4 (安装过程中发现cdDNN==7.6也可以正常使用)pytorch=1.2.0 (此版本与cuda版本依赖) 参考连接:https://pytorch.org/get-started/previous-versions/#linux-and-windows-18nccl=2.4 (对应cuda10.0版本)mpi4py=3.0 (相当于openmpi,mpi4py Conda 包,它提供了 OpenMPI 的 CUDA 感知构建) pip install

horovod==0.19.*mxnet-cu100mkl==1.5.* (带 CUDA-10.0支持和mkldnn支持,cu100代表cuda10.1,cu101代表cuda10.1) 2. cuda安装(root用户安装)

安装

下载地址:https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=runfilelocal

sh cuda_10.0.130_410.48_linux.run

只选择安装CUDA Toolkit 即可,无需安装驱动

普通用户添加环境变量

# su xxxx
# vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
PATH=/usr/local/cuda/bin:/data/userhome/xx/gcc-7.3/gcc/bin:/data/userhome/xx/gcc-7.3/gcc/lib64:/data/userhome/xx/anaconda3/bin:$PATH

# source ~/.bashrc
# nvcc --version
3. anaconda安装

获取安装包

https://www.anaconda.com/download/

安装

sh Anaconda3-2021.11-Linux-x86_64.sh
4. conda虚拟环境安装horovod

参考连接: https://github.com/kaust-vislab/horovod-gpu-data-science-project,https://github.com/horovod/horovod/blob/master/docs/conda.rst

环境所需核心依赖包

environment.yml 文件内容如下:

name: bert-master2

channels:
  - pytorch
  - conda-forge
  - defaults

dependencies:
- bokeh=1.4
- cmake=3.16 # insures that Gloo library extensions will be built
- cudnn=7.6
- cupti=10.0
- cxx-compiler=1.0 # insures C and C++ compilers are available
#- jupyterlab=1.2
- mpi4py=3.0 # installs cuda-aware openmpi
- nccl=2.4
- nodejs=13
- nvcc_linux-64=10.0 # configures environment to be "cuda-aware"
- pip=20.0
- pip:
    - mxnet-cu100mkl==1.5.* # MXNET is installed prior to horovod
    - -r file:requirements.txt
- python=3.7
- pytorch=1.2
- tensorboard=1.15
- tensorflow-gpu=1.15
- torchvision=0.4

requirements.txt 文件内容如下:

horovod==0.19.*
#jupyterlab-nvdashboard

# make sure horovod is re-compiled if environment is re-built
--no-binary=horovod
conda虚拟环境构建
mkdir /data/userhome/xxx/test-cuda-master/env

此处使用脚本方式进行构建,内容如下:

#!/bin/bash --login

set -e

export ENV_PREFIX=/data/userhome/xxx/test-cuda-master/env
export HOROVOD_CUDA_HOME=$CUDA_HOME
export HOROVOD_NCCL_HOME=$ENV_PREFIX
export HOROVOD_GPU_OPERATIONS=NCCL
conda env create --prefix $ENV_PREFIX --file environment.yml --force

ENV_PREFIX 虚拟环境安装路径,此路径最好新建目录,执行会清空路径下的所有文件

HOROVOD_CUDA_HOME cuda路径

执行脚本进行构建,安装完成查看步骤5 5. 可跳过,离线GCC升级(安装报错gcc版本)

这里用的是gcc-7.3.0.tar.gz,tf官网对应7.3.1,也能成功

解压缩文件

tar -xf gcc-7.3.0.tar.gz

自动下载所需要的依赖文件和库,这个是离线安装,我们需要提前下载对应依赖

cd gcc-7.3.0
cat ./contrib/download_prerequisites

##源码片段如下
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.16.1.tar.bz2'

base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/'

下载上述依赖包,上传到指定路径下,执行如下命令

./contrib/download_prerequisites --directory=DOWNload --no-force

提示 echo “All prerequisites downloaded successfully.” 成功

生成Makefile文件

./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

编译安装

make -j12 && make install

j12 线程数

添加环境变量,验证gcc

# vim ~/.bashrc 
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/data/userhome/xx/gcc-7.3/gcc/lib64:/data/userhome/xx/gcc-7.3/gcc/lib:LD_LIBRARY_PATH"
PATH=/usr/local/cuda/bin:/data/userhome/xx/gcc-7.3/gcc/bin:/data/userhome/xx/gcc-7.3/gcc/lib64:/data/userhome/xx/anaconda3/bin:$PATH

# source ~/.bashrc
# gcc -v

重新执行步骤3 6. 验证horovod

# 列出环境
conda env list
# 进入conda虚拟环境
conda activate /data/userhome/xxx/test-cuda-master/env
horovodrun -cb

进入python

python
>>> import tensorflow as tf
>>> import horovod.tensorflow as hvd

上述验证无误即安装完成

错误现象(不限于conda环境安装horovod) 编译安装时提示pytorch没找到

这种情况网上会让你使用pip install torch来进行解决,因为pip install 无法安装pytorch。但是pytorch和torch是有区别,后续安装horovod中还会报错依赖问题,使用 conda install pytorch=1.2.0 进行安装 import horovod.tensorflow as hvd 导入报如下错误

执行horovodrun -cb 确认Available frameworks是否支持tf。不支持则说明tf相关依赖包版本兼容有问题,卸载原有包重新安装,依照environment.yml 。 libstdc++.so.6: version `CXXABI_1.3.8’ not found

libc.so.6: `GLIBC_2.14’ not found 出现此问题不要重新编译glic的包,编译失败可能会导致系统命令失效,需进入紧急救援模式急救。上述问题主要原因还是坏境依赖包不一致导致 horovodrun -np 1 -H localhost:1 运行报错 unrecognized argument allow-run-as-root

暂时使用mpi的方式进行测试暂未影响使用。此问题暂时忽略(未找到解决方式) pip install horovod 安装时出现编译缺少依赖报错问题

根据情况使用pip,conda命令进行安装即可,依赖版本需要对应 运行训练脚本执行报错

执行nvidia-smi查看显卡驱动,若失败。执行lspci命令,查看显卡设备是否存在。如果不存在检查显卡设备,重启机器。 工程测试脚本出现ptxas找不到

ptxas是cuda里面的命令,出现此问题,查看cuda安装(安装时选择创建cuda软连接即可)以及环境变量问题 测试 阿里工程测试

单机测试,多机测试。参考连接:https://bp.aliyun.com/detail/193

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号