【分布式深度学习 一】--- 环境构建篇之基于物理机-手把手

发布于:2023-01-24 ⋅ 阅读:(20) ⋅ 点赞:(0) ⋅ 评论:(0)

一、准备机器

        两台带有gpu的物理机

        机器1:

        

        机器2:

           

二、准备环境 

       1、conda (我下载的最新版https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.05-Linux-x86_64.sh)

         Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

       2、cuda+cudnn ( 我下载的cuda10.2,因为我的机器上的driver比较老,没有去搞最新的)

       Ubuntu下CUDA和cudnn的安装_冰雪棋书的博客-CSDN博客_ubuntu安装cuda和cudnn

wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

sudo sh cuda_10.2.89_440.33.01_linux.run

     对于cudnn我是下载的 tar包,而不是deb,因为机器上有多个cuda环境,所以采取手动拷贝的方式

   wget https://developer.nvidia.com/compute/cudnn/secure/8.4.1/local_installers/10.2/cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive.tar.xz

    这里tar.xz解压分两步:1、xz -d xx.tar.xz 2、tar xvf xxx.tar

    然后

sudo cp ./cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive/include/* /usr/local/cuda-10.2/include/  sudo cp ./cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive/lib/* /usr/local/cuda-10.2/lib64/  

   3、创建conda 虚拟环境,并安装各种配置

       conda -n create pytorch-1.12.0 python=3.9

       conda activate pytorch-1.12.0

       第一步:先替换镜像

conda config --show channels
 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

      第二步:继续替换pip镜像

      Linux下,修改 ~/.pip/pip.conf (没有就创建一个)

[global]

index-url = https://pypi.tuna.tsinghua.edu.cn/simple

      第三步:安装环境

  conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

  (这里会安装一系列东西,比较慢)

     第四步:安装分布式深度学习的必要插件

1、nccl (必须登录nvidia账号)
官网:https://docs.nvidia.com/deeplearning/nccl/install-guide/#down

然后进入NVIDIA Collective Communications Library (NCCL) | NVIDIA Developer选择对应的版本:cuda10.2

安装好了,测试下(需g++和gcc,我用的7.5):

 git clone https://gitee.com/devilmaycry812839668/nccl-tests

 cd nccl-tests

 make

./build/all_reduce_perf -b 8 -e 128M -f 2 -g 2(这个2 是你当前机器的gpu个数)

2、apex(不要直接pip,设定好CUDA_HOME)

git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

3、ray

pip install ray 

这个是用来初始化集群的插件

4、openmpi        

sudo apt install libevent-dev libhwloc-dev libibverbs-dev flex gfortran

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev(直接执行这一行就够了)        

     第五步:设置免密登录

(116条消息) ssh配置免密登录_wamth的博客-CSDN博客_ssh免密登陆

三、写一个分布式demo

     请看下一篇文章。。。