项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2459
技术标签
使用教程
环境要求
- GPU 机器:已安装 NVIDIA 驱动,并支持 docker run --gpus all(需 nvidia-container-toolkit)
- CPU-only 客户端机器:只需安装 Docker,无需本地 GPU
- 服务端与客户端镜像标签需保持一致,格式为 cuda-<cuda-version>-ubuntu<ubuntu-version>,示例固定为 cuda-13.3.
- 两条机器之间网络可达,且服务端 14833 端口可被客户端访问
- 如需在客户端跑 PyTorch,还需准备 Dockerfile.pytorch-lupine 并从源码构建镜像
安装与启动步骤
-
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客户端连接验证
在仅 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构建 PyTorch 镜像
用仓库自带的 Dockerfile.pytorch-lupine 在客户端镜像基础上装 python3、pip 和 CUDA 13.2 版 torch。
docker build -f Dockerfile.pytorch-lupine -t lupine-pytorch:cuda-13.3 . -
4运行 PyTorch 测试
在 CPU-only 机器上运行刚构建的镜像,脚本会执行 microgpt_train,成功时打印 PASS。
docker run --rm \ -e LUPINE_SERVER=192.168.1.10:14833 \ lupine-pytorch:cuda-13.3 -
5运行代码生成
源码构建前先执行 codegen 脚本,确认输出中没有任何报错。
./codegen/run.sh -
6CMake 编译源码
编译出 libcuda.so.1、libcudart、libnvidia-ml.so.1、libamdhip64.so.1 等 shim 以及服务端可执行文件。
cmake -S . -B build cmake --build build -
7本地启动服务端
本地开发时先启动自编译的服务端,成功后会打印监听 14833 端口,再发起客户端命令。
./local.sh server -
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-<cuda-version>-ubuntu<ubuntu-version> 格式,服务端与客户端选用同一标签即可。
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
下一篇:hongbomiao.com
同类项目推荐
omegaml
开源
一站式搞定模型从训练到上线,省心省力
MLOps simplified. One-stop AI delivery platform, all the features you need.
ReadyLLM
开源
图形界面一键部署本地大模型,还能顺手跑图生视频
Deploy, monitor, and tune LLM through a visual interface — plus image / video gener···
tokscale
开源
终端里统一看 AI 编程 token 消耗,参与全球排行。
️ Track token usage across AI coding agents from your terminal. Global leaderboard···
OnnxStream
开源
让树莓派跑SDXL,低内存设备也能玩转大模型
Lightweight inference library for ONNX files, written in C++. It can run Stable Diff···
vibebin
开源
在自己的服务器上,用容器托管代码并直接运行。
vibebin: code and host inside Incus containers on your own VPS/server.
aisix-archived
开源
用 Rust 打造你的 AI 网关,统一管理多模型请求
An open source, Native AI Gateway and LLM proxy built in Rust
llmfit
开源
一条命令,测出你的硬件能跑哪些 AI 模型
Hundreds of models & providers. One command to find what runs on your hardware.
TensorRT-Model-Connect
开源
两条命令把 PyTorch 模型跑成 TensorRT 推理
From PyTorch model to end-to-end TensorRT inference experience in two commands—AI-n···
morphik-core
开源
一键摄取多模态数据,快速搭建企业级 RAG 检索应用
Open-source multimodal retrieval engine (Morphik Core)
