Cómo generar perfiles de entornos de Multislice

Los entornos de Cloud TPU Multislice se componen de varias porciones de pod de TPU que se comunican a través de la red del centro de datos (DCN). Puedes usar la herramienta de estadísticas colectivas de la DCN para ver información sobre la eficacia con la que tu entorno de Multislice usa la red de la DCN. Específicamente, la herramienta de estadísticas colectivas de DCN te permite hacer lo siguiente:

  • Consulta y comprende el rendimiento de la red entre las porciones según los datos recopilados
  • Identifica cuellos de botella en el rendimiento
  • Optimiza el rendimiento de tu modelo

Todas las métricas de la herramienta de estadísticas colectivas de DCN se generan por TPU.

Terminología

La herramienta de estadísticas colectivas de DCN muestra métricas que describen la comunicación que se produce entre las porciones de TPU dentro de un entorno de Multislice. Cuando el entorno de ejecución de la TPU inicia la comunicación entre rebanadas, se usa una serie de operaciones:

send
Interrumpe el host para iniciar el acceso directo a la memoria (DMA) y le proporciona un búfer completo para iniciar la transferencia de datos.
send-done
Indica al host que se completó la transferencia de datos.
recv
Proporciona un búfer vacío para que el host lo complete con los datos transferidos.
recv-done
Indica al host que se recibieron los datos.

Se inicia un colectivo cuando se produce una operación send y se completa cuando se produce la operación recv-done coincidente.

Tiempo libre

Es una medida del tiempo que el colectivo puede enviar y recibir datos. Esto no incluye las operaciones send, send-done, recv ni recv-done. Por ejemplo, con el siguiente cronograma:

Chip de Pod v5e

En este ejemplo, el tiempo de espera se calcula de la siguiente manera:

Tiempo de espera = t1 + t2 + t3

Aumentar el tiempo de inactividad reduce las posibilidades de detener la TPU para un colectivo. Puedes aumentar el tiempo de inactividad si eliges otro método de fragmentación.

Duración de la detención

Es la duración promedio que el colectivo dedica a las operaciones de envío, envío completo, recepción y recepción completa. Ten en cuenta que esto no incluye el tiempo dedicado a transmitir datos. Por ejemplo, con el siguiente cronograma:

Chip de Pod v5e

En este ejemplo, la duración de la detención se calcula de la siguiente manera:

Duración de la detención = tenviar + tenviar-completo + trecibir + trecibir-completo

Duración observada

Es la cantidad de tiempo entre las operaciones send y recv-done, incluido el tiempo de envío y recepción de datos. Por ejemplo, con el siguiente cronograma:

Chip de Pod v5e

La duración observada se calcula de la siguiente manera:

Duración observada = tenviar + t1 + tenviar-completada + t2 + trecibir + t3 + trecibir-completada

Casos

Es la cantidad de veces que se inicia y completa un colectivo durante la duración de un perfil. Se inicia un colectivo cuando se produce una operación send y se completa cuando se produce la operación recv-end coincidente. La operación send y su operación recv-done coincidente deben ocurrir dentro de una duración del perfil para que se incluyan en esta métrica.

Parada total agregada

Es la cantidad total de tiempo que un colectivo detiene una TPU durante la duración de un perfil. La detención total de la agregación se calcula de la siguiente manera:

Detención total agregada = duración de la detención × ocasiones

Tamaño de los datos transmitidos

Es la cantidad de datos transmitidos por la red para el colectivo durante la duración del perfil.

Ancho de banda requerido

Es el ancho de banda necesario para transmitir datos dentro del margen proporcionado. Puedes usar esta métrica para ver la cantidad de colectivos que compiten por el ancho de banda de la red durante la duración del perfil. El ancho de banda requerido se calcula de la siguiente manera:

Ancho de banda requerido = tamaño de los datos transmitidos / tiempo de inactividad

Estado de la herramienta

En la siguiente tabla, se muestra la versión de TensorFlow o del entorno de ejecución de TPU necesaria para cada métrica que se muestra en la herramienta de estadísticas colectivas de DCN.

Estadísticas colectivas de la DCN Versión compatible de TensorFlow del entorno de ejecución de TPU
Tiempo libre TensorFlow 2.15.0, tensorboard 2.15.1 y tensorboard-plugin-profile 2.15.0
Duración de la detención TensorFlow 2.15.0, tensorboard 2.15.1 y tensorboard-plugin-profile 2.15.0
Duración observada TensorFlow 2.15.0, tensorboard 2.15.1 y tensorboard-plugin-profile 2.15.0
Casos TensorFlow 2.15.0, tensorboard 2.15.1 y tensorboard-plugin-profile 2.15.0
Detención total agregada tf-nightly, tb-nightly, tbp-nightly
Tamaño de los datos transmitidos tf-nightly, tb-nightly, tbp-nightly
Ancho de banda requerido tf-nightly, tb-nightly, tbp-nightly

Cómo analizar la herramienta de estadísticas colectivas de DCN

  1. Ejecuta el servidor de TensorBoard y ve a la pestaña Perfil.
  2. Ordena la tabla en la herramienta de estadísticas colectivas de DCN por Aggregated Total Stall de forma descendente.
  3. Identifica el nombre colectivo de DCN que tiene el valor más alto de Aggregated Total Stall. Si la duración de detención agregada de este colectivo es significativamente alta en comparación con otras, esto podría indicar que hay un cuello de botella en el colectivo de DCN.
  4. Multiplica el ancho de banda requerido del colectivo de DCN por la cantidad de núcleos. Hay 8 núcleos por host de TPU v4, por lo que la banda ancha requerida para un colectivo es 8 veces el valor que se muestra. Si el ancho de banda requerido es mayor que el ancho de banda máximo de red de la TPU, es posible que la red esté congestionada. Para reducir el ancho de banda requerido, intenta cambiar el mecanismo de fragmentación que usas. Para obtener más información sobre los mecanismos de fragmentación, consulta la descripción general de Multislice de Cloud TPU.
  5. Genera un volcado de HLO para determinar si hay algún problema con el compilador. Es mejor distribuir las operaciones send y recv-done para un colectivo para permitir la programación de más operaciones de HLO superpuestas. La superposición de más operaciones de HLO reduce el tiempo de detención de la TPU.
  6. Verifica la duración de las operaciones de recv-done en el Visor de seguimiento para el colectivo de DCN que tiene la detención total agregada máxima. Si la duración de la transferencia es alta, podría haber un cuello de botella de ancho de banda porque las operaciones de recv-done suelen bloquearse en la red para obtener los datos.
  7. Si la duración de las operaciones de recv-done no es demasiado alta en comparación con el tiempo de inactividad, esto podría indicar un problema de hardware.