# Qwen3-235B-A22B · NVIDIA RTX 6000D · SGLang TP=8

在 pro6000D.1（8× NVIDIA RTX 6000D，每卡 ~84GB）上用 SGLang 以 **TP=8** 部署
`Qwen3-235B-A22B`，跑 **输入 2048 / 输出 2048 / 并发 16 / 160 请求** 基准，
与 `experiments/p800/qwen3_235b_p800_sglang_tp8`（昆仑 P800）做**跨机器对比**。

## 与 p800.2 实验的关系

工作负载完全相同（isl=osl=2048, c=16, n=160, seed=1, request-rate=10000），仅部署
按平台适配：

| 项 | p800.2 (Kunlun P800 XPU) | pro6000D.1 (NVIDIA RTX 6000D) |
|---|---|---|
| 镜像 | 昆仑 sglang 镜像 (pd-disagg-0510) | `sglang-sm120-dsv4:0.5.15.post1-fi0.6.14-sm120fix1` |
| 设备 | 8× XPU (`/dev/xpu*`, `--device`) | 8× GPU (`--gpus all`) |
| attention backend | `--attention-backend kunlun` | sglang 默认 (flashinfer) |
| dtype | float16 (+ XSGL_INTERTYPE_BFP16) | auto (bf16，NVIDIA 原生) |
| qwen3_moe 补丁 | 需要（镜像 bug） | **不需要**（标准 sglang） |
| XPU 环境变量 | XSGL_* 一堆 | 无 |
| TP / mem-fraction / ctx / max-running | 8 / 0.9 / 8192 / 16 | 8 / 0.9 / 8192 / 16（一致） |

> dtype 差异说明：p800.2 用 fp16（昆仑原生），本机用 bf16（NVIDIA 原生）。两者在
> 各自平台上是自然精度；fp16/bf16 计算吞吐基本相同，对比有效。

## 设计

- `start_server.sh`：`docker run --rm --gpus all` 起 sglang 容器，标准 qwen3_moe
  启动参数（无昆仑补丁/XPU env），nohup 后台 + 健康检查。挂载 `/data:/data` 使模型、
  结果目录、数据集在容器内外同路径。
- bench 客户端 `sglang.bench_serving` 通过 `docker exec` 跑在服务容器内。
- `parse_results.py` 复用自 dsv4_p800_sglang（与 p800.2 实验同一份）。

显存：235B bf16 ~470GB，TP=8 每卡 ~59GB；每卡 84GB，0.9 静态占比留 ~16GB/卡 给
KV+激活+cuda graph，2k+2k 上下文 KV 极小，充裕。

## 用法

```bash
cd /data/yy/sskj/experiments/pro6000/qwen3_235b_pro6000_sglang_tp8
bash run_bench.sh                      # 一键：起服务 + 基准 + 解析
# 或分步：
bash start_server.sh
SKIP_MANAGE_SERVER=1 bash run_bench.sh
```

结果在 `results/<run_id>/`：`report.md`、`results.json`、`raw_outputs/*.jsonl`、`logs/`。

## 输出指标

每个 scenario：Success/Failed、Req/s、Input/Output/Total tok/s、TTFT/TPOT/E2E
（mean/p50/p90/p99）。与 p800.2 的对比见对话或自行用两边 `results.json` 汇总。
