KJNodes/memorygenerated

Start Recording CUDAMemory History(StartRecordCUDAMemoryHistory)

Este nodo llama a la función torch。

Start Record CUDA Memory History

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

El nodo Start Recording CUDAMemory History inicia el seguimiento y registro del historial de asignaciones y liberaciones de memoria CUDA. Este nodo siempre se ejecuta, independientemente del estado de Omitir o Silenciar. Es una herramienta de diagnóstico diseñada para ayudar a los usuarios a comprender en profundidad el uso de memoria GPU durante la ejecución del modelo, proporcionando una base de datos para posteriores análisis de rendimiento e investigación de fugas de memoria. Este nodo se suele utilizar junto con el nodo EndRecordCUDAMemoryHistory para completar un ciclo completo de registro.

Funcionalidad del Nodo

Este nodo implementa su funcionalidad principal llamando a la interfaz torch.cuda.memory._record_memory_history de PyTorch. Los usuarios pueden configurar el alcance del registro (enabled), el nivel de detalle de la información de la pila de llamadas (context y stacks) y el número máximo de entradas a registrar (max_entries). Antes de comenzar el registro, el nodo realiza una limpieza suave de la caché y restablece las estadísticas de memoria máxima para garantizar la precisión de los datos registrados.

Explicación de Parámetros del Nodo - Start Recording CUDAMemory History

Entradas (Inputs)

Nombre del ParámetroTipo de DatoObligatorioValor por DefectoRango de Valores/OpcionesDescripción
inputIO--Pasa los datos de entrada recibidos tal cual a los nodos posteriores, manteniendo la conectividad del flujo de trabajo.

Parámetros de Control (Parameters)

Nombre del ParámetroTipo de DatoObligatorioValor por DefectoRango de Valores/OpcionesDescripción
enabledCOMBOall"all", "state", "None"Define el alcance del registro. Los valores posibles son "all" (registrar toda la actividad de memoria), "state" (registrar solo información de memoria ya asignada) o "None" (deshabilitar el registro).
contextCOMBOall"all", "state", "alloc", "None"Controla qué eventos de memoria se asocian con la pila de llamadas. Opciones: "all" (para todos los eventos), "alloc" (para llamadas de asignación), "state" (para memoria asignada) o "None" (no registrar pila de llamadas).
stacksCOMBOpython"python", "all"Determina el nivel de detalle de la información de la pila de llamadas registrada. Los valores posibles son "python" (registrar solo marcos Python/TorchScript/inductor) o "all" (registrar también marcos C++).
max_entriesINT1000001000 - 10000000Número máximo de entradas a registrar.

Salidas (Output)

Nombre del ParámetroTipo de DatoDescripción
inputANYPasa los datos de entrada recibidos tal cual a los nodos posteriores, manteniendo la conectividad del flujo de trabajo.

Casos de Uso

Cuando estás construyendo un flujo de trabajo complejo de generación de imágenes o inferencia de modelos, y sospechas que existe una fuga de memoria o deseas optimizar la eficiencia del uso de memoria, puedes insertar este nodo al inicio del flujo de trabajo. Luego, utiliza el nodo EndRecordCUDAMemoryHistory al final del proceso para finalizar el registro y guardar el archivo de instantánea. Finalmente, puedes utilizar herramientas de análisis (como torch.cuda.memory._snapshot()) para revisar el historial detallado de eventos de memoria.

Consideraciones

Ten en cuenta que este nodo es una característica experimental, y su API subyacente puede cambiar con las actualizaciones de PyTorch. Habilitar un historial detallado (especialmente con stacks configurado en "all") puede generar cierta sobrecarga en el rendimiento en tiempo de ejecución y consumir memoria adicional para almacenar la información registrada.

Enlace al Código Fuente del Nodo Start Recording CUDAMemory History

El nodo Start Recording CUDAMemory History proviene del paquete de nodos ComfyUI-KJNodes.

Comentarios

Inicia sesión con GitHub para unirte a la conversación.

Cargando comentarios…