Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

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

Ver códigoProblemas y ayudaRepositorio ↗
00

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.

CASOS DE USO
  • 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.
PUNTOS DESTACADOS
  • 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.
PRECAUCIONES
  • 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'.
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA8 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADhighnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

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.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
RustPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
9000
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

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.