[PYTHON] Création d'un environnement pour exécuter ChainerMN sur une instance de GPU AWS

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.

Constitution

Site de référence

travail

Préparation

$ 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"

Installation du pilote NVIDIA et de CUDA

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.

Installation de cuDNN 5.1

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

Recollez le lien symbolique (note supplémentaire 08/06/2017)

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.

Arrêter LightDM

$ sudo vi /etc/default/grub #Modifiez la ligne 12 pour:
GRUB_CMDLINE_LINUX="systemd.unit=multi-user.target"
$ sudo update-grub
$ sudo reboot

Installer Open MPI

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

Installation de NVIDIA NCCL

$ 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.

Installation de Chainer, ChainerMN, etc.

$ 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

Où ça se coince

Installation du pilote NVIDIA

L'installation de ChainerMN ne fonctionne pas

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

Création d'un environnement pour exécuter ChainerMN sur une instance de GPU AWS
Exécutez TensorFlow sur une instance GPU sur AWS
Création d'un environnement pour exécuter des programmes Python sur AWS EC2
Essayez Tensorflow avec une instance GPU sur AWS
Créer une instance de GPU AWS pour entraîner StyleNet
Version de juin 2017 pour créer un environnement Tensorflow / Keras sur une instance GPU d'AWS
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Création d'un environnement TensorFlow qui utilise des GPU sous Windows 10
Essayez d'exécuter Schedule pour démarrer et arrêter des instances dans AWS Lambda (Python)
[Introduction à AWS] Mémorandum de création d'un serveur Web sur AWS
Construire un environnement Python sur Mac
Construire un environnement Python sur Ubuntu
Utiliser jupyter sur une instance GPU sur AWS
# 3 Créez un environnement Python (Django) avec une instance EC2 (ubuntu18.04) d'AWS part2
Créer un environnement de développement AWS Cloud9 sur une instance Amazon EC2
Tout, de la création d'un environnement Python à son exécution sous Windows
Construire un environnement pour "Tello_Video" avec Raspbian
Création d'un environnement pour "Tello_Video" sous Windows
Procédure de création d'un environnement Kube sur Amazon Linux2 (AWS) ~ (avec bonus)
Exécutez régulièrement des programmes Python sur AWS Lambda
Créez un environnement WardPress sur AWS avec Pulumi
Créer un environnement pour matplotlib + cartopy sur un Mac
Introduction à Python "Re" 1 Construction d'un environnement d'exécution
Une histoire sur la création d'un environnement IDE avec WinPython sur un ancien système d'exploitation Windows.
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
Comment exécuter AutoGluon dans un environnement GPU Google Colab
Procédure de déploiement sur les paramètres d'environnement du serveur AWS (2) (instance EC2)
Création d'un environnement pour "Tello_Video" sur Mac OS X
Comment créer un environnement Django (python) sur Docker
Procédure de création d'un environnement CDK sous Windows (Python)
Comment déployer une application Go sur une instance ECS
Exécutez la version GPU tensorflow sur une instance ponctuelle d'AWS EC2
Comment exécuter Django sur IIS sur un serveur Windows
Comment créer un environnement Python sur Amazon Linux 2
Créer un environnement pour utiliser CaboCha avec Google Colaboratory
Exécutez le programme sans créer d'environnement Python! !! (Comment démarrer avec Google Colaboratory)
Publié en tant que pièce jointe à Slack sur AWS Lambda (Python)
Une note sur la façon de préparer facilement un environnement de pratique Linux
Comment exécuter un modèle de transformateur entraîné localement sur CloudTPU
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Ajouter une extension pour créer un environnement Jupyter plus confortable
Création d'un environnement de développement Jupyter Lab sur WSL2 à l'aide d'Anaconda3
Construire un environnement Python sur un Mac, jusqu'au point d'utiliser Jupyter Lab
Résumé de la construction de Python 3.4. * De la source à la création d'un environnement informatique scientifique
Présentation de l'image Docker de Kaggle sur Windows pour créer un environnement
Remarques sur la façon de charger un environnement virtuel avec PyCharm
Création d'un environnement Keras sur une instance AWS E2 G2 Février 2017
Construire un environnement virtuel Python
Exécutez YOLO v3 sur AWS v2
Construire un environnement virtuel Python
Exécutez YOLO v3 sur AWS
Création d'un environnement de développement Python sur Windows - De l'installation d'Anaconda à la liaison d'Atom et de Jupyter Notebook -
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
Créer un environnement Chainer à l'aide de CUDA et cuDNN sur une instance p2
Un jeu pour partir à l'aventure en mode interactif de python
xgboost (python) sur l'environnement d'instance EC2 Spot préparé par AWS Lambda
Exécutez une application Java qui réside sur AWS EC2 en tant que démon
De la création d'un environnement Python pour les personnes inexpérimentées à Hello world