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).
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.
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.
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.
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.
À 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.
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
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.
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.
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
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.
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
Si les informations CUDA sont affichées en tapant la commande suivante, Les paramètres du GPU sont terminés.
bash
$ nvcc -V
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.
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.
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.
Avec Anaconda, vous pouvez également installer openCV sur une seule ligne.
bash
$ conda install -c https://conda.binstar.org/menpo opencv3
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.
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="*"
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