虽然官方Caffe 是采用 NCCL 进行分布式训练, 但也有一些 Caffe 分支是采用 MPI 分布式训练网络, 如 Caffe-Intel.
环境:
1. NCCL 库安装
在多个 GPU 上并行计算, Caffe 需要使用 NVIDIA NCCL.
git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4
sudo ldconfig
2. OpenMPI 安装
sudo apt-get install openmpi # 安装版本比较低
源码编译2.0.2版本安装:
wget https://www.open-mpi.org/software/ompi/v2.0/downloads/openmpi-2.0.2.tar.gz
tar zxvf openmpi-2.0.2.tar.gz
cd openmpi-2.0.2
sudo ./configure --prefix=/usr/local #
sudo make
sudo make install
#配置环境变量
export PATH=$PATH:/usr/local/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openmpi/lib/
source ~/.bashrc
sudo ldconfig
#测试
cd examples
make
mpirun -np 8 hello_c
源码编译 3.0.1 版本安装:
cd /opt/
#下载 openmpi 压缩包,
wget https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.1.tar.gz
#解压
tar -xvf openmpi-3.0.1.tar.gz
# 配置
./configure --prefix=/usr/local/openmpi
# 编译
make
# 安装
# MPI 库文件默认安装目录 - /usr/local/lib
sudo make install
# 环境变量设置
sudo gedit /etc/profile
# 在末尾添加下面两行行
export PATH=/usr/local/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH
# 测试是否安装完成
mpirun
# 输出如下:
#--------------------------------------------------------------------------
#mpirun could not find anything to do.
#
#It is possible that you forgot to specify how many processes to run
#via the "-np" argument.
#--------------------------------------------------------------------------
# 卸载
sudo make uninstall
3. Ubuntu源码安装步骤
主要包括三个步骤:
1 - ./configure
2 - make
3 - make install
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。
./configure
是用来检测安装平台的目标特征的. 比如它会检测是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本.
make
是用来编译的,它从Makefile中读取指令,然后编译.
make install
是用来安装的,它也从Makefile中读取指令,安装到指定的位置.