Soulmate-Halo/heterogeneous-gpu-pd-lab

使用稠密算力卡对稀疏大显存主机进行加速,主机包括 AI Max+ 395、M3 512G、DGX Spark 等。

TL;DR

Soulmate‑Halo/heterogeneous‑gpu‑pd‑lab 是一个研究级代码库,展示了如何在不同的 GPU 类型之间拆分大规模混合专家 (MoE) LLM 推理。它提供了 Docker 镜像、部署指南以及以下设置的原始基准数据:

  • RTX 3080 + DGX Spark(在 Spark 上进行预填充,在两个 GPU 上联合解码)
  • RTX 3080 + AI Max 395(预填充加速,在 iGPU/CPU 上解码)
  • 六 GPU 流水线(两个 RTX 6000D 用于预填充,四个 DGX Spark 用于解码) 该仓库面向希望在异构 GPU 集群上进行实验,以加速 Qwen‑3.8‑Flash‑Next 和 DeepSeek‑V4.1‑Flash 等大规模 MoE 模型的预填充和解码的工程师。

项目是什么

方面 详情
目标 演示大型 MoE LLM 的实用异构 GPU 推理("PD" = 预填充‑解码拆分),并提供可复现的 Docker 镜像。
关键概念 • 混合专家 (MoE) – 热点专家在快速 GPU 上运行,冷点专家在更大内存的 GPU/CPU 上运行。
• 预填充‑解码 (PD) 拆分 – 长提示在专用"P 阶段"GPU 集群上编码,然后将上下文移交给"D 阶段"集群进行生成。
• PP2 流水线 – 两阶段流水线(预填充→解码),每个阶段内使用张量并行 (TP)(例如,RTX 6000D 上的 TP2,DGX Spark 上的 TP4)。
支持的硬件 RTX 3080、RTX 6000D、AI Max 395(iGPU + Zen5 CPU)、DGX Spark/GB10、NVIDIA H20(提及用于比较)。
使用的模型 Qwen‑3.8‑Flash‑Next(125 B MoE)和 DeepSeek‑V4.1‑Flash(因果编码器‑解码器)。
工件 • GitHub Container Registry 上的 Docker 镜像(例如,ghcr.io/soulmate-halo/heterogeneous-gpu-pd-lab/qwen38-flash-spark-3080:latest)。
• 包含逐步命令的部署 README 文件。
• 原始基准 JSON/CSV 文件和 12 分钟讲解视频。
基准 在六 GPU 设置上预填充吞吐量高达 16 k tok/s,解码高达 ~442 tok/s;将 RTX 3080 与 Spark 结合使用时,解码速度提升 2‑3 倍。所有数字均为未调优的原始测量值(无额外优化)。
许可证 / 状态 摘录中未明确说明,但仓库似乎处于活跃状态(发布日期为 2026 年 10 月)。

可能对谁有用

受众 重要性
ML 基础设施工程师 为异构集群提供即用型 Docker 镜像和清晰的部署脚本;在构建自定义 PD 流水线时可作为参考。
研究实验室 提供 MoE 模型在混合 GPU 硬件上的具体性能数据,有助于证明硬件采购的合理性。
GPU 供应商 / 系统集成商 展示了 GPU 之间基于 RDMA 的专家交接的实际用例,可指导驱动程序或互连优化。
学生 / 爱好者 12 分钟视频和逐步指南降低了多 GPU MoE 推理实验的门槛。

如何开始(快速入门概述)

  1. 选择部署包 – 例如,RTX 3080 + Spark 组合的 qwen38-flash-spark-3080/。
  2. 拉取 Docker 镜像:
    docker pull ghcr.io/soulmate-halo/heterogeneous-gpu-pd-lab/qwen38-flash-spark-3080:latest
    
  3. 准备主机 – 安装匹配的 CUDA 13 驱动程序,启用 RDMA,并放置模型权重(不随镜像提供)。README 列出了确切的驱动版本和环境变量。
  4. 运行容器 – README 提供了一行 docker run 命令,用于启动 API 路由器并启动 PD 服务。
  5. 测试 – 向暴露的端口发送 HTTP 请求;路由器会将预填充路由到 Spark,并将解码路由到 RTX 3080。
  6. 查看结果 – 容器会输出诊断信息,并且您可以下载 JSON 证据文件(v2-metrics.json、performance-v2.json)。

限制 / 注意事项(按描述)

  • 仅原始数据 – 仓库故意避免任何调优;实际部署可能需要额外优化。
  • 不支持跨主机 KV 导出/导入 – 路由器无法在不重启请求的情况下将请求从 Spark 预填充转移到 3080 解码。
  • 不包含模型权重 – 您必须自行获取 125 B Qwen 或 DeepSeek 权重(引用公开的 HuggingFace 链接)。
  • 硬件特定 – 流水线依赖于 RDMA、特定的 PCIe/NVLink 配置以及列出的确切 GPU 型号。
  • 基准可复现性 – 某些运行(例如 V2 解码)的日志缺失,因此精确复制可能需要联系作者。

结论

heterogeneous-gpu-pd-lab 是一个真正的、面向工程的开源项目,记录并提供了大规模 MoE LLM 异构 GPU 推理的可复现设置。对于那些希望超越单 GPU 部署性能极限的人,尤其是当长提示的预填充成为瓶颈时,它非常有价值。


所有陈述均直接取自提供的 README;未添加任何外部推测。

相关

  • 项目
  • 项目
  • 项目
  • 项目