NCCL de NVIDIA : une introduction détaillée à NCCL, à l'installation et à l'utilisation

NCCL de NVIDIA : une introduction détaillée à NCCL, à l'installation et à l'utilisation

Table des matières

Introduction au NCCL

1. Utilisez CUDA pour compiler PyTorch afin d'obtenir le support NCCL intégré

Installation du NCCL

T1. Installer et configurer automatiquement NCCL

T2. Installer et configurer manuellement NCCL

Télécharger NCCL

Installer le NCCL

Configurer les variables d'environnement

vérifier l'installation

Comment utiliser le NCCL

1. Utilisation de base

(1), Intégrer NCCL dans le cadre d'apprentissage en profondeur

(2), initialiser l'environnement NCCL

(3), utiliser l'opération de communication NCCL


Introduction au NCCL

NCCL (NVIDIA Collective Communications Library) est une bibliothèque de communication multi-GPU hautes performances développée par NVIDIA pour une transmission de données rapide et un calcul collaboratif entre plusieurs GPU NVIDIA. Il peut prendre en charge la formation distribuée et l'accélération parallèle des données dans les domaines de l'apprentissage en profondeur et du calcul haute performance.

NCCL implémente des primitives de communication multi-GPU et multi-nœuds optimisées pour les GPU NVIDIA et la mise en réseau . NCCL fournit des routines telles que tout rassembler, tout réduire, diffuser, réduire, réduire la diffusion et l'envoi et la réception point à point. Les routines sont optimisées pour obtenir une bande passante élevée et une faible latence sur les cartes PCIe et NVLink à haut débit. s'interconnecte au sein des nœuds et sur le réseau NVIDIA Mellanox entre les nœuds.

Les principaux cadres d'apprentissage en profondeur tels que Caffe2, Chainer, MxNet, PyTorch et TensorFlow ont intégré NCCL dans des systèmes multi-nœuds multi-GPU pour accélérer la formation en apprentissage en profondeur.

1. Utilisez CUDA pour compiler PyTorch afin d'obtenir le support NCCL intégré

PyTorch doit être compilé avec CUDA pour une prise en charge NCCL intégrée. En compilant PyTorch avec CUDA, vous pouvez obtenir la version avec NCCL intégré pour prendre en charge la formation distribuée.
 

Installation du NCCL

Actuellement, NCCL ne prend pas en charge l'installation et l'utilisation sous Windows. NCCL est principalement développé et optimisé pour le système d'exploitation Linux et intégré aux frameworks d'apprentissage en profondeur sur Linux. Par conséquent, si vous effectuez un développement d'apprentissage en profondeur sur un système Windows, vous ne pourrez peut-être pas installer et utiliser NCCL directement. Cependant, il est toujours possible d'utiliser GPU et CUDA pour une formation d'apprentissage en profondeur sur un système Windows, il ne peut tout simplement pas utiliser les optimisations et fonctions spécifiques fournies par NCCL.

T1. Installer et configurer automatiquement NCCL

Dans certains cas, NCCL peut avoir été automatiquement installé avec le pilote GPU NVIDIA et intégré à CUDA et PyTorch. Par conséquent, avant d'installer manuellement, assurez-vous que vous n'avez pas installé de version de NCCL sur votre système.

T2. Installer et configurer manuellement NCCL

Notez que les étapes ci-dessous concernent uniquement l'installation et la configuration manuelles de NCCL.

Télécharger NCCL

Adresse de téléchargement NCCL : Bibliothèque de communications collectives NVIDIA (NCCL) | Développeur NVIDIA

Téléchargez le package d'installation NCCL pour votre système d'exploitation et votre GPU. Assurez-vous de choisir la version compatible avec votre système et la version de CUDA .

NCCL est disponible en téléchargement dans le cadre du SDK NVIDIA HPC et en tant que package autonome pour Ubuntu et Red Hat.

Installer le NCCL

Décompressez le package d'installation NCCL téléchargé et exécutez l'installation conformément au guide d'installation qu'il contient. Généralement, une étape d'installation consiste à exécuter un script d'installation spécifique ou à exécuter une commande d'installation prédéfinie.

Configurer les variables d'environnement

Une fois l'installation terminée, le chemin vers NCCL doit être ajouté aux variables d'environnement du système afin que d'autres applications puissent le trouver. Les étapes exactes varient selon le système d'exploitation, mais impliquent généralement l'ajout du chemin de la bibliothèque NCCL à la variable d'environnement LD_LIBRARY_PATH (Linux) ou PATH (Windows).

vérifier l'installation

Une fois l'installation terminée, vous pouvez utiliser l'extrait de code suivant pour vérifier l'installation de NCCL :

python -c "import torch; print(torch.cuda.nccl.version())"

ou

import torch
print(torch.cuda.nccl.is_available())

Si la sortie est True, NCCL a été installé et intégré avec succès à PyTorch.

Comment utiliser le NCCL

1. Utilisation de base

(1), Intégrer NCCL dans le cadre d'apprentissage en profondeur

NCCL est intégré aux cadres d'apprentissage en profondeur courants (tels que PyTorch, TensorFlow) pour accélérer la formation multi-nœuds multi-GPU. Vous devez vous assurer que le cadre d'apprentissage en profondeur que vous utilisez a intégré NCCL et le configurer en fonction de la documentation et des exemples du cadre correspondant.

(2), initialiser l'environnement NCCL

Dans votre code d'apprentissage en profondeur, vous devez initialiser l'environnement NCCL pour la communication multi-GPU. Cela implique généralement la création de groupes de communication NCCL, la définition d'identificateurs d'appareils, etc. Pour le processus d'initialisation spécifique, veuillez vous référer à la documentation officielle et à l'exemple de code de NCCL.

(3), utiliser l'opération de communication NCCL

Une fois l'environnement NCCL initialisé, vous pouvez utiliser les opérations de communication fournies par NCCL pour effectuer des tâches de communication parallèles telles que tout rassembler, tout réduire et diffuser. Ces opérations de communication tireront pleinement parti de la bande passante élevée et de la faible latence entre les GPU et les réseaux pour améliorer les performances d'apprentissage en profondeur sur les systèmes multi-nœuds multi-GPU.


 

Je suppose que tu aimes

Origine blog.csdn.net/qq_41185868/article/details/130983787
conseillé
Classement