跨双云区域公网WAN:Qwen2.5-7B投机解码+CUDA Graphs达28 TPS
过去几个月我一直在构建 ShardFlow,一个分布式 LLM 推理框架,它将任意 HuggingFace transformer 拆分到 N 台 GPU 机器上,并使用神经投机解码来处理 WAN 延迟。
基准测试的环境:两个 T4 节点,分别位于不同的 GCP 区域(爱荷华州 + 俄勒冈州),通过俄亥俄州的 AWS EC2 TCP 中继通信。公网 RTT 约 86ms。
这里投机解码的关键洞察是:WAN 延迟不再是每 token 的成本,而是每轮(round)的成本。使用 K=8 草稿时,每次往返可以提交 4.07 个 token,而不是 1 个。在 86ms RTT 下,这是一个巨大的优势。
Qwen2.5-7B 的数据:
非投机基线:4.92 TPS
神经草稿器(eager 模式):峰值 14.3 TPS
+ 草稿器上应用 CUDA Graphs:峰值 28.10 TPS / 平均 20.31 TPS
还运行了 Qwen2.5-14B,使用 NF4 4-bit 量化,同样两个节点:平均 14.43 TPS。
v2.1 修复中最让我惊讶的是:草稿生成从 Python 循环中每轮启动了约 1500 个 CUDA 内核。每个内核 2-5 微秒,Python 启动开销 8-10 微秒。GPU 有 65% 的时间处于空闲状态。将完整的 0.5B 前向传播捕获为 CUDA Graph,并通过一次驱动调用进行重放,将草稿延迟从 112ms 降至 25ms。
其他技术栈内容:零拷贝 Rust TCP 中继、用于图兼容性的 StaticCache + 就地 KV 回退、元设备模型切片以避免将 15GB 加载到 CPU 内存中。
仓库:https://github.com/rautaditya2606/Shardflow
欢迎就投机解码实现或 CUDA Graphs 相关具体问题提问。