SKILL.md
cuda_streams
CUDA Streams permiten ejecutar múltiples operaciones GPU en paralelo (inferencia de modelos distintos, copia de datos y cómputo simultáneo), maximizando la utilización del hardware GPU.
When to use
Usar en el workerpoolagent para ejecutar inferencias de múltiples modelos en paralelo en la misma GPU: face_match + liveness + deepfake detection simultáneamente.
Instructions
- Crear streams por modelo:
``python streamliveness = torch.cuda.Stream() streamfacematch = torch.cuda.Stream() ``
- Ejecutar inferencias en paralelo:
``python with torch.cuda.stream(streamliveness): livenessresult = livenessmodel(frame) with torch.cuda.stream(streamfacematch): facematchresult = facematchmodel(face_crop) ``
- Sincronizar streams:
torch.cuda.synchronize(). - Usar
torch.cuda.Eventpara timing preciso de cada modelo. - Monitorizar VRAM:
torch.cuda.memory_allocated(). - Limitar número de streams activos según VRAM disponible.
Notes
- Los streams solo paralelizzan si hay recursos GPU suficientes; en GPU pequeñas pueden serializar.
- No usar más de 4-8 streams simultáneos; más allá el overhead supera el beneficio.
- Triton Inference Server gestiona streams automáticamente; preferir Triton si está disponible.