A fast, memory-efficient library and server for running and serving large language models with an OpenAI-compatible API.
lupinemachines/lupine
A GPU-over-IP bridge that lets CPU-only machines use CUDA GPUs installed on remote servers over the network.
Open-source alternative to:Juice Labs
Thunder Compute
- Stars
- 2,451
- Forks
- 140
- Open issues
- 39
- Last commit
- 5 days ago
What is it?
LUPINE forwards CUDA driver and NVML calls from a client machine to a server that holds the physical GPUs. Programs on the client run their own CUDA runtime and libraries unchanged, and only driver calls cross the network. The server runs in Docker on the GPU machine, and the client container exposes libcuda and NVML shims so commands like nvidia-smi report the remote devices.
Multiple servers can be listed in one LUPINE_SERVER value, and their GPUs appear as a single ordinal list on the client. Cross-server device-to-device copies are staged through the client. The server also exposes Prometheus metrics on its RPC port, and it supports HTTPS endpoints behind a TLS-terminating proxy. Connections use TCP keepalive and Zstd compression, and the server drains in-flight CUDA calls on SIGTERM.
The project is written in C++ and built with CMake. Linux, macOS and Windows client objects are embedded in the server executable. The author notes that device transfers are slower because they traverse the network, while model training and inference usually move little data to the host.
Key features
- 01Forwards CUDA driver and NVML calls so remote GPUs appear locally, including to nvidia-smi.
- 02Accepts multiple servers in one endpoint list and merges their GPUs into one device list.
- 03Exposes Prometheus metrics for GPU memory, utilization and per-client processes.
- 04Supports HTTPS endpoints behind a TLS-terminating proxy.
- 05Provides Docker images for CUDA and Ubuntu version combinations, with HIP support on the server.
Use cases
- Running GPU training or inference from a CPU-only development or CI machine against a remote GPU server.
- Sharing GPUs in a server rack with several client machines over the network.
- Monitoring remote GPU memory and utilization through Prometheus.
Quick start
- 1
Run the server on the GPU machine
docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 - 2
Run the client pointing at that server
docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
Things to know
- Requires Docker and a CUDA-capable GPU machine running the server.
- Client images are based on Ubuntu and the server image targets specific CUDA versions.
Topics
FAQ
- What is lupine?
- A GPU-over-IP bridge that lets CPU-only machines use CUDA GPUs installed on remote servers over the network. LUPINE forwards CUDA driver and NVML calls from a client machine to a server that holds the physical GPUs. Programs on the client run their own CUDA runtime and libraries unchanged, and only driver calls cross the network. The server runs in Docker on the GPU machine, and the client container exposes libcuda and NVML shims so commands like nvidia-smi report the remote devices.
- Is lupine free to use? What license does it have?
- lupine is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is lupine still maintained?
- Actively maintained. The last commit to lupine was on Oct 15, 2026.
- What can I use lupine for?
- Running GPU training or inference from a CPU-only development or CI machine against a remote GPU server. Sharing GPUs in a server rack with several client machines over the network. Monitoring remote GPU memory and utilization through Prometheus.
- How do I install lupine?
- Run the server on the GPU machine: docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 Run the client pointing at that server: docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
- Where can I get lupine?
- The source code and installation instructions are on GitHub: https://github.com/lupinemachines/lupine
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Official implementation of FlashAttention, a memory-efficient exact attention kernel for training and inference of Transformer models on GPUs.
An open-source system to run, manage, and scale AI workloads across Kubernetes, Slurm, and 20+ clouds or GPU providers with one interface.
A deep learning optimization library for making distributed training and inference of large models easier and more efficient.
Python library that runs large language models layer by layer so 70B-class models can infer on a single 4GB GPU, without quantization.
SGLang is an open-source inference framework for serving large language, vision-language, and diffusion models on many GPU, TPU, and CPU platforms.