Biblioteca y servidor rápidos y eficientes en memoria para ejecutar y servir modelos de lenguaje grandes mediante una API compatible con OpenAI.
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 Labs
Thunder 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
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
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
Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU.
Sistema de código abierto para ejecutar, gestionar y escalar cargas de trabajo de IA en Kubernetes, Slurm y más de 20 nubes o proveedores de GPU desde una sola interfaz.
Una biblioteca de optimización de deep learning que facilita y hace más eficiente el entrenamiento distribuido y la inferencia de modelos grandes.
Biblioteca de Python que ejecuta modelos de lenguaje grandes capa por capa para que los modelos de 70B puedan inferir en una sola GPU de 4 GB, sin cuantización.
SGLang es un framework de inferencia de código abierto para servir modelos de lenguaje, visión y difusión en diversas plataformas GPU, TPU y CPU.