NCCL de NVIDIA: una introducción detallada a NCCL, instalación y uso

NCCL de NVIDIA: una introducción detallada a NCCL, instalación y uso

Tabla de contenido

Introducción a NCCL

1. Utilice CUDA para compilar PyTorch y obtener compatibilidad con NCCL integrada

instalación NCCL

T1 Instalar y configurar automáticamente NCCL

T2 Instalar y configurar manualmente NCCL

Descargar NCCL

Instalar NCCL

Configurar variables de entorno

verificar la instalación

Cómo usar NCCL

1. Uso básico

(1), Integrar NCCL en el marco de aprendizaje profundo

(2), inicialice el entorno NCCL

(3), utilice la operación de comunicación NCCL


Introducción a NCCL

NCCL (NVIDIA Collective Communications Library) es una biblioteca de comunicación multi-GPU de alto rendimiento desarrollada por NVIDIA para la transmisión rápida de datos y la informática colaborativa entre varias GPU NVIDIA. Puede proporcionar soporte para entrenamiento distribuido y aceleración paralela de datos en los campos de aprendizaje profundo y computación de alto rendimiento.

NCCL implementa primitivas de comunicación multi-GPU y multi-nodo optimizadas para GPU NVIDIA y redes . NCCL proporciona rutinas como all-gather, all-reduce, broadcast, reduce, reduce-scatter y envío y recepción punto a punto. Las rutinas están optimizadas para lograr un alto ancho de banda y baja latencia en PCIe y NVLink de alta velocidad. se interconecta dentro de los nodos y en la red NVIDIA Mellanox entre los nodos.

Los principales marcos de trabajo de aprendizaje profundo como Caffe2, Chainer, MxNet, PyTorch y TensorFlow han integrado NCCL en sistemas de múltiples GPU y múltiples nodos para acelerar el entrenamiento de aprendizaje profundo.

1. Utilice CUDA para compilar PyTorch y obtener compatibilidad con NCCL integrada

PyTorch debe compilarse con CUDA para la compatibilidad con NCCL integrada. Al compilar PyTorch con CUDA, puede obtener la versión con NCCL integrado para admitir el entrenamiento distribuido.
 

instalación NCCL

Actualmente, NCCL no admite la instalación y el uso en Windows. NCCL se desarrolla y optimiza principalmente para el sistema operativo Linux y se integra con marcos de aprendizaje profundo en Linux. Por lo tanto, si está realizando un desarrollo de aprendizaje profundo en un sistema Windows, es posible que no pueda instalar y usar NCCL directamente. Sin embargo, todavía es posible usar GPU y CUDA para el entrenamiento de aprendizaje profundo en un sistema Windows, simplemente no puede usar las optimizaciones y funciones específicas proporcionadas por NCCL.

T1 Instalar y configurar automáticamente NCCL

En algunos casos, es posible que NCCL se haya instalado automáticamente con el controlador de GPU de NVIDIA y se haya integrado con CUDA y PyTorch. Por lo tanto, antes de instalar manualmente, asegúrese de no tener una versión instalada de NCCL en su sistema.

T2 Instalar y configurar manualmente NCCL

Tenga en cuenta que los pasos a continuación son solo para la instalación y configuración manual de NCCL.

Descargar NCCL

Dirección de descarga de NCCL: Biblioteca de comunicaciones colectivas de NVIDIA (NCCL) | Desarrollador de NVIDIA

Descargue el paquete de instalación de NCCL para su sistema operativo y GPU. Asegúrese de elegir la versión que sea compatible con su sistema y la versión de CUDA .

NCCL está disponible para descargar como parte de NVIDIA HPC SDK y como un paquete independiente para Ubuntu y Red Hat.

Instalar NCCL

Descomprima el paquete de instalación de NCCL descargado y ejecute la instalación de acuerdo con la guía de instalación que contiene. Por lo general, un paso de instalación consiste en ejecutar un script de instalación específico o ejecutar un comando de instalación predefinido.

Configurar variables de entorno

Una vez completada la instalación, se debe agregar la ruta a NCCL a las variables de entorno del sistema para que otras aplicaciones puedan encontrarla. Los pasos exactos varían según el sistema operativo, pero generalmente implican agregar la ruta de la biblioteca de NCCL a la variable de entorno LD_LIBRARY_PATH (Linux) o PATH (Windows).

verificar la instalación

Una vez completada la instalación, puede usar el siguiente fragmento de código para verificar la instalación de NCCL:

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

o

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

Si el resultado es True, NCCL se instaló e integró correctamente con PyTorch.

Cómo usar NCCL

1. Uso básico

(1), Integrar NCCL en el marco de aprendizaje profundo

NCCL está integrado con los principales marcos de aprendizaje profundo (como PyTorch, TensorFlow) para acelerar el entrenamiento de múltiples GPU y múltiples nodos. Debe asegurarse de que el marco de aprendizaje profundo que utiliza tenga NCCL integrado y configurarlo de acuerdo con la documentación y los ejemplos del marco correspondiente.

(2), inicialice el entorno NCCL

En su código de aprendizaje profundo, debe inicializar el entorno NCCL para la comunicación de múltiples GPU. Esto generalmente implica la creación de grupos de comunicación NCCL, la configuración de identificadores de dispositivos, etc. Para conocer el proceso de inicialización específico, consulte la documentación oficial y el código de muestra de NCCL.

(3), utilice la operación de comunicación NCCL

Una vez que se inicializa el entorno NCCL, puede utilizar las operaciones de comunicación proporcionadas por NCCL para realizar tareas de comunicación paralelas, como recopilación total, reducción total y transmisión. Estas operaciones de comunicación aprovecharán al máximo el alto ancho de banda y la baja latencia entre las GPU y las redes para mejorar el rendimiento del entrenamiento de aprendizaje profundo en sistemas de múltiples GPU y múltiples nodos.


 

Supongo que te gusta

Origin blog.csdn.net/qq_41185868/article/details/130983787
Recomendado
Clasificación