Show HN: Rgpu – 一个张量驻留在远程 GPU 上的 PyTorch 设备
摘要
Rgpu 是一个开源工具,可通过 TCP 让 PyTorch 张量和现有 CUDA 程序在远程 NVIDIA GPU 上执行计算,客户端应用保持在本地运行,提供 PyTorch 设备接口和 CUDA shim 两条路径。
查看缓存全文
缓存时间: 2026/10/08 21:02
ymcrcat/rgpu
来源: https://github.com/ymcrcat/rgpu
rGPU
CI (https://github.com/ymcrcat/rgpu/actions/workflows/ci.yml)
rGPU 在远程 NVIDIA 机器上执行 GPU 工作负载,而应用程序保留在客户端。目前提供两种路径:
| 路径 | 适用场景 | 接口 |
|---|---|---|
| PyTorch device | 可以切换到 rgpu 设备的 PyTorch 程序 | 基于 TCP 的 torch 操作 |
| CUDA shim | 现有 Linux CUDA 程序,包括原版 CUDA PyTorch | libcuda、CUDA Runtime、cuBLAS、cuBLASLt 和 cuDNN 的 shim |
PyTorch device 是更简单的集成方式。CUDA shim 可以覆盖现有二进制程序,但兼容面更大。
文档
位于 website/ 的 Fumadocs 站点是产品文档:
工程记录和实验汇总在 docs/README.md 中。
快速开始:PyTorch device
使用 pip install rgpu 安装 rGPU,或者在本检出目录中执行 pip install -e ./python,然后按照快速开始部署服务器。将以下内容保存为工作负载目录下的 smoke.py:
``python import torch import rgpu
x = torch.ones(4, device=“rgpu”) print((x * 2).sum().item()) # 8.0 ``
在安装了 rGPU 的环境中运行,指定你的服务器 SSH 地址和选项:
``sh
rgpu-run –host user@gpu-host –ssh-port 2222 -i ~/.ssh/gpu_key
python smoke.py
程序负责选择设备;`rgpu-run` 负责打开隧道并配置连接。预期输出为 `8.0`。
对于现有 Linux CUDA 程序,请参阅 [CUDA shim 指南](website/content/docs/cuda-shim.mdx),从 `./scripts/build_client.sh` 开始。
这两种协议都不对连接进行身份验证或加密。请让 `rgpu-opserver` 保持默认的 localhost 绑定,并使用 SSH。CUDA 服务器监听所有 IPv4 接口:即使使用 SSH 隧道,也请在启动前通过主机/云防火墙规则限制 9713 端口。参见[部署](website/content/docs/operations.mdx)。
## 开发
``bash
# C++ 客户端和 fake-driver 测试
./scripts/build_client.sh
# Python 测试
python -m pip install -e './python[test]'
python -m pytest python/tests
# 静态文档
npm --prefix website ci
npm --prefix website run build
其余的构建、云端和硬件相关命令参见 scripts/README.md。生成的 C++ 代码已提交到仓库;其策略和重新生成步骤见 codegen/README.md。
仓库结构
| 路径 | 用途 |
|---|---|
client/ | CUDA 客户端 shim 和传输层 |
server/ | CUDA 服务器和调度分发 |
common/ | 共享协议和生成的 API 元数据 |
python/ | PyTorch device 和启动器 |
tests/ | C++、Python、CUDA 和硬件检查 |
codegen/ | CUDA 头文件解析器和源码生成器 |
website/ | Fumadocs 产品文档 |
docs/ | 设计记录、测量数据和实验报告 |
jax/ | 实验性的 JAX 工作;不是受支持的产品路径 |
scripts/ | 构建、部署、云端和测试辅助脚本 |
skills/ | 可安装的智能体指导,用于使用 rGPU |
历史实现笔记和实验结果汇总在 docs/README.md 中。
许可证
基于 Apache License 2.0 授权。
相似文章
TorchNeuron:在 AWS Trainium 上运行 HF 模型前所未有的简单
TorchNeuron 作为 PyTorch 的原生 Trainium 后端发布公测,Hugging Face 的 Transformers、Diffusers 等库可直接将其作为普通设备使用,显著提升了模型支持率并取代 Optimum Neuron 的复杂封装。
@gyro_ai: 在本地跑大模型给自己的工具用,装一堆 Python 依赖、配半天后端,光环境就劝退一批人 其实很多人只想要一个能立刻跑起来的本地接口 Shimmy 是 Rust 写的本地推理服务,编译成单个二进制文件,提供跟 OpenAI 完全一样的接口…
Shimmy is a lightweight single-binary local inference server that provides a drop-in OpenAI-compatible API for running GGUF models, supporting hot-swapping models and requiring no Python dependencies.
@seclink: 最近写好几个 自动化运维 Agent ,我也能用上 GPU卡了。 需要 GPU 时临时启动项目直接拉预装好环境的Docker ,不需要时直接下线,按秒计费。 下一步要调研的是,看看能不能快速拉GPU集群。 就像大厂的项目组 , GPU 就…
作者分享了使用自动化运维Agent和按需GPU Docker环境的经验,计划调研GPU集群的快速部署,以节省成本。
@PyTorch: TRANSIT(TRANsparent Scale-In for multi-node Training)是一种使统一虚拟内存对大规模训练实用的运行时
TRANSIT是一种运行时,使统一虚拟内存对大规模LLM训练实用,无需更改代码即可将GPU使用率降低高达50%,并将在PyTorch Conference North America上展示。
@leopardracer: https://x.com/leopardracer/status/2055341758523883631
一位用户分享了他们搭建双GPU本地AI实验室的经验,使用了RTX 4080 Super和5060 Ti,通过llama.cpp和llama-swap运行Qwen 3.6模型,以降低API成本并实现无限制的实验。