J'ai décidé d'essayer ChainerMN et de créer un environnement sur AWS, donc je garderai une trace du travail.
Les instances AWS p2 sont proposées à un prix raisonnable, vous voulez donc terminer la création de votre environnement rapidement.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install linux-generic
$ sudo apt-get install build-essential
$ vi .bashrc #Ajout des deux lignes suivantes
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export CPATH="/usr/local/include"
Accédez à Téléchargement de la boîte à outils CUDA, sélectionnez Linux, x86_64, Ubuntu, 16.04, deb [réseau], récupérez le lien de téléchargement et procédez comme suit: faire.
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda nvidia-367
$ sudo reboot
$ sudo apt-get autoremove
$ rm cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ vi .bashrc #Ajout des 4 lignes suivantes
export CUDA_HOME="/usr/local/cuda-8.0"
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
export CPATH="$CUDA_HOME/include:$CPATH"
Connectez-vous à nouveau.
Téléchargez cuDNN v5.1 (20 janvier 2017), pour CUDA 8.0, cuDNN v5.1 Library pour Linux sur cuDNN Download et AWS Mettez-le sur le dessus.
$ tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp -a cuda/lib64/* $CUDA_HOME/lib64/
$ sudo cp -a cuda/include/* $CUDA_HOME/include/
$ sudo ldconfig
$ rm -rf cuda cudnn-8.0-linux-x64-v5.1.tgz
Dans les travaux de la section précédente
$ sudo ldconfig
Quand j'ai fait
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
J'étais censé l'obtenir, alors j'ai recollé le lien symbolique dans l'œuvre ci-dessous.
$ sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
$ sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
$ sudo unlink /usr/lib/nvidia-375/libEGL.so
$ sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.66 /usr/lib/nvidia-375/libEGL.so
$ sudo unlink /usr/lib32/nvidia-375/libEGL.so
$ sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.66 /usr/lib32/nvidia-375/libEGL.so
$ sudo ldconfig
Je ne sais pas si c'est le cas, mais je peux l'utiliser pour le moment.
$ sudo vi /etc/default/grub #Modifiez la ligne 12 pour:
GRUB_CMDLINE_LINUX="systemd.unit=multi-user.target"
$ sudo update-grub
$ sudo reboot
Choisissez le lien de téléchargement Open MPI sur Open MPI Open Source High Performance Computing et procédez comme suit:
$ wget https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2
$ tar jxvf openmpi-2.1.1.tar.bz2
$ cd openmpi-2.1.1
$ ./configure --with-cuda
$ make -j4
$ sudo make install
$ cd
$ rm -rf openmpi-2.1.1 openmpi-2.1.1.tar.bz2
$ git clone https://github.com/NVIDIA/nccl.git
$ cd nccl
$ make CUDA_HOME=/usr/local/cuda-8.0
$ sudo mkdir /usr/local/nccl
$ sudo make PREFIX=/usr/local/nccl install
$ cd
$ rm -rf nccl
$ vi .bashrc #Ajout des 4 lignes suivantes
export NCCL_ROOT="/usr/local/nccl"
export CPATH="$NCCL_ROOT/include:$CPATH"
export LD_LIBRARY_PATH="$NCCL_ROOT/lib/:$LD_LIBRARY_PATH"
export LIBRARY_PATH="$NCCL_ROOT/lib/:$LIBRARY_PATH"
Connectez-vous à nouveau.
$ sudo apt-get install python3-pip
$ sudo pip3 install --upgrade pip
$ pip3 install --user pillow h5py chainer\==1.24.0
$ pip3 install --user cython
$ pip3 install --user chainermn
Selon la référence Conseils non officiels pour les personnes qui ne peuvent pas installer Chainer 1.5, LD_LIBRARY_PATH et CPATH doivent être définis avant d'installer Cython. .. Notez également que si pip est fait avec sudo, les variables d'environnement ne seront pas héritées par root. Faisons-le avec --user.
Recommended Posts