KJNodes/memorygenerated

Commencer l'enregistrement de l'historique de la mémoire CUDA(StartRecordCUDAMemoryHistory)

Ce nœud appelle la fonction torch。

Start Record CUDA Memory History

input
input
COMBO
enabled
all
context
all
stacks
all
max_entries
100000
KJNodes

Le nœud Commencer l'enregistrement de l'historique de la mémoire CUDA initie le suivi et l'enregistrement de l'historique des allocations et désallocations de mémoire CUDA. Ce nœud s'exécute toujours, quel que soit son statut de contournement ou de muet. C'est un outil de diagnostic conçu pour aider les utilisateurs à obtenir des informations approfondies sur l'utilisation de la mémoire GPU lors de l'exécution du modèle, fournissant une base de données pour les analyses de performances ultérieures et la détection de fuites de mémoire. Ce nœud est généralement utilisé conjointement avec le nœud EndRecordCUDAMemoryHistory pour compléter un cycle d'enregistrement complet.

Fonctionnalités du nœud

Ce nœud implémente sa fonctionnalité principale en appelant l'interface torch.cuda.memory._record_memory_history de PyTorch. Les utilisateurs peuvent configurer la portée de l'enregistrement (enabled), le niveau de détail des informations de la pile d'appels (context et stacks) ainsi que le nombre maximum d'entrées à enregistrer (max_entries). Avant de commencer l'enregistrement, le nœud effectue une purge douce du cache et réinitialise les statistiques de mémoire de pointe pour garantir l'exactitude des données enregistrées.

Explication des paramètres du nœud - Commencer l'enregistrement de l'historique de la mémoire CUDA

Entrées de connexion (Inputs)

Nom du paramètreType de donnéesRequisValeur par défautPlage de valeurs/OptionsDescription
inputIOOui--Transmet les données d'entrée reçues telles quelles aux nœuds suivants, maintenant la connectivité du flux de travail.

Paramètres de contrôle (Parameters)

Nom du paramètreType de donnéesRequisValeur par défautPlage de valeurs/OptionsDescription
enabledCOMBOOuiall"all", "state", "None"Contrôle la portée de l'enregistrement de l'historique de la mémoire. Les valeurs possibles sont "all" (enregistrer tous les événements mémoire), "state" (enregistrer uniquement les informations sur la mémoire allouée) ou "None" (désactiver l'enregistrement).
contextCOMBOOuiall"all", "state", "alloc", "None"Contrôle les opérations mémoire pour lesquelles les piles d'appels sont enregistrées. Les valeurs possibles sont "all" (enregistrer pour toutes les opérations), "alloc" (enregistrer pour les appels d'allocation), "state" (enregistrer pour la mémoire allouée) ou "None" (ne pas enregistrer les piles d'appels).
stacksCOMBOOuipython"python", "all"Détermine le niveau de détail de l'enregistrement des informations de la pile d'appels. Les valeurs possibles sont "python" (enregistrer uniquement les frameworks Python/TorchScript/inductor) ou "all" (enregistrer également les frameworks C++).
max_entriesINTOui1000001000 - 10000000Nombre maximum d'entrées à enregistrer.

Sortie (Output)

Nom du paramètreType de donnéesDescription
inputANYTransmet les données d'entrée reçues telles quelles aux nœuds suivants, maintenant la connectivité du flux de travail.

Scénarios d'utilisation

Lorsque vous construisez un flux de travail complexe de génération d'images ou d'inférence de modèle, et que vous soupçonnez une fuite de mémoire ou souhaitez optimiser l'efficacité de l'utilisation de la mémoire, vous pouvez insérer ce nœud au début du flux de travail. Ensuite, utilisez le nœud EndRecordCUDAMemoryHistory à la fin du processus pour arrêter l'enregistrement et sauvegarder le fichier d'instantané. Enfin, utilisez un outil d'analyse (comme torch.cuda.memory._snapshot()) pour consulter l'historique détaillé des événements mémoire.

Notes importantes

Veuillez noter que ce nœud est une fonctionnalité expérimentale, et son API sous-jacente peut changer avec les mises à jour de PyTorch. L'activation d'un enregistrement détaillé (en particulier avec stacks défini sur "all") peut entraîner une certaine surcharge de performance à l'exécution et consommer de la mémoire supplémentaire pour stocker les informations enregistrées.

Lien vers le code source du nœud Commencer l'enregistrement de l'historique de la mémoire CUDA

Le nœud Commencer l'enregistrement de l'historique de la mémoire CUDA provient du pack de nœuds ComfyUI-KJNodes.

Commentaires

Connectez-vous avec GitHub pour rejoindre la discussion.

Chargement des commentaires…