Qu’est-ce que NVIDIA NGC ?
Les workflows modernes d’intelligence artificielle (IA) et d’apprentissage automatique (ML) axés sur la science et l’entreprise ne sont pas simples à exécuter étant donné les complexités résultant de plusieurs packages et frameworks souvent utilisés dans une telle tâche typique. Toutes les dépendances mutuelles et les interrelations entre ces frameworks open source peuvent rendre la vie d’un data scientist assez misérable.
L’utilisation de conteneurs est un moyen universellement puissant, mais d’une simplicité trompeuse, de résoudre ce problème. Un conteneur est une unité logicielle portable qui combine l’application et toutes ses dépendances en un seul package qui est indépendant du système d’exploitation hôte sous-jacent. Ainsi, il supprime le besoin de créer des environnements complexes et simplifie le processus de développement d’applications jusqu’au déploiement.
Docker et Kubernetes (gestion de conteneurs) sont deux technologies open source qui viennent immédiatement à l’esprit à cet égard.
Cependant, la création de conteneurs optimisés pour le GPU, spécialement conçus pour les applications d’apprentissage en profondeur les plus exigeantes, n’est pas une tâche triviale. Pour résoudre ce problème, NVIDIA, le pionnier des technologies GPU et de la révolution de l’apprentissage en profondeur, a mis au point un excellent catalogue de conteneurs spécialisés qu’ils appellent Collections du MBAC.
Dans cet article, nous explorons leur utilisation de base et quelques variantes.
Fonctionnalités de base des conteneurs NVIDIA NGC
Il existe de nombreux cas d’utilisation et scénarios auxquels ces conteneurs peuvent être appliqués. Les data scientists et les ingénieurs hardcore ML peuvent tous les deux les utiliser à diverses fins. Certaines des principales caractéristiques de ce catalogue NGC sont :
- Ils représentent un ensemble vraiment diversifié de conteneurs couvrant une multitude de cas d’utilisation
- Ils englobent tous les populaires bibliothèques intégrées et dépendances pour une compilation facile d’applications personnalisées telles qu’elles sont pratiquées dans le domaine typique de la science des données et du ML
- Ils sont extrêmement portable, permettant à une data scientist de développer ses applications sur le cloud, sur site ou à la périphérie
- Ils se rendent compte de la réduction délai de résolution en passant de systèmes à nœud unique à des systèmes à plusieurs nœuds de manière intuitive
Les data scientists professionnels et même les amateurs peuvent tirer pleinement parti de ces fonctionnalités. Mais les NGC sont plus que cela. Ils sont également conçus pour les grandes entreprises.
- Ils sont prêts pour l’entreprise et analysés à la recherche de vulnérabilités et d’expositions courantes (CVE).
- Ils sont soutenus par un support d’entreprise en option pour résoudre les problèmes des logiciels conçus par NVIDIA
Cas d’utilisation et variétés
Comme mentionné ci-dessus, les conteneurs et le catalogue NGC couvrent une grande variété de cas d’utilisation et de scénarios d’application. Par exemple, ils présentent à la fois des frameworks d’apprentissage en profondeur populaires et Calcul haute performance (HPC) des bibliothèques et des boîtes à outils qui exploitent également le calcul accéléré des clusters GPU. La figure suivante illustre cet univers,
Presque tous les data scientists sont familiers avec les frameworks d’apprentissage en profondeur comme TensorFlow et PyTorch, mais le HPC conteneurisé est un domaine spécialisé qui mérite une mention spéciale et quelques précisions. Voici quelques faits sur ces conteneurs.
NAMD
NAMD est un code de dynamique moléculaire parallèle conçu pour la simulation haute performance de grands systèmes biomoléculaires. Il utilise le programme graphique moléculaire populaire VMD pour la configuration de la simulation et l’analyse de trajectoire, mais est également compatible avec les fichiers AMBER, CHARMM et X-PLOR. Il fonctionne bien avec les GPU NVIDIA Pascal (sm60), Volta (sm70) ou Ampere (sm80).
GROMACS
GROMACS est un application de dynamique moléculaire conçu pour simuler des équations de mouvement newtoniennes pour des systèmes avec des centaines à des millions de particules. Ce forfait est conçu pour simuler des molécules biochimiques telles que des protéines, des lipides et des acides nucléiques qui ont beaucoup d’interactions liées compliquées.
GROMACS fonctionne bien avec la famille de GPU suivante – GPU Ampere A100, Volta V100 ou Pascal P100. Une fréquence d’horloge élevée est plus importante que le nombre absolu de cœurs, bien qu’il soit souhaitable d’avoir plus d’un thread par rang. GROMACS prendra en charge les multi-GPU dans un système, mais nécessite plusieurs cœurs de processeur pour chaque GPU.
Il est préférable de commencer avec un GPU utilisant tous les cœurs de processeur, puis d’évoluer pour explorer ce qui fonctionne le mieux pour le cas d’application spécifique.
RELION
REGularized Likelihood OptimizatioN met en œuvre une approche bayésienne empirique pour l’analyse de la cryo-microscopie électronique (Cryo-EM). Spécifiquement, RELION fournit des méthodes de raffinement de reconstructions 3D singulières ou multiples ainsi que des moyennes de classe 2D.
Il est composé de plusieurs étapes qui couvrent l’ensemble du flux de travail d’analyse de particules uniques – correction de mouvement induite par faisceau, estimation CTF, sélection automatisée de particules, extraction de particules, moyenne de classe 2D, classification 3D et raffinement haute résolution en 3D. RELION peut également traiter des films générés à partir de détecteurs d’électrons directs, appliquer la netteté finale de la carte et effectuer l’estimation de la résolution locale. C’est un outil extrêmement important pour étudier les mécanismes des cellules vivantes.
RELION, comme les autres HPC, fonctionne bien avec les GPU NVIDIA Pascal (sm60), Volta (sm70) ou Ampere (sm80). Le conteneur NGC est conçu pour tirer parti de ces systèmes GPU. Un grand espace disque de travail local, idéalement SSD ou RamFS est nécessaire. Une fréquence d’horloge élevée est plus importante que le nombre de cœurs.
Comment démarrer avec les conteneurs NVIDIA NGC
Avant qu’un data scientist puisse exécuter un conteneur de framework d’apprentissage en profondeur NGC, il doit s’assurer que son environnement Docker localisé prend en charge les GPU NVIDIA.
Le guide détaillé est disponible ici sur le site Web de NVIDIA : Exécuter un conteneur.
Essentiellement, les composants de base du flux de travail consistent en,
- Activer la prise en charge du GPU sur docker
- Spécification d’un utilisateur
- Définir des drapeaux
- Supprimer le drapeau
- Drapeau interactif
- Indicateur de volumes
- Drapeau des ports de mappage
- Indicateur de mémoire partagée
- Restriction de l’exposition du drapeau GPU
- Gestion de la durée de vie du conteneur
Le flux est visualisé ci-dessous.
Exemples de conteneurs populaires
Le catalogue NGC est un univers en constante expansion de conteneurs spécialisés que les data scientists exigent et construisent eux-mêmes. Certains des plus populaires (selon le site de NVIDIA) sont les suivants.
IA AWS avec NVIDIA
De SageMaker aux instances P3 dans le cloud, que vous travailliez avec PaaS ou une infrastructure, cette collection est le point de départ pour tirer parti de la puissance combinée des outils d’IA cloud NGC et Amazon dans un mélange puissant.
Voici le lien pour obtenir et utiliser ce conteneur : https://ngc.nvidia.com/catalog/collections/nvidia:amazonwebservices
Reconnaissance vocale automatique
Il s’agit d’une collection de modèles d’apprentissage en profondeur hautement optimisés et faciles à utiliser pour systèmes de recommandation. Des exemples d’apprentissage en profondeur optimisés et soigneusement sélectionnés fournissent aux scientifiques des données et aux ingénieurs logiciels des recettes pour former, affiner et déployer des modèles de pointe dans ces domaines et une grande variété de domaines d’application réels.
Voici le lien pour obtenir et utiliser ce conteneur : https://ngc.nvidia.com/catalog/collections/nvidia:automaticspeechrecognition
Clara Découverte
Clara Discovery est une collection de frameworks, d’applications et de modèles d’IA permettant l’accélération GPU découverte computationnelle de médicaments. Le développement de médicaments est une entreprise interdisciplinaire.
Clara Discovery peut être appliqué tout au long du processus de découverte de médicaments et combine l’informatique accélérée, l’IA et l’apprentissage automatique dans génomique, protéomique, microscopie, criblage virtuel, chimie computationnelle, visualisation, imagerie clinique et traitement du langage naturel (PNL).
Conteneur DeepStream
en cours d’analyse données de capteur en streaming à haut volume et à haute vitesse issues d’applications industrielles ou grand public devient de plus en plus exigeante et omniprésente en cette ère de transformation numérique massive. Le kit de développement logiciel DeepStream de NVIDIA fournit une boîte à outils complète d’analyse de streaming pour le traitement multi-capteurs basé sur l’IA, la compréhension de la vidéo et de l’image. DeepStream fait partie intégrante de NVIDIA Metropolis, la plate-forme de création de services et de solutions de bout en bout pour transformer les pixels et les données des capteurs en informations exploitables.
Ce SDK comprend des blocs de construction à accélération matérielle, appelés plug-ins, qui intègrent des réseaux de neurones profonds (DNN) et d’autres tâches complexes de prétraitement et de transformation dans un pipeline de traitement de flux. Il permet au data scientist de se concentrer sur la création de DNN de base et d’IP de grande valeur plutôt que de concevoir des solutions de bout en bout à partir de zéro.
Le SDK a la capacité d’utiliser Modèles d’IA pour percevoir les pixels et analyser les métadonnées tout en offrant une intégration de la périphérie au cloud. Le SDK peut être utilisé pour créer des applications dans divers cas d’utilisation, notamment,
- analyse de détail,
- suivi des patients dans les établissements de santé,
- gestion du stationnement,
- contrôle optique,
- la gestion de la logistique et des opérations d’étage industriel.
Plus de détails sur ce conteneur peuvent être trouvés ici: https://ngc.nvidia.com/catalog/collections/nvidia:deepstreamcomputervision
Conclusion
Les conteneurs NVIDIA NGC et leur catalogue complet sont une suite étonnante de piles logicielles prédéfinies (utilisant le backend Docker) qui simplifie l’utilisation de bibliothèques d’apprentissage en profondeur et HPC complexes qui doivent tirer parti d’une sorte d’infrastructure informatique accélérée par GPU. Il contient un guide étape par étape bien défini sur la façon d’extraire et de commencer à utiliser les conteneurs et, s’il est suivi, ils peuvent faciliter la vie d’une grande variété de scientifiques des données, d’ingénieurs ML et de scientifiques utilisant des simulations HPC.
Les domaines d’application couverts par les conteneurs existants sont vraiment diversifiés et en constante expansion. La philosophie du catalogue NGC est « Construit par des développeurs pour des développeurs« . Ainsi, il doit se sentir proche de la maison pour les professionnels très orientés techniquement.