GPUWorks 0.1 发布——面向 vLLM 和 SGLang 的超轻量 GPU 集群管理器
TL;DR
GPUWorks 提供一个 40 MB 的二进制文件,可在公有云、私有云和 Mac 上创建单个 GPU 集群,支持 NVIDIA、AMD、华为昇腾、T-Head PPU、海光和 Apple Silicon,并提供与 OpenAI 兼容的 API,用于通过 vLLM、SGLang 及其他引擎提供 LLM 服务。
一键部署经过验证的模型-加速器组合
GPUWorks 附带一个包含 392 个模型(例如 Qwen、DeepSeek、Llama、Gemma、Whisper)的 1,235 个启动规范 的目录。每个规范都固定了具体的 Hugging Face 或 ModelScope 修订版本,并包含给定加速器所需的精确标志。在 UI 中选择一个模型会自动显示内存估算、所选 GPU 以及拒绝其他节点的原因,然后一键部署模型。
“内置目录包含 392 个模型的 1,235 个启动规范……你只需选择模型并点击部署,而无需查找标志。” – GPUWorks README
单一调度器中的异构硬件
调度器将 NVIDIA、AMD Instinct、华为昇腾、T-Head PPU、海光 DCU 和 Apple Silicon 视为一等公民。节点通过供应商 CLI(nvidia-smi、npu-smi 等)报告其能力,调度器将每个部署匹配到满足启动规范的节点。这消除了为每个供应商单独维护集群的需要。
公有和私有资源的统一池
GPUWorks 可以接入来自 RunPod、CompShare、AutoDL、Vast.ai、阿里云 的实例,以及来自 ZStack Cloud 的虚拟机。安装轻量级代理(curl … | sh)后,节点通过 WebSocket 向外连接到服务器,因此无需入站防火墙规则。单个服务器可以同时在租用的云 GPU 和本地服务器上调度工作负载。
超轻量架构
- 服务器和代理是静态 Go 二进制文件(无 CGO,总计 < 40 MB)。服务器嵌入 Web UI,并将所有状态存储在单个 SQLite 文件中。
- 代理的出站 WebSocket 连接 消除了端口转发或 VPN 的需求。
- 在阿里云上的基准测试中,单个服务器管理了 跨 7 个区域的 1,003 台 GPU 机器,在 4 分钟内放置了 500 多个副本,并处理了 2,000 个并发请求,同时仅使用 9 个 CPU 核心和 1.6 GB 内存。
内存感知放置和 GPU 共享
在启动之前,GPUWorks 会估算模型权重、KV 缓存和引擎开销所需的内存。然后强制执行 硬性内存配额(MiB 粒度),以便多个模型可以共享单个 GPU(例如,NVIDIA 通过 HAMi-core,昇腾通过 vCANN)。睡眠/唤醒 功能允许模型在同一张卡上轮流使用,已在 NVIDIA、昇腾、PPU 和海光上验证。
扩展和高级推理功能
- 跨节点副本扩展、多节点张量/流水线并行,以及预填充/解码分离(例如,NVIDIA 上的 vLLM + NIXL,昇腾上的 vLLM-Ascend + Mooncake)。
- 与 OpenAI 兼容的网关,暴露
/v1/chat/completions、/v1/embeddings等端点,支持路由策略(最少请求、前缀亲和、故障转移)、API 密钥配额和按密钥令牌核算。 - 可观测性:实时 GPU/引擎指标、可搜索日志、按请求的 OTLP 跟踪、Web 终端访问,以及内置的并发扫描基准测试。
- AI 助手和 MCP:向 UI 询问有关集群的问题,或将 Claude Code(或任何 MCP 客户端)连接到只读 MCP 端点以进行编程式检查。
隔离和离线就绪
GPUWorks 支持从本地归档或 HTTP 文件服务器导入容器镜像和模型文件,并在没有互联网访问的情况下在节点之间同步模型。使用报告可以在设置中或通过 server.yaml 中的 usage_report: false 禁用。
快速入门指南(Linux/macOS)
- 安装服务器
该脚本验证校验和,在端口 8800 上安装 systemd 服务,并打印管理员密码。bash <(curl -fsSL https://dl.gpuworks.ai/get.sh) - 添加 GPU 节点
在目标主机上运行生成的命令,例如:
curl -fsSL http://<server>:8800/install.sh | sh -s -- --server http://<server>:8800 --token <node-token> - 部署模型
在 UI 中,选择
Qwen/Qwen3-1.7B,查看内存估算,然后点击部署。创建 API 令牌并调用模型:curl http://<server>:8800/v1/chat/completions \ -H "Authorization: Bearer gw-…" -H "Content-Type: application/json" \ -d '{"model": "qwen3-1.7b", "messages": [{"role": "user", "content": "Hello!"}]}'
支持的加速器和功能
| 加速器 | 整 GPU 部署 | dGPU(共享) | 睡眠/唤醒 | 多节点 | PD 分离 |
|---|---|---|---|---|---|
| NVIDIA (CUDA) | ✅ Docker、containerd、runveil | ✅ MiB 粒度配额 | ✅ vLLM | ✅ | ✅ vLLM + NIXL |
| AMD (ROCm) | ✅ Docker、containerd、runveil | ✅ 用户空间配额 | ✅ vLLM | ✅ vLLM | ✅ vLLM + NIXL |
| 华为昇腾 (CANN) | ✅ Docker、containerd、runveil | ✅ MiB 粒度配额 | ✅ vLLM-Ascend | ✅ | ✅ vLLM-Ascend + Mooncake |
| T-Head PPU (HGGC) | ✅ Docker、containerd、runveil | ✅ MiB 粒度配额 | ✅ vLLM | ✅ | ✅ SGLang + Mooncake |
| 海光 DCU (DTK) | ✅ Docker、containerd、runveil | ✅ MiB 粒度配额 | ✅ vLLM | ✅ | 🧪 vLLM + Mooncake |
| Apple Silicon (M1-M5) | ✅ vllm-metal、MLX、llama.cpp | — | — | — | — |
✅ = 已在真实硬件上验证,🧪 = 实验性。
Hacker News 上的社区反应
- 正面评价 – 一位评论者强调了其对 Mac 用户的吸引力:“这个工具听起来很适合在 Mac 上运行本地 LLM,而无需 Kubernetes 的开销。仅用一个轻量级 40 MB 二进制文件就能管理集群,令人印象深刻。”
- 澄清问题 – 用户询问公有云和私有云如何统一,以及该平台带来哪些社会优势,这表明了兴趣,但也需要更多解释性材料。
何时考虑使用 GPUWorks
- 你需要一个 统一的 OpenAI 兼容端点 来服务运行在不同硬件上的模型。
- 你更喜欢 无 Kubernetes,并希望使用纯二进制控制平面。
- 你的工作负载包括 推理和偶尔的微调/训练,且在同一 GPU 上进行。
- 你在 隔离环境 中运行,或希望从私有归档导入模型。
局限性和未解决问题
- 该平台目前处于 beta 级别;某些功能(例如,海光 Mooncake 集成)被标记为实验性。
- 高级多节点编排依赖于 Docker/nerdctl 或内置的无根运行时;没有容器运行时的用户必须使用主机进程(macOS)。
- 社区文档很丰富,但新手可能需要针对混合供应商集群的分步教程。
GPUWorks 证明了功能齐全的 GPU MaaS 平台可以在单个 40 MB 二进制文件中交付,消除了 Kubernetes 的运维开销,同时支持广泛的加速器和云提供商。其与 OpenAI 兼容的网关和丰富的可观测性使其成为希望在异构硬件上大规模提供 LLM 服务的团队的一个有吸引力的选择。