Start Recording CUDAMemory History(StartRecordCUDAMemoryHistory)
Este nodo llama a la función torch。
Start Record CUDA Memory History
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ámetro | Tipo de Dato | Obligatorio | Valor por Defecto | Rango de Valores/Opciones | Descripción |
|---|---|---|---|---|---|
input | IO | Sí | - | - | 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ámetro | Tipo de Dato | Obligatorio | Valor por Defecto | Rango de Valores/Opciones | Descripción |
|---|---|---|---|---|---|
enabled | COMBO | Sí | all | "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). |
context | COMBO | Sí | all | "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). |
stacks | COMBO | Sí | python | "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_entries | INT | Sí | 100000 | 1000 - 10000000 | Número máximo de entradas a registrar. |
Salidas (Output)
| Nombre del Parámetro | Tipo de Dato | Descripción |
|---|---|---|
| input | ANY | Pasa 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.