Herramienta de perfiles de memoria

Puedes usar el perfil de memoria para visualizar el uso de memoria a lo largo del tiempo de tus aceleradores.

Plataformas compatibles

TPU: Compatible

GPU: Compatible

Cómo usar la herramienta de generación de perfiles de memoria

El perfil de memoria tiene los siguientes componentes:

  • El selector de ID de memoria en la parte superior de la página te permite enfocarte en la memoria de gran ancho de banda (HBM) conectada a uno de los diferentes aceleradores que pueden estar conectados al host del que se genera el perfil o incluso a la memoria del host en algunos casos.
  • El "Gráfico de cronograma de memoria" y el "Resumen del perfil de memoria" capturan información de alto nivel sobre las asignaciones, desasignaciones y el uso de la memoria durante la sesión de generación de perfiles, incluidos los desgloses de la pila y el montón, y cualquier impacto de la fragmentación.
  • La tabla de desglose de la memoria proporciona información sobre las operaciones a nivel del framework que más contribuyen al uso de la memoria. También hay detalles adicionales por operación, como la forma, el tipo de datos, etcétera, si el compilador pone esta información a disposición de XProf. La tabla muestra estos detalles en el punto de uso máximo dentro de la ventana de generación de perfiles para ayudar a depurar situaciones de memoria insuficiente (OOM).
  • El asignador de tiempo de ejecución de XLA, que es propietario de todo el espacio de memoria de HBM, administra las asignaciones y desasignaciones (y las agrega al perfil).
  • Ten en cuenta que el perfil de memoria suele ser más interesante y valioso para la generación de perfiles de GPU que para las cargas de trabajo de TPU. Por lo general, el modelo de ejecución de TPU implica una gran asignación por adelantado del compilador XLA, en lugar de durante el entrenamiento o la inferencia del modelo. Por lo tanto, a menudo verás que el gráfico de asignaciones se parece a una línea horizontal plana. Es probable que todas las asignaciones se hayan producido al comienzo del perfil (si el generador de perfiles estaba activo en ese punto de la ejecución), lo que dificulta su visualización.
  • La métrica de fragmentación en el resumen del perfil de memoria y el gráfico de cronograma de memoria (como porcentaje) ayudan a identificar problemas de fragmentación de memoria. Un valor de fragmentación alto indica que, aunque podría haber suficiente memoria libre en total, no es contigua y, por lo tanto, es posible que falle una solicitud de asignación grande.

Estas son algunas diferencias clave entre esta herramienta y la herramienta Visor de memoria:

  • El visor de memoria es completamente estático y se enfoca en el orden del programa. El perfil de memoria proporciona una vista dinámica a lo largo del tiempo durante el intervalo de generación de perfiles.
  • El Visualizador de memoria visualiza las asignaciones de memoria por módulo XLA. Para las cargas de trabajo que consisten en varios módulos XLA, el perfil de memoria proporciona una vista global de la memoria.