(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 --version3. anaconda安装
获取安装包
https://www.anaconda.com/download/
安装
sh Anaconda3-2021.11-Linux-x86_64.sh4. 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=horovodconda虚拟环境构建
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



