fairseq-0.12.2多机训练环境搭建

fairseq-0.12.2多机训练环境搭建

  • 简单写了一下,如有需要后续再详细更新…

需要保证gcc版本、CUDA版本、cuDNN版本、NCCL版本、Python版本、PyTorch版本、fairseq版本的一致性

  1. fairseq版本和Python与Python版本的一致性

查看fairseq-0.12.2 README.md:

PyTorch version >= 1.5.0

Python version >= 3.6

For training new models, you’ll also need an NVIDIA GPU and NCCL

由于大模型的普及,现在一般选择Python版本为3.9

  1. 查看PyTorch版本

查看PyTorch版本对应网址:https://pytorch.org/get-started/previous-versions/

以PyTorch 1.13.1为例:

网站上Linux and Windows显示:
在这里插入图片描述

这里选择CUDA 11.7的版本

第一步安装gcc

fairseq-0.12.2要求支持c++17,gcc>7.3以上,这里以非root用户下安装gcc-8.5.0举例。

  1. 查看gcc版本
gcc --version

原始云服务通常会显示如下情况(gcc版本为4.8.5):

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

Copyright © 2015 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  1. 下载gcc-8.5.0

gcc镜像地址:https://mirrors.aliyun.com/gnu/gcc/

wget https://mirrors.aliyun.com/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.gz?spm=a2c6h.25603864.0.0.3a156de2FgRJMV
  1. 安装
tar zxvf gcc-8.5.0.tar.gz
cd gcc-8.5.0/

./contrib/download_prerequisites    
#下载依赖,等待一段时间,显示All prerequisites downloaded successfully.表示成功

./configure --prefix=/data/fairseq/gcc-8.5.0 -enable-threads=posix -disable-checking -disable-multilib  -enable-languages=c,c++
#生成Makefile文件,其中--prefix为gcc安装的路径需要更改

make -j20 #开始编译,-j为线程数,一般可设置为20,编译时间很长
make install
  1. 设置环境变量

添加到~/.bashrc中

export GCC=/data/fairseq/gcc-8.5.0
export PATH=${GCC}/bin:$PATH
export LD_LIBRARY_PATH=${GCC}/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=${GCC}/lib:$LIBRARY_PATH
export C_INCLUDE_PATH=${GCC}/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=${GCC}/include:$CPLUS_INCLUDE_PATH

注意:GCC=/data/fairseq/gcc-8.5.0为gcc安装目录需要修改

使环境变量生效:

source ~/.bashrc
  1. 验证gcc版本

gcc (GCC) 8.5.0

Copyright © 2018 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

第二步安装cuda

非root用户安装CUDA,这里以安装CUDA 11.7为例

  1. 查看NVIDIA显卡驱动版本

安装cuda版本不能高过驱动版本

nvidia-smi

显示:
在这里插入图片描述

其中CUDA Version后面的为驱动最高支持的CUDA版本,这里为12.0,因此可以选择CUDA版本低于12.0的,这里我们根据PyTorch 1.13.1的要求选择CUDA 11.7

  1. 下载CUDA

各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive/

下载11.7.1版本:

wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run
  1. 安装CUDA

非root用户在安装CUDA时有很多注意事项,首先:

sh cuda_11.7.1_515.65.01_linux.run

然后accept,在这个安装程序注意:

  1. [X]Driver

     [X] 515.65.01

    这两必须取消X,这个是NVIDIA 显卡驱动只能由root安装
  2. 除[X] CUDA Toolkit 11.7外,其余都可以取消,这是CUDA计算库
  3. 修改CUDA安装路径:可以通过选择Options再选择Toolkit Options或者CUDA Toolkit 11.7按A键,然后选择Change Toolkit Install Path,输入新的CUDA安装路径,例如:/data/fairseq/cuda-11.7
  4. 然后取消掉Toolkit Options下的所有选项
  5. 修改CUDA lib库的路径:选择Options下的Library install path (Blank for system default),输入新的lib安装路径,注意和CUDA安装路径一致,例如:/data/fairseq/cuda-11.7
  6. 最后选择Install安装
  1. 设置环境变量

添加到~/.bashrc中

export PATH=/data/fairseq/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/data/fairseq/cuda-11.7/lib64:$LD_LIBRARY_PATH

或者将/data/fairseq/cuda-11.7/bin加入到PATH中

将/data/fairseq/cuda-11.7/lib64加入到LD_LIBRARY_PATH中

使环境变量生效:

source ~/.bashrc
  1. 验证是否安装成功
nvcc --version

显示

nvcc: NVIDIA ® Cuda compiler driver

Copyright © 2005-2022 NVIDIA Corporation

Built on Wed_Jun__8_16:49:14_PDT_2022

Cuda compilation tools, release 11.7, V11.7.99

Build cuda_11.7.r11.7/compiler.31442593_0

第三步安装cuDNN

cuDNN只与CUDA版本有关

  1. 下载cuDNN:

官方地址:https://developer.nvidia.cn/rdp/cudnn-archive

选择CUDA 11.x对应的版本8.9.4

  1. 安装cuDNN
tar xvf cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz
cd cudnn-linux-x86_64-8.9.4.25_cuda11-archive/
#将include和lib分别放入到CUDA对应的include和lib64下即可生效
cp include/cudnn* /data/fairseq/cuda-11.7/include/ 
cp lib/libcudnn* /data/fairseq/cuda-11.7/lib64/

第四步安装NCCL

NCCL只与CUDA版本有关

  1. 下载NCCL:

官方地址:https://developer.nvidia.com/nccl/nccl-legacy-downloads

选择CUDA 11.7对应的版本2.14.3

  1. 安装NCCL
tar xvf nccl_2.14.3-1+cuda11.7_x86_64.txz
cd nccl_2.14.3-1+cuda11.7_x86_64/
cp include/nccl* /data/fairseq/cuda-11.7/include/
cp -r lib/* /data/fairseq/cuda-11.7/lib64/

第五步安装Python

  1. 安装Python依赖
  • 需要root安装:

libffi-devel 解决No module named ‘_ctypes’

readline-devel 解决在Python命令行中支持上下左右 空格 退格等操作

centos

yum -y install libffi-devel readline-devel zlib zlib-devel sqlite-devel

ubuntu

apt-get install libffi-dev libreadline-dev zlib1g zlib1g-dev libsqlite3-dev 
  • 非root可以安装:

openssl(必须,使用pip安装包时需要):

  1. 下载openssl:官网:https://www.openssl.org/source/
  2. wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz --no-check-certificate
  3. tar zxvf openssl-1.1.1w.tar.gz
  4. cd openssl-1.1.1w/
  5. ./config --prefix=/data/fairseq/openssl-1.1.1w 注意:–prefix为安装路径
  6. make -j20
  7. make install
  8. 将/data/fairseq/openssl-1.1.1w/bin加入PATH中
  9. 将/data/fairseq/openssl-1.1.1w/lib加入LD_LIBRARY_PATH中,注意可能会引发与系统openssl冲突,可以不加
  10. openssl验证成功
  1. 下载Python

国内镜像地址:https://registry.npmmirror.com/binary.html?path=python/

我们选择3.9的最新版本3.9.18

wget https://cdn.npmmirror.com/binaries/python/3.9.18/Python-3.9.18.tgz
  1. 安装Python
tar xvf Python-3.9.18.tgz
cd Python-3.9.18/
# --prefix为安装路径, --with-openssl为前面安装的openssl的路径
./configure --prefix=/data/fairseq/Python-3.9.18/ --with-openssl=/data/fairseq/openssl-1.1.1w --enable-shared
make -j20
make install
  1. 设置环境变量

添加到~/.bashrc中

export PATH=/data/fairseq/Python-3.9.18/bin:$PATH
export LD_LIBRARY_PATH=/data/fairseq/Python-3.9.18/lib:$LD_LIBRARY_PATH

或者将/data/fairseq/Python-3.9.18/bin加入到PATH中

将/data/fairseq/Python-3.9.18/lib加入到LD_LIBRARY_PATH中

  • 使得python和pip命令指向新安装的Python,在~/.bashrc中添加:
alias python="/data/fairseq/Python-3.9.18/bin/python3"
alias pip="/data/fairseq/Python-3.9.18/bin/pip3"

使环境变量生效:

source ~/.bashrc
  1. 验证是否安装成功
python3

显示

Python 3.9.18 (main, Nov 1 2023, 14:19:00)

[GCC 8.5.0] on linux

Type “help”, “copyright”, “credits” or “license” for more information.

>>>

第六步安装PyTorch

  1. 下载PyTorch

下载地址:https://download.pytorch.org/whl/torch_stable.html

选择CUDA 11.7的torch 1.13.1版本

wget https://download.pytorch.org/whl/cu117/torch-1.13.1%2Bcu117-cp39-cp39-linux_x86_64.whl
  1. 安装Pytorch
# -i 为国内Python镜像源地址,通常使用清华镜像源https://pypi.tuna.tsinghua.edu.cn/simple
# 升级pip
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torch-1.13.1+cu117-cp39-cp39-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

第七步安装fairseq

  1. 安装依赖库
pip3 install ****** -i https://pypi.tuna.tsinghua.edu.cn/simple
  • numpy
  • omegaconf
  • hydra-core
  • sacrebleu
  • cython
  • bitarray
  1. 安装fairseq
python3 setup.py build_ext --inplace
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值