Repolode
lupinemachines

lupinemachines/lupine

Un puente GPU-over-IP que permite a equipos sin GPU usar por red las GPU CUDA instaladas en servidores remotos.

Alternativa open source a:Juice LabsThunder Compute

Estrellas
2,451
Forks
140
Issues abiertos
39
Último commit
hace 5 días

¿Qué es?

LUPINE reenvía llamadas a CUDA driver y NVML desde un equipo cliente a un servidor que tiene las GPU físicas. Los programas del cliente ejecutan su propio runtime y sus propias bibliotecas de CUDA sin modificaciones; solo las llamadas al driver atraviesan la red. El servidor se ejecuta en Docker en el equipo con GPU, y el contenedor cliente expone shims de libcuda y NVML para que comandos como nvidia-smi muestren los dispositivos remotos.

Se pueden enumerar varios servidores en un único valor de LUPINE_SERVER, y sus GPU aparecen como una sola lista de ordinales en el cliente. Las copias de dispositivo a dispositivo entre servidores se realizan pasando por el cliente. El servidor también expone métricas de Prometheus en su puerto RPC y admite endpoints HTTPS detrás de un proxy que termina TLS. Las conexiones usan TCP keepalive y compresión Zstd, y el servidor termina las llamadas CUDA en curso al recibir SIGTERM.

El proyecto está escrito en C++ y se compila con CMake. Los objetos cliente para Linux, macOS y Windows están integrados en el ejecutable del servidor. El autor señala que las transferencias entre dispositivos son más lentas porque pasan por la red, mientras que el entrenamiento y la inferencia de modelos suelen mover pocos datos al host.

Funciones clave

  • 01Reenvía llamadas a CUDA driver y NVML para que las GPU remotas aparezcan localmente, también en nvidia-smi.
  • 02Acepta varios servidores en una lista de endpoints y combina sus GPU en una sola lista de dispositivos.
  • 03Expone métricas de Prometheus sobre la memoria y la utilización de las GPU, así como los procesos de cada cliente.
  • 04Admite endpoints HTTPS detrás de un proxy que termina TLS.
  • 05Ofrece imágenes de Docker para distintas combinaciones de versiones de CUDA y Ubuntu, con compatibilidad con HIP en el servidor.

Casos de uso

  • Ejecutar entrenamiento o inferencia con GPU desde un equipo de desarrollo o CI sin GPU y usar un servidor remoto con GPU.
  • Compartir GPU en un rack de servidores con varios equipos cliente conectados por red.
  • Supervisar la memoria y la utilización de las GPU remotas mediante Prometheus.

Inicio rápido

  1. 1

    Ejecuta el servidor en la máquina con GPU

    docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
  2. 2

    Ejecuta el cliente apuntando a ese servidor

    docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi

Antes de usarlo

  • Se requiere Docker y una máquina con GPU compatible con CUDA para ejecutar el servidor.
  • Las imágenes del cliente están basadas en Ubuntu y la imagen del servidor está dirigida a versiones específicas de CUDA.

Temas

Preguntas frecuentes

¿Qué es lupine?
Un puente GPU-over-IP que permite a equipos sin GPU usar por red las GPU CUDA instaladas en servidores remotos. LUPINE reenvía llamadas a CUDA driver y NVML desde un equipo cliente a un servidor que tiene las GPU físicas. Los programas del cliente ejecutan su propio runtime y sus propias bibliotecas de CUDA sin modificaciones; solo las llamadas al driver atraviesan la red. El servidor se ejecuta en Docker en el equipo con GPU, y el contenedor cliente expone shims de libcuda y NVML para que comandos como nvidia-smi muestren los dispositivos remotos.
¿lupine es gratuito? ¿Qué licencia tiene?
lupine es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿lupine sigue mantenido?
Mantenimiento activo. El último commit de lupine fue el 15 oct 2026.
¿Para qué puedo usar lupine?
Ejecutar entrenamiento o inferencia con GPU desde un equipo de desarrollo o CI sin GPU y usar un servidor remoto con GPU. Compartir GPU en un rack de servidores con varios equipos cliente conectados por red. Supervisar la memoria y la utilización de las GPU remotas mediante Prometheus.
¿Cómo se instala lupine?
Ejecuta el servidor en la máquina con GPU: docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 Ejecuta el cliente apuntando a ese servidor: docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
¿Dónde consigo lupine?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lupinemachines/lupine

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados