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:
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:
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:
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
- Ejecuta el servidor de TensorBoard y ve a la pestaña Perfil.
- Ordena la tabla en la herramienta de estadísticas colectivas de DCN por Aggregated Total Stall de forma descendente.
- 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.
- 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.
- Genera un volcado de HLO para determinar si hay algún problema con el compilador. Es mejor distribuir las operaciones
send
yrecv-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. - 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 derecv-done
suelen bloquearse en la red para obtener los datos. - 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.