Accès au serveur GPU
NB: remplacez
username
par votre nom d’utilisateur court, par exemplepjgrenier
Télécom met en libre service un serveur avec quelques GPU haut de gamme (quatre Tesla K80 en 2019) : gpu.enst.fr
. Pour vous connecter :
ssh username@gpu.enst.fr
Règles de bons usages
N’oubliez jamais, beaucoup de personnes dépendent de ces GPU, notamment pour les rendus de projet en M2 ou les deadlines en thèse. Il est donc crucial que vous respectiez ces quelques règles si vous voulez utiliser les GPU :
N’utilisez que le nombre de GPU que vous avez besoin d’utiliser
La majeure partie du temps, vous n’aurez besoin d’en utiliser qu’un seul. Pour choisir lequel, tapez cette commande :
nvidia-smi
Vous verrez alors les usages de chaque GPU. Choisissez-en un ou deux de disponibles (par exemple les numéro 0 et 1), et tapez la commande suivante :
export CUDA_VISIBLE_DEVICES=0,1
Vous pouvez maintenant lancer votre script Python, il n’utilisera que ces deux GPU.
Vérifiez toujours que vous travaillez sur GPU
Dès que vous lancez votre script Python, prenez le réflexe de taper la commande suivante :
nvidia-smi
Afin de vérifier qu’il n’y a pas eu de problème de configuration et que votre GPU est bien utilisé.
Dès que vous avez fini d’utiliser le GPU, ne laissez rien derrière vous !
Si vous lancez par exemple une session Jupyter en remote, il est important que vous tuiez votre noyau dès que vous avez fini, car sinon la mémoire dédiée du GPU continuera d’être utilisée alors que vous n’utilisez pas les GPU.
Environnement Python
Une fois connecté, si vous voulez utiliser un environnement Python, il vous faudra le mettre en place et installer les bibliothèques que vous désirez. Pour cela, vous pouvez passer par virtualenv
, en utilisant les commandes suivantes pour créer l’environnement Python 3 NOM_DE_VOTRE_ENVIRONNEMENT
dans le répertoire courant :
python3 -m pip install virtualenv --user
virtualenv NOM_DE_VOTRE_ENVIRONNEMENT --python=python3
Puis chargez cet environnement (à faire à chaque fois que vous vous connecter au serveur et que vous voudrez vous en servir) :
cd NOM_DE_VOTRE_ENVIRONNEMENT
source bin/activate
Vous pouvez bien sûr créer plusieurs environnements ! Pour sortir de votre environnement, utilisez la commande deactivate
.
Installer des paquets
Vous pouvez alors utiliser pip
pour installer vos paquets, par exemple pour installer numpy :
pip install numpy
Installation de Pytorch
Simplement :
pip install torch torchvision
Installation de Tensorflow/Keras
Pour utiliser Tensorflow sur votre session, il est important de s’assurer de plusieurs choses.
Si le package tensorflow est déjà installé, il faut le désintaller pour installer la version GPU :
pip uninstall tensorflow
On utilise la bonne version de tensorflow, à savoir la version GPU :
pip install tensorflow-gpu
Une fois ceci fait, si vous voulez utiliser Keras, il ne vous reste qu’à faire :
pip install keras
Éventuels problèmes de compatibilité
Il est possible que tensorflow ne marche pas sur votre environnement (pour des problèmes de drivers de carte graphique par exemple). Dans ce cas, il vous faudra utiliser la version 3.6 de Python. Le plus simple est de modifier la ligne
virtualenv NOM_DE_VOTRE_ENVIRONNEMENT --python=python3
en
virtualenv NOM_DE_VOTRE_ENVIRONNEMENT --python=python3.6
dans la partie “Environnement Python” plus haut.
Système de fichiers
Ce serveur offre une capacité de stockage additionnelle à votre quota classique. Un système de fichiers partagé entre tous les utilisateurs est monté sur un home local (/home/infres/username
), avec une capacité de 12 To en 2019 (sur lesquels 9 To étaient alors occupés). Il n’y a visiblement pas de quota par utilisateur. Par ailleurs votre home habituel, partagé entre toutes les machines de Télécom, est monté sur /home/dsi/username
.
Astuces
- Si vous voulez lancer un script qui prend beaucoup de temps (par exemple entrainer votre algorithme de machine learning), utilisez
tmux
. Cela vous permet d’ouvrir une session qui pourra être détachée et continuer de tourner en arrière plan, même après votre déconnexion. Quelques commandes utiles :tmux
lance une sessionctrl + B
puisD
(en deux temps) détache la session actuelle sans la tuerctrl + B
puisC
crée un nouveau terminal dans la sessionctrl + B
puisN
passe au terminal suivantctrl + B
puis"
coupe le terminale en deuxtmux a
attache la session actuelle
version simple : utilisez
tmux
, faites vos bails, puis quand vous voulez partir sans tuer votre programme faitesctrl + B
puisD
. Vous devriez voir le message[detached (from session 0)]
. Vous pouvez alors vous déconnecter et éteindre votre ordi. Quand vous vous re-connecterez, pour retrouver votre session faites simplementtmux a
.
Pour modifier vos fichiers, plusieurs possibilités, parmi lesquelles :
- (le plus puissant) utiliser
vim
ouemacs
(éditeurs en ligne de commande) - (le plus simple) éditer vos fichiers en local et les envoyer avec
scp
: depuis votre ordinateur utilisezscp /chemin/de/mon/fichier username@gpu.enst.fr:/home/infres/username/
- (non recommandé) vous connecter avec l’option ssh
-X
(qui forward le X11) et utiliser Atom ou Gedit par exemple
- (le plus puissant) utiliser
Vous pouvez stocker vos scripts dans
/home/infres/username
, et ainsi l’éditer depuis les machines des salles info