# 双卡 SGLang 多并发：TTFT < 1s

> 双卡 TP 跑多并发，90% 情况首 token 延迟 <1s，80K 上下文 80-100 t/s，比 llama.cpp 和 vLLM 都丝滑。核心是把 VLLM kernel port 到 SGLang 支持 gfx1100。

![双卡 TP 部署示意](/assets/articles/lcz/sglang-dual/hero.jpg)

> 双卡 TP（张量并行）跑多并发，90% 的情况下首 token 延迟低于 1 秒，80K 上下文之前生成速度稳定在 80-100 tok/s，比 llama.cpp 和 vLLM 都丝滑。

## 背景：多并发的痛点

单卡跑多并发，显存一挤，长上下文下 prefix cache 命中率不稳，经常要等 1-10 秒才吐字。VLLM 的 Paged attention 缓存效率高，但它按 ~1600 token 做前缀缓存，长上下文下不如 llama.cpp 的完全缓存命中。

SGLang 的 RadixAttention 是缓存树结构，对长上下文的命中率更友好——但问题是**官方对 AMD 的支持基本没有，比 VLLM 还烂**。

## 魔改思路

SGLang 和 VLLM 底层都用 PyTorch，那就把对应的 VLLM kernel 直接 port 过来。周末用 AI 辅助搞了两天，产出了一个支持 gfx1100（7900XTX）的 SGLang 分支。

唯一的遗憾：折腾两天也没能支持 fp8 KV cache，双卡 4 路并发下 bf16 缓存只能开到 192K 上下文。

## 实测数据

| 场景 | 速度 |
| --- | --- |
| 双路并发 | 平均 150-200 tok/s |
| 80K 上下文 | 80-100 tok/s 波动 |
| 首 token 延迟 | 90% 情况 < 1s |
| 数学题短上下文 | 比 VLLM 低约 30%（VLLM 130 tok/s） |

**关键观察**：SGLang 的超短上下文爆发力不如 VLLM，但在 agent 工作流里整体表现远远超过 VLLM——因为 agent 场景就是长上下文为主，正好吃到 RadixAttention 缓存树的红利。

## 适合谁

- 手里有两张同型号显卡，想跑多并发
- 用 DeepSeek Harness / Hermes 跑编程 agent，嫌单卡 TTFT 慢
- 能接受"自己编译一个魔改分支"折腾成本的人

## 一句话

如果你要的是"长上下文 + agent 场景 + 多并发"，魔改 SGLang 比 VLLM 和 llama.cpp 都更适合 AMD 双卡。


---
来源：https://laobanclaw.top/articles/sglang-dual-card-tp/（AI 军火库）
