Herramienta de visor de gráficos
Puedes usar el Visualizador de gráficos para visualizar la estructura del gráfico de tu programa de XLA. Muestra el gráfico de operaciones de alto nivel (HLO).
Plataformas compatibles
TPU: Compatible
GPU: Compatible
Componentes de la interfaz
El visor de gráficos se puede controlar con las siguientes opciones:
Un menú desplegable para seleccionar el módulo XLA, en el que eliges un módulo de HLO de la lista disponible para la visualización.
Un cuadro Op Name, en el que ingresas el nombre de una operación para seleccionarla como el nodo principal y visualizar sus vecinos. Si presionas Intro después de escribir el nombre de la operación, se visualizarán los nodos circundantes.
Un selector de ancho del gráfico, que controla la distancia máxima de los nodos desde el nodo principal que se incluye en la visualización.
Un selector de metadatos, que se usa para activar o desactivar la visualización de los metadatos de operación que incluye el compilador, si los hay. Ten en cuenta que debes volver a hacer clic en “Gráfico de búsqueda” después de seleccionar esta casilla de verificación.
Una casilla de verificación para combinar la fusión que puedes usar para contraer o expandir los componentes de las operaciones fusionadas. Ten en cuenta que deberás volver a hacer clic en "Gráfico de búsqueda" después de activar esta casilla de verificación.
Botones o teclas para acercar o alejar, aunque también puedes usar el mouse para acercar o alejar.
Vínculos para descargar el gráfico como archivos SVG o dot.
Con la funcionalidad de búsqueda, puedes ubicar y enfocarte rápidamente en operaciones específicas dentro del gráfico potencialmente grande.
Para inmovilizar el panel de datos del tiempo de ejecución en una operación en particular, haz clic con el botón derecho en la operación.
Usa el visor de gráficos
De forma predeterminada, no se selecciona ninguna operación en el visor de gráficos, por lo que verás una pantalla vacía. Busca la operación de interés para acercarla y comenzar a recorrer el gráfico. A menudo, comienzas con una de las otras herramientas (por ejemplo, OpProfile para identificar la operación que consume más tiempo o Trace Viewer para identificar la causa de una burbuja de canalización). Si haces clic en la operación en esas herramientas, obtendrás un vínculo directo a la misma operación en el visor de gráficos.
Si colocas el cursor sobre un cuadro (que representa una operación de HLO), a menudo puedes ver la línea de tu código de usuario que corresponde a la operación en la que se definió la función. Esta información solo está disponible si estos metadatos se proporcionan a XProf a través de las múltiples capas de transformación que atraviesa tu programa de Python para generar un acelerador ejecutable.
Ten en cuenta que el generador de perfiles recibe información a nivel de la HLO de un gráfico de "HLO optimizado", cerca del punto en el que el backend del compilador está listo para reducirlo al código específico del acelerador. Por lo tanto, Graph Viewer y, de hecho, todas las herramientas de XProf, controlan esta representación de HLO interna de XLA de bajo nivel, en lugar de StableHLO o una representación cercana al framework de ML.
Si bien el grafo en sí es puramente estático y se adquiere directamente desde XLA incluso sin ejecutar el programa, el visor de gráficos superpone información adicional del tiempo de ejecución en el grafo para que sea más útil. Por ejemplo, si colocas el cursor sobre una operación, aparecerá una sección en el lado izquierdo de la IU que indica cuántas veces se ejecutó esa operación durante la duración del perfil y cuál fue el tiempo de ejecución promedio. También calcula y muestra varios números de utilización y ancho de banda. Estos toman el análisis de costos estático de XLA para FLOPS y bytes consumidos, y calculan una tarifa en función del tiempo de ejecución medido.