Files
heyburns-PortraitUtils/docs/GpuSyncCacheClear.md
T
2025-10-16 20:30:20 -05:00

1.8 KiB
Raw Blame History

GpuSyncCacheClear

GpuSyncCacheClear forces a quick CUDA sync and clears selected GPU caches. It’s a maintenance node that helps recover VRAM between heavy steps so long pipelines stay stable.


Inputs

  • sync_cuda – When enabled, calls torch.cuda.synchronize() to finish outstanding GPU work before clearing memory.
  • empty_cache – Clears PyTorch’s allocator cache so unused memory is released back to the driver.
  • collect_garbage – Runs Python’s garbage collector to free objects that might still hold GPU references.
  • delay_ms – Optional pause (in milliseconds) after the cleanup. Useful when the next node needs a short breather.

Outputs

  • log – Text summary of actions taken and how long each step required.

Where It Fits

Insert this node between VRAM-heavy stages—e.g., after a large upscaler, before a memory-intensive diffusion pass, or while alternating between different models on a shared GPU.


Tuning Tips

  • Leave sync_cuda on when running asynchronous operations; it ensures everything finishes before cleaning.
  • Use the delay only when you know a downstream node immediately restarts another heavy task.
  • Pair with status logging (e.g., ComfyUI console or a text overlay) so you can confirm the cleanup is happening during long renders.

Troubleshooting

  • No VRAM freed – Some drivers hold onto memory until the next allocation; keep empty_cache and collect_garbage enabled for the best chance of recovery.
  • Pipeline slows down – Reduce how often you call the node or disable the delay; each cleanup adds a small pause.
  • Unexpected errors – Make sure the GPU is still initialised when the node runs; this helper assumes CUDA is available.

Screenshot: docs/screenshots/gpu_sync_cache_clear.png