lupine

让无GPU的电脑用上远程显卡,跑AI应用像本地一样

LUPINE 是一个 GPU over IP 桥接工具,允许将远程机器上的 GPU 通过 IP 网络挂载到仅配备 CPU 的本地机器上,实现 GPU 资源的远程共享与透明访问。它解决了 GPU 资源分布不均、利用率低下的问题,使开发者或研究人员无需在本地配备昂贵 GPU,即可在无 GPU 的机器上运行 CUDA 等 GPU 加速应用。核心能力包括:透明拦截 CUDA 运行时调用,通过自定义网络协议将 GPU 操作转发至远程节点;支持多 GPU 调度与动态分配;兼容主流 CUDA 版本,提供接近本地性能的远程执行体验。项目采用 C++ 实现,性能开销低,适用于云游戏、AI 推理、远程渲染等场景。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2432
维护状态 活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队lupinemachines
所属国家
官网地址https://lupine.sh
定价模式free
价格说明开源项目,Apache-2.0许可证,可自由使用和部署,无付费版本。
访问状态
是否开源
开源协议Apache-2.0
主要语言C++
技术栈/模型cublas,cuda,cudnn,gpu,mlops,networking,nvml,remote-access
GitHub 星标★ 2432
30天Star增速
HF 下载量
上线时间2024-08-28 00:00:00
最近更新2026-09-23 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

难度:入门 约 10 分钟 部署方式:Docker 8 步

环境要求

  • GPU 机器:已安装 NVIDIA 驱动,并支持 docker run --gpus all(需 nvidia-container-toolkit)
  • CPU-only 客户端机器:只需安装 Docker,无需本地 GPU
  • 服务端与客户端镜像标签需保持一致,格式为 cuda--ubuntu,示例固定为 cuda-13.3.
  • 两条机器之间网络可达,且服务端 14833 端口可被客户端访问
  • 如需在客户端跑 PyTorch,还需准备 Dockerfile.pytorch-lupine 并从源码构建镜像

安装与启动步骤

  1. 1GPU 机器启动服务端

    在带 GPU 的机器上运行服务端镜像,--gpus all 暴露全部 GPU,并把容器 14833 端口映射到宿主机。

    docker run --rm --gpus all -p 14833:14833 
      ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
  2. 2客户端连接验证

    在仅 CPU 的机器上运行客户端镜像,用 -e LUPINE_SERVER 指向服务端地址,执行 nvidia-smi 查看远程 GPU。

    docker run --rm -it 
      -e LUPINE_SERVER=192.168.1.10:14833 
      ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 
      nvidia-smi
  3. 3构建 PyTorch 镜像

    用仓库自带的 Dockerfile.pytorch-lupine 在客户端镜像基础上装 python3、pip 和 CUDA 13.2 版 torch。

    docker build -f Dockerfile.pytorch-lupine -t lupine-pytorch:cuda-13.3 .
  4. 4运行 PyTorch 测试

    在 CPU-only 机器上运行刚构建的镜像,脚本会执行 microgpt_train,成功时打印 PASS。

    docker run --rm 
      -e LUPINE_SERVER=192.168.1.10:14833 
      lupine-pytorch:cuda-13.3
  5. 5运行代码生成

    源码构建前先执行 codegen 脚本,确认输出中没有任何报错。

    ./codegen/run.sh
  6. 6CMake 编译源码

    编译出 libcuda.so.1、libcudart、libnvidia-ml.so.1、libamdhip64.so.1 等 shim 以及服务端可执行文件。

    cmake -S . -B build
    cmake --build build
  7. 7本地启动服务端

    本地开发时先启动自编译的服务端,成功后会打印监听 14833 端口,再发起客户端命令。

    ./local.sh server
  8. 8本地预加载运行客户端

    本地开发不走镜像时,需要在执行 CUDA 命令前预加载编译出的 libcuda.so.1 作为 shim。

关键配置

配置项必填说明示例
LUPINE_SERVER客户端指向的远程服务端地址与端口192.168.1.10:14833
LD_LIBRARY_PATH客户端镜像中已预设为 /opt/lupine/lib,使 CUDA/NVML 自动加载 LUPINE shim/opt/lupine/lib
LUPINE_CLIENT_BUNDLE_INPUT可再分发服务端构建时传入,指定已暂存的各平台原生客户端目录/your/staged/clients

如何确认成功

服务端成功时会打印 Server listening on port 14833...;客户端执行 nvidia-smi 能看到远程 GPU 型号;PyTorch 测试输出 microgpt_train: PASS。

常见问题

Q:必须两台机器吗?

A:是的。服务端跑在有 GPU 的机器上,客户端跑在只有 CPU 的机器上,客户端通过 LUPINE_SERVER 指向服务端即可透明使用远程 GPU。

Q:客户端容器为什么不用额外配 LD_LIBRARY_PATH?

A:官方客户端镜像里已设为 /opt/lupine/lib,CUDA 应用和 nvidia-smi 会自动加载 LUPINE 的 libcuda.so.1 与 libnvidia-ml.so.1 shim。本地源码运行时才需手动预加载。

Q:能用别的 CUDA 版本吗?

A:可以,其他已发布标签遵循 cuda--ubuntu 格式,服务端与客户端选用同一标签即可。

Q:为什么服务端要先启动?

A:README 明确说明必须先启动 Lupine 服务端,再发起客户端命令,否则客户端连接会失败。

注意事项

  • 服务端镜像必须用 --gpus all 启动,普通容器无法访问 GPU。
  • CUDA 运行时 shim 会把 cuda* 调用转发到驱动 shim 的连接上,因此两者必须来自同一次构建。
  • Docker 的 server 目标依赖生成的平台路由注册表,缺少客户端产物时无法构建服务端镜像。
  • 构建可再分发服务端时需通过 LUPINE_CLIENT_BUNDLE_INPUT 传入暂存的原生客户端目录。

核心亮点

  • 透明拦截CUDA调用,无需修改应用代码即可远程使用GPU
  • 支持多GPU动态分配,提升集群GPU利用率
  • 网络开销优化,远程执行性能接近本地

不足之处

  • 依赖CUDA生态,对非NVIDIA GPU支持有限
  • 网络延迟敏感,高延迟场景性能下降明显
  • 文档/社区待观察

适用场景

  • AI模型推理:在无GPU服务器上运行大模型推理服务
  • 云游戏与渲染:远程GPU渲染图形,本地瘦客户端显示
  • 开发测试:本地无GPU环境调试CUDA代码,远程执行

替代项目

rCUDA、vCUDA、NVIDIA vGPU

项目介绍

lupine 是基础设施领域的开源项目,由 lupinemachines 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(2,432)位列前 30%,在基础设施分类中处于中上游。

近 42 天,它的 GitHub 星标从 2,375 增加到 2,432,净增 57。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-23。Apache-2.0许可证,可自由使用和部署,无付费版本。

它主要面向的使用场景是:AI模型推理:在无GPU服务器上运行大模型推理服务。同类可对比的替代方案包括 rCUDA、vCUDA、NVIDIA vGPU。

上一篇:opencode-llm-proxy

下一篇:hongbomiao.com

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09