En esta guía, se describe cómo habilitar, inhabilitar y administrar la biblioteca de Collective Communication Analyzer (CoMMA). CoMMA recopila telemetría de NCCL para los servicios deGoogle Cloud . Para obtener más información sobre CoMMA, consulta Collective Communication Analyzer (CoMMA).
Habilita CoMMA
CoMMA está preinstalado y habilitado si usas imágenes que contienen el complemento de NCCL gIB. Para obtener una lista de estas imágenes, consulta Imágenes que tienen habilitado CoMMA.
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 (se recomienda para los 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 |
| Compilar desde la fuente (obligatorio para tipos de máquinas más antiguos) | A3 Mega, A3 High, A3 Edge, A2 Ultra, A2 Standard y N1 con GPU conectadas |
Instala CoMMA
Para instalar CoMMA, selecciona una de las siguientes opciones:
Imagen de gIB de NCCL
Para instalar CoMMA con la imagen de 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 los 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 los archivos binarios de CoMMA en el contenedor de tu carga de trabajo.
El contenedor almacena los archivos binarios en el directorio /artifacts.
Para usar la imagen del instalador de CoMMA, completa los siguientes pasos:
Para instalar CoMMA en tu carga de trabajo, agrega el siguiente fragmento a tu
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.
El mismo volumen de activación debe activarse en el contenedor de 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 del generador de perfiles existente. Luego, copia la nueva biblioteca del generador de perfiles en el directorio de complementos designado.
La secuencia de comandos garantiza que la versión correcta del complemento del generador de perfiles esté instalada y lista para usarse.
Compila desde el origen
Para compilar la biblioteca de CoMMA desde la fuente, instala el siguiente software:
- El lenguaje de programación Rust, que requieren el compilador y Cargo Se puede instalar con rustup o paquetes del sistema.
Libclang-dev, que requierebindgen- Versión 3.10 o posterior de
CMake
Para compilar desde la fuente, completa los siguientes pasos:
Clona el repositorio y sus submódulos.
git clone --recurse-submodules https://github.com/google/CoMMA
Compila los archivos binarios con Cargo.
cargo build --release
Cargo guarda el objeto binario en
target/release/libnccl_profiler.so.Habilita NCCL para cargar las bibliotecas de CoMMA con uno de los siguientes métodos:
- Copia el archivo
libnccl_profiler.socompilado en un directorio de tuLD_LIBRARY_PATH. Cámbiale el nombre alibnccl-profiler.so(usa un guion en lugar de un guion bajo). - De forma alternativa, puedes establecer la variable de entorno
NCCL_PROFILER_PLUGINpara especificar la ruta del archivo.so.
- Copia el archivo
Verifica la instalación o 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 la secciónNCCL_DEBUGen la documentación de NVIDIA. - Especifica el subsistema
INITpara la depuración. EspecificaINITconfigurando la variable de entornoNCCL_DEBUG_SUBSYS=INIT. También puedes especificar otros subsistemas. Para obtener más opciones de subsistemas, consulta la secciónNCCL_DEBUG_SUBSYS. - Busca una línea en el registro de NCCL 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 datos de 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 Cómo establecer variables de entorno.
Para volver a habilitar CoMMA después de inhabilitarlo, sigue estos pasos:
Establece 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 CoMMA NCCL
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 analizarlos con tus propias herramientas de análisis de telemetría de NCCL. Para ello, exporta los datos sin procesar a un archivo local.
Cómo establecer el nivel de detalle de los datos
CoMMA recopila datos de 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 Cómo establecer variables de entorno.
- Comportamiento predeterminado: De forma predeterminada, CoMMA hace un seguimiento de las operaciones de NCCL, incluidas las colectivas y las punto a punto, los metadatos de esas operaciones y los tiempos de finalización. Utiliza 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:
- Realiza un seguimiento del tiempo de finalización de las operaciones de proxy configurando
NCCL_PROFILER_TRACK_PROXYOP=true. - Establece
NCCL_PROFILER_TRACK_STEPS=truepara hacer un seguimiento del tiempo dedicado a cada operación de E/S de redes. Este parámetro de configuración proporciona el nivel de detalle más alto.
- Realiza un seguimiento del tiempo de finalización de las operaciones de proxy configurando
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:
- Establece
NCCL_TELEMETRY_MODEen1o4. Para obtener información sobre la variable de entornoNCCL_TELEMETRY_MODE, consulta Opciones de configuración. Establece una de las siguientes rutas de exportación:
- Establece
NCCL_PROFILER_LATENCY_FILE=PATHpara exportar registros de eventos detallados a un archivo local. ReemplazaPATHpor una ruta de acceso, como/tmp/latency-%p.txt. Establece
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.
- Establece
Revise 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 explican cómo configurar cualquier variable de entorno.
Configura las variables de entorno de CoMMA
Para establecer una variable de entorno de CoMMA en un valor no predeterminado, configura las variables de entorno. Puedes establecer 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 se conservará por sesión. Para que las variables de entorno sean permanentes, colócalas en el archivo ~/.bashrc, ~/.profile o cualquier otro 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 la carga de trabajo, ya que esta 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: Es la variable de entorno que deseas establecer, por ejemplo,NCCL_TELEMETRY_MODE.VALUE: Es 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 la telemetría de NCCL a los servicios de Google Cloud . Esta biblioteca une 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 dentro de tu sistema operativo invitado, para iniciar conexiones seguras y confiables con los servicios de Google Cloud .
Si usas una imagen de gIB de NCCL como instalador o cualquiera de las imágenes que incluyen el complemento de gIB de NCCL, no es necesario que establezcas 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 la configuración de esta variable. |
|||||||||||
NCCL_PROFILER_PLUGIN |
Especifica la ruta de acceso al objeto binario del complemento del 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 la configuración de esta variable. |
|||||||||||
NCCL_PROFILER_SUMMARY_INTERVAL |
Especifica el intervalo para los 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 del 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 punto a punto. |
true |
||||||||||
NCCL_PROFILER_TRACK_PROXYOP |
Habilita (true) o inhabilita (false) el seguimiento y la generación de informes de las operaciones del 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 las siguientes:
|
3 |
¿Qué sigue?
- Obtén más información para solucionar problemas relacionados con CoMMA.
- Obtén más información para detectar y resolver los problemas de rezagados.