[PYTHON] Configurer AWS (Ubuntu 14.04) pour le Deep Learning (installer CUDA, cuDNN)

1. Préparez une machine pour le Deep Learning sur AWS

Une machine Linux avec un GPU est essentielle pour DeepLearning.

Cependant, il faut du temps et de l'argent pour préparer vous-même une machine GPU, donc Préparons facilement une machine Linux hautes performances avec AWS (Amazon Web Service).

1.1. Exigences relatives aux instances

Pour l'instance (ordinateur sur AWS), adoptez les conditions suivantes.

Dans AMI, vous pouvez sélectionner Amazon Linux etc. en plus d'Ubuntu, Étant donné que des problèmes surviennent fréquemment liés aux packages, il est recommandé d'utiliser Ubuntu ordinaire.

1.2. Paramètres du groupe de sécurité

Par défaut, seules les connexions SSH sont autorisées, donc Même si je configure un serveur sur AWS, je ne peux pas y accéder. ping ne vole pas non plus.

Configurez le groupe de sécurité pour accéder au port 8888 du protocole TCP.

1.3. Paramètres IP élastiques

AWS exige que l'instance soit arrêtée pour un redémarrage, L'adresse IP publique change chaque fois que j'arrête l'instance.

Par conséquent, afin de corriger l'adresse IP publique, enregistrez l'adresse IP Elastic et attribuez-la à l'instance.

1.4. Connexion SSH à l'instance

Téléchargez le logiciel client SSH Tera Term.

Connectez-vous à l'adresse IP publique de l'instance, Si vous spécifiez une clé qui peut être téléchargée lors de la création d'une instance avec le nom d'utilisateur "ubuntu", Mettez-le dans la console de l'instance.

Maintenant, fonctionne comme Ubuntu.

2. Rendre le GPU disponible

À ce stade, vous disposez d'une instance sur AWS.

Mais l'instance g2.2xlarge a un GPU, Par défaut, le GPU n'est pas disponible.

Par conséquent, installez ce qui suit pour activer le Deep Learning sur le GPU.

2.1. Installation du pilote

2.1.1. Mise à jour du package

Tout d'abord, mettez à jour le système de gestion des packages. Vous pouvez également utiliser apt-get au lieu d'aptitude.

bash


$ sudo aptitude update
$ sudo aptitude -y full-upgrade
$ sudo aptitude install -y build-essential cmake

2.1.2. Arrêter nouveau

Ensuite, je voudrais mettre à jour le pilote graphique. Tout d'abord, arrêtez le pilote graphique par défaut (nouveau).

Après avoir créé le fichier de paramètres suivant

bash:/etc/modprobe.d/blacklist-nouveau.conf


blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

bash:/etc/modprobe.d/nouveau-kms.conf


options nouveau modeset=0

Appuyez sur la commande d'arrêt de bash.

bash


$ sudo update-initramfs -u

Redémarrez maintenant l'instance. Avec AWS, vous ne pouvez pas redémarrer avec la commande reboot, donc Arrêtez et redémarrez l'instance à partir de la console AWS.

2.1.3. Installation du pilote graphique

Téléchargez le pilote depuis la page officielle de NVIDIA.

Vous pouvez accéder directement à l'instance à partir de la destination de téléchargement, ou vous pouvez envoyer le pilote téléchargé via tera term ou autre.

Pour installer le pilote, utilisez la commande suivante.

bash


$ sudo aptitude install -y linux-image-extra-virtual linux-source linux-headers-`uname -r`
$wget "pilote".run
$sudo sh "pilote".run -a --disable-nouveau

Maintenant, redémarrez l'instance pour terminer l'installation du pilote.

2.2. Installation de la boîte à outils CUDA

Téléchargez le référentiel pour cuda depuis la Page officielle de CUDA.

Une fois que vous avez activé le dépôt téléchargé, vous pourrez installer cuda à partir d'aptitude (apt-get).

bash


$wget "Dépôt".deb
$ sudo dpkg -i "Référentiel"
$ sudo aptitude update
$ sudo aptitude install -y cuda
$ sudo reboot

2.3. Installation de cuDNN

2.3.1. Télécharger cuDNN

Téléchargez cuDNN depuis la page NVIDIA (https://developer.nvidia.com/cudnn). Ce téléchargement nécessite l'enregistrement d'un compte, veuillez donc créer un compte approprié.

De plus, comme le fichier archive de cuDNN n'est pas directement récupéré par wget, Doit être envoyé à l'instance via tera term etc.

bash


$ tar -xvf 『cnDNN』.tgz
$ cd cuda
$ sudo cp include/cudnn.h /usr/local/『cuda-X.X』/include/
$ sudo cp lib64/libcudnn* /usr/local/『cuda-X.X』/lib64
$ sudo ldconfig /usr/local/cuda/lib64

Si ldconfig échoue, supprimez le fichier en conflit.

2.3.2. Définition des variables d'environnement

Retournez à la maison et réécrivez .bashrc.

bash


$ cd ~
$ vim .bashrc

~/.bashrc


export PATH=/usr/local/『cuda-X.X』/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/『cuda-X.X』/lib64:$LD_LIBRARY_PATH

Enfin, activez le contenu de .bashrc.

bash


$ source .bashrc

2.3.3. Confirmation de l'installation réussie

Si les informations CUDA sont affichées en tapant la commande suivante, Les paramètres du GPU sont terminés.

bash


$ nvcc -V

3. Installez Python lié

Python est utilisé pour implémenter DeepLearning. Pour mettre les modules de calcul mathématique et l'environnement de développement de Python (notebook Jupyter) dans un lot Installez une distribution appelée Anaconda.

De plus, Theano de la bibliothèque Deep Learning et Permet d'utiliser openCV, une bibliothèque de traitement d'image.

3.1. Installer Anaconda

bash


$ wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda3-2.4.1-Linux-x86_64.sh
$ bash Anaconda3-2.4.1-Linux-x86_64.sh
$ source .bashrc

J'ai utilisé la commande bash parce que sh ne fonctionnait pas.

3.2. Installez Theano

bash


$ sudo aptitude install git
$ pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps

Si vous tirez Theano directement avec pip sans passer par git, certains modules plus anciens peuvent générer une erreur.

3.3. Installez openCV

Avec Anaconda, vous pouvez également installer openCV sur une seule ligne.

bash


$ conda install -c https://conda.binstar.org/menpo opencv3

4. Vérification du fonctionnement du GPU

Pour vérifier le succès ou l'échec de la configuration précédente

gpu_check.py


from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')

Exécutons le script Python ci-dessus (gpu_check.py) avec la commande suivante.

bash


$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python gpu_check.py

Le résultat de cette exécution est

bash


Using gpu device 0: GeForce GTX 580
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.638810873032 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296]
Used the gpu

Si tel est le cas, vous pouvez confirmer que Theano fonctionne sur GPU.

5. Configuration terminée

Vous avez maintenant configuré AWS pour le Deep Learning.

Enfin, lançons l'environnement de développement et implémentons l'intelligence artificielle.

bash


$ jupyter notebook --no-browser --ip="*"

Les références

Installation du pilote de pilote graphique / CUDA sur AWS: http://qiita.com/shinya_ohtani/items/f374ed0dd51737087369

Installation de cuDNN: http://www.computervisionbytecnalia.com/es/2016/06/deep-learning-development-setup-for-ubuntu-16-04-xenial/

Paramètres de la variable d'environnement cuDNN: http://qiita.com/bohemian916/items/a48e6496b04bbbf09fb3

Installation d'Anaconda: http://morimori2008.web.fc2.com/contents/PCprograming/python/pythonAnaconda.html

Installation de Theano: https://github.com/fchollet/keras/issues/1888

Installez openCV: http://hikuichi.hatenablog.com/entry/2015/12/22/124044

Exécutez Theano sur GPU: http://deeplearning.net/software/theano/tutorial/using_gpu.html

Recommended Posts

Configurer AWS (Ubuntu 14.04) pour le Deep Learning (installer CUDA, cuDNN)
Installez CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 sur Ubuntu 18.04
Installez le dernier Cuda + CuDNN sur Ubuntu 18.04 @ Spring 2020
Apprenons en profondeur! Sous Windows (VS2013 + caffe + CUDA7.5 + cudnn5.1)
Configurer des bibliothèques Python et d'apprentissage automatique sur Ubuntu
Configurer Python 3.4 sur Ubuntu
Ensemble de données pour l'apprentissage automatique
Comment configurer Ubuntu pour le sous-système Windows pour Linux 2 (WSL2)
Configurer pour Mac (Python)
Apprentissage profond pour la formation composée?
Installez CUDA 8.0 et Chainer sur Ubuntu 16.04
Installez confluent-kafka pour Python sur Ubuntu
[AI] Apprentissage en profondeur pour le débruitage d'image
Jusqu'à ce que l'environnement Deep Learning (TensorFlow) utilisant le GPU soit préparé pour Ubuntu 14.04
Créez votre propre PC pour un apprentissage en profondeur
[Apprentissage en profondeur] Détection de visage Nogisaka ~ Pour les débutants ~
À propos du traitement d'expansion des données pour l'apprentissage en profondeur
De rien sur Ubuntu 18.04 à la configuration d'un environnement Deep Learning sur Tensor
Installez le pilote NVIDIA (GeForce RTX 2070 SUPER), cuda 10.1, cudnn 7.6 sur Ubuntu 18.04.3 LTS + build l'environnement python