L’unité de traitement graphique (GPU) du nuage OpenStack de l’ATIR

Utiliser une GPU en nuage n’est pas du tout la même chose qu’en utiliser une sur son ordinateur portable ou sa plateforme de jeu. Pour en tirer le maximum, vous devrez apprendre à la gérer au moyen du terminal. Si Linux et l’administration de cette plateforme sont nouveaux pour vous, ne vous en faites pas. Il n’y a rien de compliqué là-dedans. Cependant, rappelez-vous que le jour où vous ferez appel à un fournisseur de services d’infonuagique publics, se servir d’une GPU peut s’avérer coûteux. C’est pourquoi, il vaut la peine de songer à d’autres technologies qui rendront vos projets moins onéreux. Votre portefeuille vous en sera reconnaissant!

Ai-je vraiment besoin d’une GPU?

Pour le savoir, sachez que :

  • la plupart des tâches n’en nécessite pas,
  • une unité centrale de traitement multifilière peut aboutir à des résultats plus précis (la simulation d’un tissu, par exemple);
  • les coûts augmenteront quand vous passerez à un compte d’infonuagique personnel.

Quelle GPU devrais-je choisir?

Bien. Vous savez maintenant qu’il vous faudra une GPU. Le moment est donc venu de choisir celle qui vous conviendra le mieux. Si vous ne suivez pas à la loupe les sites qui rapportent les plus récentes nouveautés en matière de matériel, peut-être l’ignorez-vous, mais les GPU ont des règles d’affectation des noms et des cas d’utilisation différents selon l’entreprise. Pour l’instant, l’ATIR héberge deux cartes NVIDIA pour les tâches nécessitant une GPU : la A100 (V2.large) et la P100 (V2.medium). Les deux fonctionnent avec les versions les plus récentes de la plateforme CUDA et les derniers pilotes NVIDIA (au début de 2023).

Carte A100 (V2.Large) de NVIDIA

La carte A100 a été conçue pour l’apprentissage automatique et l’analyse des données comme l’illustre ses 512 champs tensoriels, des cœurs qui exploitent les bibliothèques comme TensorFlow et permettent d’économiser des heures de formation. La performance de cette carte correspond presque au double de la carte P100 en rendu d’images.

Carte P100 (V2.medium) de NVIDIA

Plus ancienne, cette carte a été conçue pour effectuer des tâches scientifiques et de la recherche. Elle n’est pas dotée de champs tensoriels et s’appuie sur l’architecture Pascal, qui est plus vieille. Elle n’a pas accès à des champs tensoriels dédiés. Si on s’en sert pour effectuer des tâches d’apprentissage automatique, le modèle fonctionnera donc nettement moins vite qu’avec une carte A100. On se sert habituellement de la carte P100 comme GPU parce qu’elle coûte nettement moins cher sur une plateforme en nuage. Si vous bâtissez une plateforme qui nécessitera une répartition dynamique d’instances de la GPU ou si vous travaillez sur un projet peu urgent, la P100 s’avère un excellent choix.

Comment puis-je savoir si j’utilise ma GPU ou pas?

Linux

Cette question est sans doute la première qu’on devrait se poser. Nous voyons souvent des gens se servir d’instances d’une GPU sans jamais en exploiter les puissantes capacités graphiques. La manière la plus rapide de vérifier le degré d’utilisation consiste à se connecter à l’instance de la GPU par une autre fenêtre du terminal et à exécuter la commande : nvidia-smi

On obtiendra ainsi des informations sur la GPU raccordée à l’instance, notamment son usage. Veuillez noter la version du pilote que vous utilisez. Selon le cas, vous pourriez avoir besoin d’une version plus récente ou plus ancienne afin que les applications fonctionnent correctement. Pour rendre des images avec la ligne de commande de Blender, par exemple, vous aurez besoin de progiciels (et de pilotes) récents pour la quasi-totalité des tâches.

On pourra utiliser la marque -l ou –loop suivie d’un chiffre correspondant à l’intervalle (en secondes) auquel les données devraient être affichées. La commande ci-dessous, par exemple, indiquera la mémoire utilisée par la GPU, la température et d’autres valeurs toutes les secondes: nvidia-smi -l 1

On peut aussi se servir de la marque -q ou –query pour indiquer les valeurs à afficher. La commande qui suit, par exemple, affichera la température de la GPU et l’utilisation de cette dernière toutes les secondes: nvidia-smi -l 1 -q -d TEMPERATURE,UTILIZATION

Windows

Sur Windows, la méthode est simple. Ouvrez le gestionnaire de tâches et effectuez un tri d’après l’usage des GPU. Les scripts d’apprentissage automatique, si vous en utilisez, apparaîtront sans doute sous la forme d’applications Python ou Powershell dans le gestionnaire.

Configurer la GPU

Comme pour tout le reste, ou presque, une bonne façon de s’assurer que toutes les ressources de la GPU sont exploitées consiste à garder celle-ci à jour. Suivez les étapes ci-dessous pour apprendre à actualiser les pilotes sur une instance Ubuntu.

Remarque : Nous procurerons la version à jour de ces pilotes plusieurs fois par année. Un avis sur le canal Slack ou un courriel vous signalera la disponibilité des pilotes les plus récents.

Ubuntu

  1. Exécutez la commande nvidia-smi pour vérifier qu’un pilote a bien été installé sur la machine.
  2. S’il n’y en a pas, téléchargez les pilotes nvidia pour votre système avec la commande wget. Si vous n’avez pas installé wget, exécutez la commande que voici : sudo apt install wget
  1. Créez un nouveau fichier que vous baptiserez dair-nvidia-installer.sh. : nano nvidia-installer.sh

  1. Ensuite, copiez puis collez le script ci-dessous avec l’éditeur de texte.

wget https://swift-yyc.cloud.cybera.ca:8080/v1/AUTH_8c4974ed39a44c2fabd9d75895f6e28b/cybera_public/NVIDIA-GRID-Linux-KVM-510.85.03-510.85.02-513.46.zip
unzip NVIDIA-GRID-Linux-KVM-*.zip
chmod 755 Guest_Drivers/NVIDIA-Linux-x86_64-*-grid.run

sudo apt-get install -y nvidia-modprobe

sudo ./Guest_Drivers/NVIDIA-Linux-x86_64-*-grid.run --dkms --skip-module-unload -as -k $(ls --sort=time /boot | grep vmlinuz- | head -n 1 | sed 's/vmlinuz-//')

  1. Cela fait, enregistrez le fichier en enfonçant les touches CTRL + O. Pour quitter cet écran, utilisez les touches CTRL + X.
  2. Maintenant, faites en sorte que le script puisse s’exécuter en lançant la commande sudo chmod +x dair-nvidia-installer.sh
  3. À présent, installez le script dans la racine avec sudo ./dair-nvidia-installer
  4. L’installation terminée, redémarrez la machine avec la commande reboot
  5. Après le démarrage, exécutez la commande nvidia-smi pour vous assurer que le pilote a bien été installé.

Windows

  1. Téléchargez le nouveau pilote (version 513.46) en cliquant ici.
  2. Décomprimez le fichier.
  3. Exécutez la commande : 513.46_grid_win10_win11_server2019_server2022_64bit_international.exe
  4. Redémarrez l’instance une fois l’exécution terminée.
  5. Reconnectez-vous à l’instance et vérifiez si la version du logiciel NVIDIA est la bonne.

Essai de CUDA avec PyTorch

Si vous utilisez PyTorch, voici un script dont vous pourrez vous servir pour vérifier si votre GPU est disponible :

import torch

# Check if a GPU is available
if torch.cuda.is_available():
  # Use the GPU
  device = torch.device("cuda")
else:
  # Use the CPU
  device = torch.device("cpu")

# Create a tensor on the specified device
x = torch.zeros(5, 5, device=device)

Ce script utilise la fonction torch.cuda.is_available() pour obtenir une réponse booléenne vous indiquant si la plateforme CUDA est disponible ou pas. Dans le premier cas, la plateforme sera stockée dans la variable de l’appareil et vous pourrez vous en servir au moment de créer les champs tensoriels.

Renseignements complémentaires

Le programme ATIR propose aussi un répertoire de Propulseurs, c’est-à-dire des trousses qui vous aideront à maîtriser de nouvelles technologies et à vous perfectionner plus vite. Vous y trouverez de nombreuses ressources fort utiles, notamment des modèles d’apprentissage automatique auxquels vous pourriez recourir pour vos propres applications et qui se déploient rapidement sur l’instance d’une GPU de l’ATIR pour expérimentation..

Vous trouverez ceci dans chaque Propulseur :

En voici deux sur l’intelligence artificielle et l’apprentissage machine, pour débuter.

Prévision de séries chronologiques par apprentissage automatique

Bâtisseur :  BluWave-ai

Ce Propulseur démontre l’application de l’apprentissage machine pour développer des modèles qui fournissent de bonnes prédictions pour les données de séries temporelles.

Lisez le plan de vol pour en savoir plus.

Consultez le solution type pour savoir comment procéder.

 

L’apprentissage machine appliqué à un système de recommandation automatique

Bâtisseur : Carla Margalef Bentabol

Ce Propulseur montre comment un modèle de filtrage collaboratif en profondeur est utilisé pour fournir des recommandations aux utilisateurs en fonction de leurs préférences passées et des similitudes avec d’autres utilisateurs. Ceci est très utile pour les développeurs de logiciels qui ont besoin d’un système de recommandation automatique.

Lisez le plan de vol pour en savoir plus.

Consultez le solution type pour savoir comment procéder.