gpu-arbiter
Daemon para GPU que prioriza videojuegos sobre cargas de IA (Ollama, vLLM). Detecta lanzamientos de juegos (Steam/Moonlight), evicta servicios configurados en la GPU y los restaura automáticamente al cerrar el juego. Soporta Linux y Windows con API HTTP para reportar disponibilidad a otros hosts.
Ficha actualizada 25 sept 2026, 4:18 · upstream 25 sept 2026, 3:45 · release v0.12.0
Qué es gpu-arbiter
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
gpu-arbiter es un daemon diseñado para máquinas que ejecutan simultáneamente videojuegos y cargas de trabajo de IA, gestionando automáticamente la prioridad de la GPU. Utiliza un patrón de reconciliación nivel-triggered (similar al controlador Kubernetes) para observar el estado del sistema, recomputar las reclamaciones de VRAM desde cero y ajustar los servicios gestionados (tenants). Al detectar el inicio de un juego, evicta los tenants configurados (como Ollama o vLLM), deteniéndolos cooperativamente o forzándolos con SIGKILL si es necesario. Cuando el juego termina, restaura los servicios para retomar la inferencia.
- Priorizar juegos locales en una máquina dedicada a inferencia de IA sin interrumpir manualmente los servicios.
- Automatizar la liberación de VRAM para modelos LLM tras finalizar una sesión de juego o streaming.
- Proporcionar un endpoint HTTP para que otros nodos decidan enrutar cargas de trabajo a esta máquina cuando está disponible.
- Gestionar múltiples servicios (Ollama, vLLM, ASR) con prioridades configurables mediante archivos TOML.
- Soportar juegos streameados (Moonlight/Sunshine) detectándolos como procesos locales para evicción automática.
- Patrón de reconciliación completa (no delta) que garantiza corrección tras eventos perdidos o reinicios del daemon.
- Detección de juegos en Linux vía cn_proc netlink con latencia sub-segundo y bajo consumo CPU en reposo.
- Atribución precisa de VRAM mediante cgroups en lugar de nombres de proceso, evitando falsos positivos con wrappers.
- Soporte nativo para Steam Launch AppId y detección automática de Moonlight/Sunshine sin configuración extra.
- API HTTP segura (socket Unix en Linux, TCP loopback en Windows) para monitoreo y control manual de unidades.
- Código estático precompilado disponible para Linux x86_64 sin dependencias de runtime ni compilación necesaria.
- Requiere privilegios elevados (root en Linux, Administrator en Windows) para acceder a la GPU y gestionar procesos.
- No soporta despliegue nativo en contenedores Docker ni Kubernetes sin configuración externa de supervisión.
- En Windows, la atribución de VRAM por proceso no es fiable (WDDM reporta [N/A]), dependiendo del estado del servicio para evicción.
- macOS es solo objetivo de compilación y pruebas; el daemon se niega a ejecutarse en producción debido a limitaciones del sistema operativo.
- La detección de presencia local (input devices) no funciona en Windows ni en macOS, lo que puede afectar alertas específicas de 'juego abandonado'.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Instalar el binario estático o compilar desde Rust 1.88+. Configurar systemd en Linux con el servicio proporcionado. En Windows, usar sc.exe o WinSW si no se usa supervisor por defecto. Verificar configuración con --check-config. Asegurar que la ruta de la GPU esté disponible (nvidia-smi o /sys/class/drm). No ejecutar sin privilegios elevados.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.