Comment accélérer l'apprentissage automatique des GPU - introduction d'une nouvelle plateforme open source

Nvidia a présenté la plate-forme open source Rapids, dont la mission est d'accélérer les algorithmes d'apprentissage machine GPU. Nous parlons des caractéristiques de l'outil et de ses analogues.


/ photo Martin Brigden CC

Le problème de la formation des réseaux de neurones


La liste des technologies de Nvidia comprend l'architecture de calcul parallèle CUDA. Son objectif est d'accélérer le calcul en transférant une partie des tâches GPU au lieu du CPU. Dans certains cas, cela vous permet d'accélérer le travail des applications et des algorithmes de 18 fois.

Pour cette raison, elle a trouvé une large application dans le domaine de l'apprentissage automatique. Par exemple, des chercheurs des universités de Floride et de Caroline du Nord développent avec son aide un moteur de réseau neuronal pour les simulations quantiques.

Un grand nombre de bibliothèques différentes sont utilisées pour développer des algorithmes MO. Beaucoup d'entre eux sont écrits en Python . Mais tous ne soutiennent pas le travail avec CUDA. Les outils Python pour l'apprentissage automatique scikit-learn et pandas sont des exemples de tels outils. Pour exécuter du code Python dans l'architecture CUDA, les chercheurs utilisent des bibliothèques Numba ou PyCUDA distinctes. Dans ce cas, le code de certains composants doit être réécrit manuellement, ce qui est difficile, car vous devez connaître les fonctionnalités de programmation du GPU.

Nvidia Solution


Dans un effort pour automatiser le portage de code, Nvidia a dévoilé la nouvelle plate-forme ouverte Rapids. Les développeurs n'ont pas besoin de recourir à différentes bibliothèques: ils écrivent simplement du code en Python, et Rapids l'optimise automatiquement pour qu'il s'exécute sur le GPU.

Pour cartographier les processus, Rapids utilise une base de données commune, qui se trouve dans la mémoire du GPU. Les données sont stockées au format Apache Arrow, qui est commun à tous les outils de la plateforme. Cette solution permet d'accélérer le processus d'apprentissage automatique de 50 fois par rapport aux systèmes qui utilisent à la fois des graphiques et des processeurs centraux.

Dans le même temps, des outils sont disponibles sur la plate-forme Rapids à l'aide desquels l'ensemble du processus de travail avec les réseaux de neurones peut être effectué sur une puce graphique: de la préparation des données à la sortie du résultat.

Le nombre de solutions dans le référentiel GitHub Rapids est activement reconstitué. Par exemple, il existe une bibliothèque cuDF pour préparer les données et former un réseau de neurones, et la bibliothèque cuML vous permet de développer des algorithmes d'apprentissage automatique sans entrer dans les détails de la programmation de CUDA.

Nvidia continuera de développer la plateforme. Les créateurs du projet prévoient d'ajouter des outils de visualisation de données, d'analyse de graphiques et d'apprentissage en profondeur à Rapids. Le programme intègre également le framework Apache Spark.

Que pensent-ils de la plateforme


La communauté technologique a soutenu la sortie de Rapids, mais son développement ultérieur a soulevé plusieurs questions d'experts et d'utilisateurs.

Par exemple, des responsables de Cisco, Dell, NetApp, Lenovo et d'autres sociétés se sont prononcés en faveur de la nouvelle solution. Le PDG d'Anaconda, Scott Collison, a déclaré que Rapids simplifiera la collecte et la préparation des données pour la formation de systèmes d'IA complexes. Le créateur d'Apache Arrow et des pandas, Wes McKinney, est d'accord avec lui. Selon lui, Rapids entraînera une productivité accrue dans les tâches liées à la création de fonctionnalités ( ingénierie de fonctionnalités ).


/ photo Sander van der Wel CC

Cependant, la communauté estime également que les Rapids ne peuvent pas être considérés comme un projet vraiment open source. Le système ne fonctionne qu'avec les cartes Nvidia, et la sortie de la plate-forme peut être une mesure marketing pour attirer de nouveaux clients. La société n'a pas encore précisé si la plate-forme fonctionnera avec des appareils d'autres fabricants.

Qui utilise déjà Rapids


IBM prévoit de mettre en œuvre la plate-forme dans des services pour travailler avec des systèmes d'intelligence artificielle: PowerAI, Watson et IBM Cloud. Oracle a également annoncé la prise en charge de Rapids, une plate-forme disponible sur l'infrastructure Oracle Cloud.

Le nouveau produit de Nvidia a également été testé par Walmart et Uber. Les premiers Rapids ont permis d'améliorer les algorithmes du système responsable de la gestion des stocks. Selon des représentants du détaillant, Rapids a accéléré le déploiement d'algorithmes d'apprentissage automatique. Quant à Uber, la société utilise Rapids dans le développement de systèmes de véhicules sans pilote.

Solution alternative


Non seulement Nvidia développe une plate-forme pour accélérer MO. Par exemple, AMD est impliqué dans le projet ROCm (Radeon Open Compute). Il s'agit d'une plate-forme ouverte pour le calcul haute performance sur le GPU.

Une caractéristique de ROCm est qu'il ne dépend pas du langage de programmation et peut fonctionner avec presque toutes les cartes vidéo. Y compris avec les cartes Nvidia. Pour cela , un dialecte spécial C ++ appelé HIP est utilisé. Il simplifie la conversion des applications CUDA en code C ++ portable. Le code est converti automatiquement par un système spécial Hipify.

Dans le même temps, ROCm prend en charge un grand nombre de bibliothèques d'accélération mathématique. Parmi eux, BLAS, FFT et la convolution du tenseur peuvent être distingués.

Les experts de l'industrie informatique soulignent que les solutions open source pour accélérer l'informatique hétérogène et GPU, telles que ROCm et Rapids, donnent aux développeurs la possibilité d'utiliser les ressources informatiques plus efficacement et d'obtenir plus de performances du matériel disponible.



PS Quelques documents du premier blog IaaS d'entreprise:




PPS En bref sur les technologies IaaS - dans notre canal Telegram :



Source: https://habr.com/ru/post/fr429286/


All Articles