Outil de profil de mémoire
Vous pouvez utiliser le profil de mémoire pour visualiser l'utilisation de la mémoire au fil du temps de vos accélérateurs.
Plates-formes compatibles
TPU: compatible
GPU: compatible
Utiliser l'outil de profilage de la mémoire
Le profil de mémoire se compose des éléments suivants:
- Le sélecteur d'ID de mémoire en haut de la page vous permet de vous concentrer sur la mémoire à bande passante élevée (HBM) associée à l'un des différents accélérateurs pouvant être connectés à l'hôte en cours de profilage, ou même à la mémoire de l'hôte dans certains cas.
- Le graphique "Memory Timeline Graph" (Graphique de chronologie de la mémoire) et le récapitulatif "Memory Profile Summary" (Récapitulatif du profil de mémoire) capturent des informations générales sur les allocations, les désallocations et l'utilisation de la mémoire pendant la session de profilage, y compris les répartitions entre la pile et le tas, ainsi que tout impact de la fragmentation.
- Le tableau de répartition de la mémoire fournit des informations sur les opérations au niveau du framework qui contribuent le plus à l'utilisation de la mémoire. Il existe également des détails supplémentaires par opération, tels que la forme, le type de données, etc., si ces informations sont mises à la disposition de XProf par le compilateur. Le tableau présente ces détails au moment du pic d'utilisation dans la fenêtre de profilage, pour faciliter le débogage des situations de mémoire insuffisante (OOM, Out Of Memory).
- Les allocations et les désallocations sont gérées (et ajoutées au profil) par l'outil d'allocation d'exécution de XLA, qui est propriétaire de l'ensemble de l'espace mémoire HBM.
- Notez que le profil de mémoire est généralement plus intéressant et utile pour le profilage du GPU que pour les charges de travail TPU. Le modèle d'exécution du TPU implique généralement une allocation importante par le compilateur XLA, plutôt que pendant l'entraînement ou l'inférence du modèle. Par conséquent, vous verrez souvent que le graphique d'allocation ressemble à une ligne horizontale plate. Les allocations ont probablement toutes eu lieu au tout début du profil (si le profileur était actif à ce stade de l'exécution), ce qui les rend difficiles à voir.
- La métrique de fragmentation dans le résumé du profil de mémoire et le graphique de la chronologie de la mémoire (sous forme de pourcentage) permettent d'identifier les problèmes de fragmentation de la mémoire. Une valeur de fragmentation élevée indique que, même si la mémoire libre totale peut être suffisante, elle n'est pas contiguë. Par conséquent, une requête d'allocation importante peut échouer.
Voici quelques différences clés entre cet outil et l'outil Memory Viewer:
- Le lecteur de mémoire est purement statique et se concentre sur l'ordre du programme. Le profil de mémoire fournit une vue dynamique au fil du temps pendant l'intervalle de profilage.
- Le lecteur de mémoire visualise les allocations de mémoire par module XLA. Pour les charges de travail composées de plusieurs modules XLA, le profil de mémoire fournit une vue globale de la mémoire.