En esta guía, se describe cómo habilitar, inhabilitar y administrar la biblioteca del Analizador de comunicación colectiva (CoMMA). CoMMA recopila telemetría de NCCL para los Google Cloud servicios. Para obtener más información sobre CoMMA, consulta Analizador de comunicación colectiva (CoMMA).
Habilita CoMMA
CoMMA está preinstalado y habilitado si usas imágenes que contienen el complemento gIB de NCCL. Para obtener una lista de estas imágenes, consulta Imágenes que tienen CoMMA habilitado.
Opciones de instalación
Si no usas ninguna de estas imágenes y quieres instalar CoMMA, usa uno de los siguientes métodos.
| Método de instalación | Tipos de máquina admitidos |
|---|---|
| Imagen del paquete de infraestructura de Google (gIB) de NCCL (recomendado para tipos de máquinas más nuevos) | A4X Max, A4X, A4 High y A3 Ultra |
| Imagen del instalador de CoMMA | A4X, A4 High y A3 Ultra |
| Compila desde el origen (obligatorio para tipos de máquinas más antiguos) | A3 Mega, A3 High, A3 Edge, A2 Ultra, A2 Standard y N1 con GPUs conectadas |
Instala CoMMA
Para instalar CoMMA, selecciona una de las siguientes opciones:
Imagen gIB de NCCL
Para instalar CoMMA con la imagen gIB de NCCL, ejecuta el siguiente comando.
docker run --rm --name nccl-gib-installer --volume /usr/local/gib:/var/lib/gib \ us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib install \ --install-nccl
Imagen del instalador de CoMMA
Puedes obtener objetos binarios de CoMMA en una imagen de Docker independiente. Puedes usar la imagen de Docker de CoMMA, us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/comma-installer, como initContainers para instalar objetos binarios de CoMMA en el contenedor de tu carga de trabajo.
El contenedor almacena los objetos binarios en el directorio /artifacts.
Para usar la imagen del instalador de CoMMA, completa los siguientes pasos:
Instala CoMMA en tu carga de trabajo agregando el siguiente fragmento a
initContainers:- name: profiler-plugin-installer image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/comma-installer:latest imagePullPolicy: Always volumeMounts: - name: nccl-plugin-volume mountPath: /usr/local/nccl-plugin command: - /bin/sh - -c - | set -ex rm -rf /usr/local/nccl-plugin/lib64/libnccl-profiler.so cp /artifacts/libnccl_profiler.so /usr/local/nccl-plugin/lib64/libnccl-profiler.so # GPUViz is a dependency of telemetry insights such as straggler detection rm -rf /usr/local/nccl-plugin/lib64/libGPUViz.so cp /artifacts/libGPUViz.so /usr/local/nccl-plugin/lib64/
El fragmento de configuración de YAML especifica un contenedor para instalar CoMMA.
El fragmento especifica la imagen del contenedor del instalador, su política de extracción y una activación de volumen para el complemento.
La misma activación de volumen debe activarse en el contenedor de tu carga de trabajo con
<mount-path>/lib64 agregado a LD_LIBRARY_PATH.
La sección command ejecuta una secuencia de comandos de shell para quitar cualquier biblioteca de generador de perfiles existente. Luego, copia la nueva biblioteca de generador de perfiles en el directorio de complementos designado.
La secuencia de comandos garantiza que la versión correcta del complemento de generador de perfiles esté instalada y lista para usarse.
Compila desde el origen
Para compilar la biblioteca de CoMMA desde el origen, instala el siguiente software:
- Lenguaje de programación Rust, que requieren el compilador y Cargo (se puede instalar con rustup o paquetes del sistema)
Libclang-dev, que requierebindgenCMakeversión 3.10 o posterior
Para compilar desde el origen, completa los siguientes pasos:
Clona el repositorio y sus submódulos.
git clone --recurse-submodules https://github.com/google/CoMMA
Compila los objetos binarios con Cargo.
cargo build --release
Cargo guarda el objeto binario en
target/release/libnccl_profiler.so.Para habilitar NCCL para cargar las bibliotecas de CoMMA, usa uno de los siguientes métodos:
- Copia el archivo
libnccl_profiler.socompilado en un directorio de tuLD_LIBRARY_PATH. Cambia su nombre alibnccl-profiler.so(usa un guion en lugar de un guion bajo). - De forma alternativa, configura la variable de entorno
NCCL_PROFILER_PLUGINpara especificar la ruta de acceso del archivo.so.
- Copia el archivo
Verifica la instalación o la habilitación
Para verificar que NCCL cargue las bibliotecas de CoMMA, revisa los registros de NCCL:
- Habilita el registro de depuración de NCCL. Para habilitar el registro, configura la variable de entorno
NCCL_DEBUG=INFO. También puedes especificar un nivel de depuración más detallado. Para obtener más opciones de depuración, consulta laNCCL_DEBUGsección en la documentación de NVIDIA. - Especifica el subsistema
INITpara la depuración. Para especificarINIT, configura la variable de entornoNCCL_DEBUG_SUBSYS=INIT. También puedes especificar otros subsistemas. Para obtener más opciones de subsistema, consulta laNCCL_DEBUG_SUBSYSsección. - Busca una línea en el registro de NCCL que sea similar a la siguiente:
NCCL INFO PROFILER/Plugin: Plugin name set by env to PATH_TO_PROFILER_PLUGIN.
Inhabilita CoMMA
Si CoMMA ya está instalado, evita que recopile telemetría de NCCL configurando la variable de entorno NCCL_TELEMETRY_MODE=0 de CoMMA antes de ejecutar tus cargas de trabajo. Para configurar las variables de entorno de CoMMA, consulta Configura las variables de entorno.
Para volver a habilitar CoMMA después de inhabilitarlo, sigue estos pasos:
Configura la variable de entorno
NCCL_TELEMETRY_MODEen un valor distinto de cero; por ejemplo, para usar el modo predeterminado, especificaNCCL_TELEMETRY_MODE=3.Para revisar la lista completa de opciones, consulta
NCCL_TELEMETRY_MODEen la tabla Opciones de configuración.
Configura y visualiza la telemetría de NCCL de CoMMA
Si CoMMA está habilitado en tu entorno, puedes configurar el tipo de datos de telemetría que recopila estableciendo el nivel de detalle de los datos. En esta sección, se explica cómo establecer el nivel de detalle de los datos y las opciones disponibles.
También puedes revisar los datos que recopila CoMMA para verificar que se alineen con las políticas de seguridad de tu organización o para analizarlos con tus propias herramientas de análisis de telemetría de NCCL. Para ello, exporta los datos sin procesar a un archivo local.
Establece el nivel de detalle de los datos
CoMMA recopila telemetría de NCCL en diferentes niveles de detalle. Configura el nivel de detalle con variables de entorno. Para configurar las variables de entorno de CoMMA, consulta Configura las variables de entorno.
- Comportamiento predeterminado: De forma predeterminada, CoMMA realiza un seguimiento de las operaciones de NCCL,
incluidas las colectivas y las de par a par, los metadatos de esas
operaciones y los tiempos de finalización. Usa las siguientes variables de entorno:
NCCL_PROFILER_TRACK_NCCLOP=trueNCCL_PROFILER_AGGREGATE_STEPS=trueNCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP=true
- Para habilitar niveles más detallados de recopilación de datos, configura las siguientes variables de entorno:
- Para realizar un seguimiento del tiempo de finalización de las operaciones de proxy, configura
NCCL_PROFILER_TRACK_PROXYOP=true. - Para realizar un seguimiento del tiempo que se dedica a cada operación de E/S de red, configura
NCCL_PROFILER_TRACK_STEPS=true. Este parámetro de configuración proporciona el nivel más alto de detalle.
- Para realizar un seguimiento del tiempo de finalización de las operaciones de proxy, configura
Para revisar la lista completa de variables de entorno, consulta Opciones de configuración.
Exporta datos a un archivo local
Exporta los datos sin procesar a un archivo local para verlos. Para exportar los datos a un archivo local y ver el resultado, sigue estos pasos:
- Configura
NCCL_TELEMETRY_MODEcomo1o4. Para obtener información sobre la variable de entornoNCCL_TELEMETRY_MODE, consulta Opciones de configuración. Configura una de las siguientes rutas de exportación:
- Configura
NCCL_PROFILER_LATENCY_FILE=PATHpara exportar registros de eventos detallados a un archivo local. ReemplazaPATHpor una ruta de acceso como/tmp/latency-%p.txt. Configura
NCCL_PROFILER_SUMMARY_FILE=PATHpara exportar estadísticas de resumen agregadas. ReemplazaPATHpor una ruta de acceso como/tmp/summary-%p.txt.El sistema reemplaza
%ppor el ID del proceso.
- Configura
Revisa el resultado. El resultado sin procesar es un archivo JSON.
Opciones de configuración
En las siguientes secciones, se resumen todas las variables de entorno que puedes configurar para CoMMA. También se explica cómo configurar cualquier variable de entorno.
Configura las variables de entorno de CoMMA
Para configurar una variable de entorno de CoMMA en un valor no predeterminado, configura las variables de entorno. Puedes configurar variables de entorno en la línea de comandos para la instancia de procesamiento o agregarlas a una secuencia de comandos de inicio. Si configuras las variables de entorno en la línea de comandos, el valor solo persiste por sesión. Para que las variables de entorno sean permanentes, colócalas en el archivo ~/.bashrc, ~/.profile o en cualquier archivo de inicio que use tu sistema operativo. Para obtener más información, revisa la documentación de tu sistema operativo.
Debes configurar las variables de entorno de CoMMA antes de que se inicie tu carga de trabajo, ya que la carga de trabajo lee las variables durante la inicialización de NCCL. Puedes configurar las variables de entorno de la siguiente manera:
export ENVIRONMENT_VARIABLE=VALUE
Reemplaza lo siguiente:
ENVIRONMENT_VARIABLE: La variable de entorno que deseas configurar, por ejemplo,NCCL_TELEMETRY_MODE.VALUE: El valor de la variable de entorno, por ejemplo,0.
Variables de entorno de CoMMA
En esta sección, se enumeran las variables de entorno que puedes configurar para CoMMA y sus valores predeterminados.
| Nombre | Descripción | Predeterminado | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
NCCL_PROFILER_AGGREGATE_STEPS |
Habilita (true) o inhabilita (false)
la agregación de operaciones de fragmentos de red. |
true |
||||||||||
NCCL_PROFILER_GPUVIZ_LIB |
Especifica la ruta de acceso a libGPUViz.so, una biblioteca que sube
telemetría de NCCL a los Google Cloud servicios. Esta biblioteca encapsula la
API de comunicación del agente.
La API de comunicación del agente es la interfaz que usan los agentes, como los procesos
que se ejecutan en tu sistema operativo invitado, para iniciar conexiones seguras y
confiables con los Google Cloud servicios.
Si usas una imagen gIB de NCCL como instalador o usas cualquiera de las imágenes que agrupan el complemento gIB de NCCL, no necesitas configurar esta variable de entorno. |
|||||||||||
NCCL_PROFILER_LATENCY_FILE |
Especifica la plantilla de ruta de acceso para el archivo de registro de latencia. Por ejemplo,
/tmp/latency-%p.txt.
El sistema reemplaza %p en el nombre por el ID del proceso (pid).
Para inhabilitar la exportación basada en archivos, anula esta variable. |
|||||||||||
NCCL_PROFILER_PLUGIN |
Especifica la ruta de acceso al objeto binario del complemento de generador de perfiles. Si no especificas este parámetro de configuración, NCCL busca libnccl-profiler.so en
LD_LIBRARY_PATH. |
|||||||||||
NCCL_PROFILER_SUMMARY_FILE |
Especifica la ruta de acceso al archivo de resumen agregado. Por ejemplo,
/tmp/summary-%p.txt.
El sistema reemplaza %p en el nombre por el ID del proceso (pid).
Para inhabilitar la exportación basada en archivos, anula esta variable. |
|||||||||||
NCCL_PROFILER_SUMMARY_INTERVAL |
Especifica el intervalo para la generación de informes de resumen. Por ejemplo,
10s, 1m.
Admite d, h, m, s,
ms, us, ns. |
1m |
||||||||||
NCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP |
Habilita (true) o inhabilita (false)
la supervisión de las operaciones de proxy de NCCL entre procesos. |
true |
||||||||||
NCCL_PROFILER_TRACK_NCCLOP |
Habilita (true) o inhabilita (false)
el seguimiento y la generación de informes para las operaciones de NCCL,
incluidas las comunicaciones colectivas y de punto a punto. |
true |
||||||||||
NCCL_PROFILER_TRACK_PROXYOP |
Habilita (true) o inhabilita (false) el seguimiento y la generación de informes de las operaciones de proxy. |
false |
||||||||||
NCCL_PROFILER_TRACK_STEPS |
Habilita (true) o inhabilita (false)
el seguimiento y la generación de informes de las operaciones de fragmentos de red. |
false |
||||||||||
NCCL_TELEMETRY_MODE |
Controla la ubicación de exportación de los datos de telemetría de NCCL.
Las opciones incluyen lo siguiente:
|
3 |
¿Qué sigue?
- Obtén información para solucionar problemas con CoMMA.
- Obtén información para detectar y resolver rezagados.