Repolode
lupinemachines

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 LabsThunder 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. 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. 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