[Docs] finalize Phase 2 hardware attribution
This commit is contained in:
parent
5096661ce3
commit
1dc5612e3a
@ -1,5 +1,13 @@
|
|||||||
# sskj — 多平台大模型推理性能基准测试项目
|
# sskj — 多平台大模型推理性能基准测试项目
|
||||||
|
|
||||||
|
> **更新(2026-07-31 17:22:20 CST)**
|
||||||
|
>
|
||||||
|
> 完成 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 2 正式收口。最终 Run `dsv4pro-phase2-20260731-163620` 在 28 分 44 秒内完成 8/8 benchmark、8/8 精确测量窗口和 18/18 采集器启停;混合 Prefill 令 Decode Output TPS 下降 23.96%、TPOT P95 增加 66.75%。GPU/CPU/NUMA、双 Rail RDMA、PCIe P2P、8/16-GPU AllReduce 与 `NCCL_CROSS_NIC=0/1/2` 数据均已归档;证据排除原始 Rail 带宽饱和、整机 CPU 饱和、GPU 降频和 CROSS_NIC 选择作为首要原因。实验结束后两节点容器、端口和 16 张 GPU 均已清理。
|
||||||
|
>
|
||||||
|
> **更新(2026-07-31 17:08:30 CST)**
|
||||||
|
>
|
||||||
|
> 修正阶段档案门禁的适用范围:规则禁止在 Phase 尚无阶段结果时提前创建 HTML,但不追溯撤下已经完成正式 Run 和结果汇总的档案。Phase 2 已有正式 Run `dsv4pro-phase2-20260731-130125` 的 8/8 结果,因此恢复 `phase2_exp.html`、`phase2_code.html` 及主计划、Phase 1/2 页面之间的双向导航。
|
||||||
|
>
|
||||||
> **更新(2026-07-31 17:01:56 CST)**
|
> **更新(2026-07-31 17:01:56 CST)**
|
||||||
>
|
>
|
||||||
> 固定阶段档案生成门禁:某个 Phase 在实验结束、结果汇总并完成汇报确认前,不创建或维护 `phaseN_exp.html` 与 `phaseN_code.html`;进行中只维护代码、原始结果和主计划状态。阶段确认完成后再一次性生成两份最终 HTML。Phase 2 尚待最终正式复跑,因此暂时撤下其两份 HTML 及导航;已完成的 Phase 1 档案继续保留。
|
> 固定阶段档案生成门禁:某个 Phase 在实验结束、结果汇总并完成汇报确认前,不创建或维护 `phaseN_exp.html` 与 `phaseN_code.html`;进行中只维护代码、原始结果和主计划状态。阶段确认完成后再一次性生成两份最终 HTML。Phase 2 尚待最终正式复跑,因此暂时撤下其两份 HTML 及导航;已完成的 Phase 1 档案继续保留。
|
||||||
|
|||||||
@ -843,7 +843,10 @@ curl -fsS http://10.101.0.11:30002/health || true
|
|||||||
docker ps --filter name=dsv4pro_pro6000d_2node_sglang_tp16_quick_map
|
docker ps --filter name=dsv4pro_pro6000d_2node_sglang_tp16_quick_map
|
||||||
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv</code></pre>
|
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv</code></pre>
|
||||||
|
|
||||||
<p>下一阶段:Phase 2 正在进行,完成最终复跑与汇报后生成实验档案。</p>
|
<p>
|
||||||
|
下一阶段:
|
||||||
|
<a class="back" href="./phase2_exp.html">打开 Phase 2 实验档案</a>
|
||||||
|
</p>
|
||||||
<p><a class="back" href="./推理优化计划.html">返回推理优化主计划</a></p>
|
<p><a class="back" href="./推理优化计划.html">返回推理优化主计划</a></p>
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
435
docs/dsv4pro_pro6000d_2node_sglang/phase2_code.html
Normal file
435
docs/dsv4pro_pro6000d_2node_sglang/phase2_code.html
Normal file
@ -0,0 +1,435 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="color-scheme" content="light">
|
||||||
|
<title>Phase 2 Code:DSV4-Pro 双机 Pro6000D SGLang 硬件竞争归因</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--canvas: #eef3f4;
|
||||||
|
--paper: #ffffff;
|
||||||
|
--ink: #182126;
|
||||||
|
--muted: #5a6970;
|
||||||
|
--line: #d4dee1;
|
||||||
|
--navy: #17363d;
|
||||||
|
--teal: #087c72;
|
||||||
|
--teal-soft: #e8f5f3;
|
||||||
|
--amber: #a64c14;
|
||||||
|
--amber-soft: #fff1e7;
|
||||||
|
--code-bg: #17252b;
|
||||||
|
--code-ink: #eaf2f3;
|
||||||
|
}
|
||||||
|
* { box-sizing: border-box; letter-spacing: 0; }
|
||||||
|
html { scroll-behavior: smooth; }
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
color: var(--ink);
|
||||||
|
background: var(--canvas);
|
||||||
|
font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.72;
|
||||||
|
}
|
||||||
|
header { color: #f6fbfb; background: var(--navy); border-bottom: 5px solid #d2692b; }
|
||||||
|
.header-inner, main { width: min(100% - 36px, 1120px); margin: 0 auto; }
|
||||||
|
.header-inner { padding: 34px 0 30px; }
|
||||||
|
.eyebrow { margin: 0 0 6px; color: #9edbd5; font-size: 13px; font-weight: 700; }
|
||||||
|
h1 { margin: 0; font-size: clamp(28px, 4vw, 42px); line-height: 1.25; }
|
||||||
|
.meta { margin-top: 15px; color: #d6e5e7; font-size: 14px; }
|
||||||
|
main {
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-bottom: 70px;
|
||||||
|
padding: 38px 48px 58px;
|
||||||
|
background: var(--paper);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 12px 30px rgba(27, 45, 51, 0.07);
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 46px 0 15px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
font-size: 25px;
|
||||||
|
line-height: 1.35;
|
||||||
|
border-bottom: 2px solid #adbbc0;
|
||||||
|
}
|
||||||
|
h2:first-of-type { margin-top: 18px; }
|
||||||
|
h3 { margin: 29px 0 10px; color: #21454d; font-size: 19px; }
|
||||||
|
h4 { margin: 22px 0 8px; font-size: 16px; }
|
||||||
|
p, ul, ol { margin-top: 0; margin-bottom: 16px; }
|
||||||
|
li + li { margin-top: 5px; }
|
||||||
|
a { color: var(--teal); text-underline-offset: 3px; }
|
||||||
|
code {
|
||||||
|
padding: 2px 5px;
|
||||||
|
color: #85380d;
|
||||||
|
background: var(--amber-soft);
|
||||||
|
border-radius: 3px;
|
||||||
|
font-family: "SFMono-Regular", Consolas, monospace;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
margin: 14px 0 22px;
|
||||||
|
padding: 16px 18px;
|
||||||
|
overflow: auto;
|
||||||
|
color: var(--code-ink);
|
||||||
|
background: var(--code-bg);
|
||||||
|
border-radius: 5px;
|
||||||
|
font: 13px/1.62 "SFMono-Regular", Consolas, monospace;
|
||||||
|
}
|
||||||
|
pre code { padding: 0; color: inherit; background: transparent; }
|
||||||
|
table { width: 100%; margin: 16px 0 26px; border-collapse: collapse; font-size: 14px; }
|
||||||
|
th, td {
|
||||||
|
padding: 9px 11px;
|
||||||
|
vertical-align: top;
|
||||||
|
text-align: left;
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
th { color: #153b41; background: #eaf2f2; }
|
||||||
|
tbody tr:nth-child(even) { background: #fafcfc; }
|
||||||
|
.callout { margin: 18px 0 26px; padding: 14px 18px; background: var(--teal-soft); border-left: 4px solid var(--teal); }
|
||||||
|
.warning { margin: 18px 0 26px; padding: 14px 18px; background: var(--amber-soft); border-left: 4px solid var(--amber); }
|
||||||
|
.toc { columns: 2; column-gap: 38px; margin: 16px 0 24px; padding-left: 22px; }
|
||||||
|
.toc li { break-inside: avoid; }
|
||||||
|
.path { font-family: "SFMono-Regular", Consolas, monospace; font-size: 13px; }
|
||||||
|
footer { margin-top: 48px; padding-top: 18px; color: var(--muted); border-top: 1px solid var(--line); }
|
||||||
|
@media (max-width: 760px) {
|
||||||
|
main { padding: 28px 20px 42px; }
|
||||||
|
.toc { columns: 1; }
|
||||||
|
table { display: block; overflow-x: auto; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<div class="header-inner">
|
||||||
|
<p class="eyebrow">Standalone Code Walkthrough / Phase 2</p>
|
||||||
|
<h1>DSV4-Pro 双机 Pro6000D SGLang 硬件竞争归因:代码详解</h1>
|
||||||
|
<div class="meta">
|
||||||
|
行号基线:<code>39fc2ba565a3</code>
|
||||||
|
完成时间:2026-07-31 17:22:20 CST
|
||||||
|
唯一入口:<code>run_hardware_contention_attribution.sh all</code>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<p>
|
||||||
|
<a href="./推理优化计划.html">返回推理优化主计划</a> ·
|
||||||
|
<a href="./phase2_exp.html">打开 Phase 2 实验档案</a>
|
||||||
|
</p>
|
||||||
|
<div class="callout">
|
||||||
|
<strong>文档边界:</strong>本文只解释提交 <code>39fc2ba565a3</code> 的 Phase 2
|
||||||
|
代码和文件调用关系。Phase 1 负责模型服务与请求;Phase 2 负责通信基线、
|
||||||
|
两节点监控、精确时间切片和逐指标报告。最终正式 Run
|
||||||
|
<code>dsv4pro-phase2-20260731-163620</code> 使用提交
|
||||||
|
<code>5f24b7d22f98108f6cc234edba6768d55ea0a962</code>,代码树包含本页所述修复。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="read">1. 阅读导航</h2>
|
||||||
|
<ul class="toc">
|
||||||
|
<li><a href="#flow">总体控制流</a></li>
|
||||||
|
<li><a href="#files">文件职责与调用关系</a></li>
|
||||||
|
<li><a href="#config">配置来源</a></li>
|
||||||
|
<li><a href="#communication">通信微基准</a></li>
|
||||||
|
<li><a href="#collectors">采集器实现</a></li>
|
||||||
|
<li><a href="#alignment">精确测量窗口</a></li>
|
||||||
|
<li><a href="#report">逐指标报告</a></li>
|
||||||
|
<li><a href="#index">函数行号索引</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="flow">2. 总体控制流</h2>
|
||||||
|
<pre><code>main "$@" → run_all
|
||||||
|
├─ validate_config
|
||||||
|
├─ preflight_node_tools
|
||||||
|
│ └─ 两节点 dcgmi discovery -l 必须成功
|
||||||
|
├─ preflight_clock_sync + preflight_gpus_idle
|
||||||
|
├─ run_communication_baseline
|
||||||
|
│ ├─ 两节点 CUDA P2P 全矩阵
|
||||||
|
│ ├─ 两节点各自 8-rank AllReduce
|
||||||
|
│ └─ 16-rank AllReduce,CROSS_NIC=0/1/2
|
||||||
|
├─ start_service → Phase 1 start
|
||||||
|
├─ capture_static_snapshots before
|
||||||
|
├─ start_collectors → Head/Worker 同时采集
|
||||||
|
├─ idle → fixed cases → mixed A/B → cooldown
|
||||||
|
├─ check_collectors + stop_collectors
|
||||||
|
├─ capture_static_snapshots after
|
||||||
|
├─ stop_service → Phase 1 stop
|
||||||
|
├─ summarize_results
|
||||||
|
│ └─ 按正式 benchmark 窗口生成第 5 节逐项数据表
|
||||||
|
└─ finish_manifest</code></pre>
|
||||||
|
<p>
|
||||||
|
<code>all</code> 是唯一正式入口。<code>communication</code>、<code>summarize</code>
|
||||||
|
和 <code>stop</code> 是排错/恢复 action,不需要在正常执行前手工调用。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="files">3. 文件职责与调用关系</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>文件</th><th>行数</th><th>职责</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td class="path">config.env</td><td>61</td><td>节点、Case、分层采样周期、通信尺寸、NCCL 选择和 fail-closed 策略。</td></tr>
|
||||||
|
<tr><td class="path">run_hardware_contention_attribution.sh</td><td>1036</td><td>唯一 Shell 编排器:预检、通信文件分发、通信基线、Phase 1 委托、采集器、Case 和清理。</td></tr>
|
||||||
|
<tr><td class="path">communication_baseline.py</td><td>227</td><td>CUDA P2P 全矩阵及 PyTorch/NCCL AllReduce 正确性、延迟和带宽测试。</td></tr>
|
||||||
|
<tr><td class="path">hardware_contention_attribution.py</td><td>1480</td><td>解析所有原始采集器,按 Case 切片,聚合通信并生成 CSV/JSON/report.md。</td></tr>
|
||||||
|
<tr><td class="path">tests/test_hardware_contention_attribution.py</td><td>322</td><td>9 项纯 Python 单元测试,覆盖 worker 无仓库依赖、精确窗口、解析器、RDMA 单位和通信聚合。</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<pre><code>用户
|
||||||
|
└─ Phase2/run_hardware_contention_attribution.sh all
|
||||||
|
├─ source Phase2/config.env
|
||||||
|
├─ docker/torchrun → Phase2/communication_baseline.py
|
||||||
|
├─ env ... bash Phase1/run_quick_map.sh start/fixed/mixed/stop
|
||||||
|
│ └─ Phase1/quick_map_results.py 写 benchmark meta
|
||||||
|
├─ Shell 采集 Head/Worker 原始时间序列
|
||||||
|
└─ Phase2/hardware_contention_attribution.py summarize
|
||||||
|
├─ 读取 Phase1 bench/cases/*/meta.json
|
||||||
|
├─ 读取 Head/Worker 原始监控
|
||||||
|
├─ 读取 communication/COMM_RESULT
|
||||||
|
└─ 输出逐 Case、逐节点、逐指标表和 report.md</code></pre>
|
||||||
|
|
||||||
|
<h3>3.1 Phase 1 与 Phase 2 的边界</h3>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>问题</th><th>由哪个文件负责</th><th>证据</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>模型路径、镜像、TP16、EP、显存比例</td><td>Phase 1 <code>config.env</code> + <code>run_quick_map.sh</code></td><td><code>service/head_server_cmd.txt</code>、<code>worker_server_cmd.txt</code></td></tr>
|
||||||
|
<tr><td>ISL/OSL/C、random 请求和 mixed A/B</td><td>Phase 1 场景表与 benchmark 函数</td><td><code>bench/*/bench_cmd.txt</code>、<code>bench.json</code></td></tr>
|
||||||
|
<tr><td>通信基线、监控周期、Case 选择</td><td>Phase 2 <code>config.env</code></td><td>Phase 2 <code>manifest.json</code></td></tr>
|
||||||
|
<tr><td>硬件归因和数值报告</td><td>Phase 2 Python 汇总器</td><td><code>case_*_summary.csv</code>、<code>report.md</code></td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2 id="config">4. 配置来源</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>行号</th><th>配置组</th><th>关键变量</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>config.env:L3-L16</code></td><td>入口与节点</td><td><code>PHASE1_ENTRY</code>、Head/Worker、端口和容器名。</td></tr>
|
||||||
|
<tr><td><code>L18-L21</code></td><td>诊断 Case</td><td>五个 fixed Case、mixed A/B 开关。</td></tr>
|
||||||
|
<tr><td><code>L23-L39</code></td><td>采样与严格性</td><td>GPU/DCGM/RDMA 1 秒;CPU/进程/网络/NUMA/perf 5 秒;精确窗口和采集器 fail-closed。</td></tr>
|
||||||
|
<tr><td><code>L40-L55</code></td><td>通信基线</td><td>镜像、消息尺寸、迭代次数、P2P 大小、CROSS_NIC 列表、Socket/HCA。</td></tr>
|
||||||
|
<tr><td><code>L57-L61</code></td><td>路径与模式</td><td><code>RESULT_BASE</code>、Runtime、Dry-run、是否允许部分采集器。</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<code>MEM_FRACTION_STATIC</code> 不在 Phase 2 重复定义。它仍来自 Phase 1,
|
||||||
|
最终展开为 SGLang 的 <code>--mem-fraction-static</code>。判断某次 Run 的真实值,
|
||||||
|
应读取 <code>service/head_server_cmd.txt</code>,不能只看默认配置。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="communication">5. 通信微基准</h2>
|
||||||
|
<h3>5.1 Shell 如何编排</h3>
|
||||||
|
<p>
|
||||||
|
<code>run_hardware_contention_attribution.sh:L281-L513</code> 负责源码暂存、
|
||||||
|
Docker 命令、两节点同步和清理。所有命令先写入 <code>commands/*.txt</code>:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>L281-L319</code>:从 Head 将当次通信脚本暂存到两节点并校验 SHA256。</li>
|
||||||
|
<li><code>L321-L374</code>:构造容器命令,Head/Worker 各跑一次 P2P。</li>
|
||||||
|
<li><code>L376-L404</code>:Head/Worker 各跑一次 8-rank AllReduce。</li>
|
||||||
|
<li><code>L406-L467</code>:每个 CROSS_NIC 值先启动 Worker rank,再运行 Head rank。</li>
|
||||||
|
<li><code>L469-L513</code>:只清理本实验前缀的通信容器和本次 `/tmp` 暂存目录。</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Docker 使用和 SGLang 一致的 CUDA 13 nightly 镜像,并显式透传
|
||||||
|
<code>rdma_cm</code>、<code>uverbs0</code>、<code>uverbs3</code>。
|
||||||
|
<code>NCCL_DEBUG=INFO</code> 只在微基准中打开,用于证明 NET/IB/GDRDMA 路径。
|
||||||
|
Worker 不要求存在 Git 仓库;容器只读挂载自动分发的
|
||||||
|
<code>/tmp/.../<RUN_ID>/communication_baseline.py</code>。结果目录同时保存
|
||||||
|
当次源码副本和 SHA256,避免两个节点 checkout 不一致造成版本漂移。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.2 P2P 代码</h3>
|
||||||
|
<p>
|
||||||
|
<code>communication_baseline.py:L45-L106</code> 遍历所有源 GPU 和目标 GPU,
|
||||||
|
先调用 <code>torch.cuda.can_device_access_peer</code>,再对 256 MiB FP16 Tensor
|
||||||
|
做预热和 CUDA Event 计时。输出包括方向、P50/P95 latency 和 GB/s。
|
||||||
|
汇总器按拓扑拆成同 PCIe Switch 的 PIX 与跨 NUMA 的 SYS。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.3 AllReduce 代码</h3>
|
||||||
|
<p>
|
||||||
|
<code>communication_baseline.py:L107-L198</code> 初始化 NCCL process group,
|
||||||
|
对 1 MiB、64 MiB、1 GiB 分别预热和重复测量。每轮先把各 rank latency
|
||||||
|
gather 到 rank 0,使用最慢 rank 作为 collective 完成时间,并检查归约结果:
|
||||||
|
</p>
|
||||||
|
<pre><code>algbw = message_bytes / latency
|
||||||
|
busbw = algbw × 2 × (world_size - 1) / world_size
|
||||||
|
wrong_values = count(output != expected_sum)</code></pre>
|
||||||
|
<p>
|
||||||
|
这样不会用某个提前返回 rank 的时间美化结果;<code>wrong_values=0</code>
|
||||||
|
才算正确完成。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="collectors">6. 两节点采集器</h2>
|
||||||
|
<h3>6.1 启动前门禁</h3>
|
||||||
|
<p>
|
||||||
|
Shell <code>L67-L199</code> 完成配置、工具、时钟和 GPU 空闲检查。
|
||||||
|
<code>preflight_node_tools</code> 不只检查 <code>dcgmi</code> 文件存在,
|
||||||
|
还实际运行 <code>dcgmi discovery -l</code>;两节点任一 Host Engine 不可用即退出。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>6.2 采集器包装</h3>
|
||||||
|
<p>
|
||||||
|
<code>start_stream_collector</code> 位于 Shell <code>L517-L551</code>。
|
||||||
|
它保存完整命令、PID、唯一进程 tag 和日志;<code>check_collectors</code> 在
|
||||||
|
<code>L722-L740</code> 检查采集器是否提前退出,默认不允许部分成功。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>采集器</th><th>Shell 位置</th><th>周期</th><th>输出</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>nvidia-smi</code></td><td><code>L552-L565</code></td><td>1 秒</td><td><code>gpu_samples.csv</code></td></tr>
|
||||||
|
<tr><td>RDMA HCA counters</td><td><code>L566-L592</code></td><td>1 秒</td><td><code>rdma.csv</code></td></tr>
|
||||||
|
<tr><td>DCGM</td><td><code>L645-L655</code></td><td>1 秒</td><td><code>dcgm_dmon.log</code></td></tr>
|
||||||
|
<tr><td><code>mpstat</code></td><td><code>L656-L663</code></td><td>5 秒</td><td><code>mpstat.log</code></td></tr>
|
||||||
|
<tr><td><code>pidstat -durw</code></td><td><code>L664-L671</code></td><td>5 秒,进程级</td><td><code>pidstat.log</code></td></tr>
|
||||||
|
<tr><td><code>sar -n DEV,EDEV</code></td><td><code>L672-L678</code></td><td>5 秒</td><td><code>sar_net.log</code></td></tr>
|
||||||
|
<tr><td><code>perf stat</code></td><td><code>L680-L689</code></td><td>5 秒</td><td><code>perf_stat.log</code></td></tr>
|
||||||
|
<tr><td><code>numastat</code></td><td><code>L618-L644</code></td><td>5 秒</td><td><code>numa_samples.csv</code></td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
CPU、进程、perf 和 sar 的每行均由 Shell 增加
|
||||||
|
<code>wall_time_ns TAB node TAB payload</code>。NUMA 直接转成结构化 CSV,
|
||||||
|
避免旧版线程级 1 秒日志过大,也让所有指标能按 Case 切片。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="alignment">7. 精确测量窗口</h2>
|
||||||
|
<h3>7.1 Phase 1 如何标记主测量</h3>
|
||||||
|
<p>
|
||||||
|
Phase 1 <code>run_quick_map.sh:L547-L564</code> 每 100 ms 观察 bench 日志;
|
||||||
|
发现 <code>Starting main benchmark run</code> 后调用
|
||||||
|
<code>quick_map_results.py mark-measurement-start</code>。
|
||||||
|
<code>quick_map_results.py:L340-L385</code> 用这个起点和
|
||||||
|
<code>bench.json.duration</code> 生成:
|
||||||
|
</p>
|
||||||
|
<pre><code>measurement_started_at
|
||||||
|
measurement_ended_at
|
||||||
|
measurement_duration_s
|
||||||
|
measurement_window_source = bench_main_marker_plus_duration</code></pre>
|
||||||
|
|
||||||
|
<h3>7.2 Phase 2 如何使用</h3>
|
||||||
|
<p>
|
||||||
|
<code>hardware_contention_attribution.py:L509-L560</code> 优先读取上述字段。
|
||||||
|
只有兼容旧结果时才可能使用进程级窗口;正式配置
|
||||||
|
<code>REQUIRE_PRECISE_WINDOWS=1</code> 会拒绝任何 fallback。
|
||||||
|
<code>L561-L841</code> 对 GPU、DCGM、CPU、进程、perf、NUMA、netdev 和 RDMA
|
||||||
|
使用同一个 <code>started_ns ≤ sample ≤ ended_ns</code> 条件。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="report">8. 逐指标报告</h2>
|
||||||
|
<p>
|
||||||
|
Python <code>summarize</code> 位于
|
||||||
|
<code>hardware_contention_attribution.py:L1036-L1378</code>。
|
||||||
|
它不只生成一个抽象结论,而是按 Phase 2 第 5 节依次写出:
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>指标</th><th>解析函数</th><th>Case 汇总文件</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>GPU</td><td><code>summarize_gpu_rows L377-L413</code></td><td><code>case_gpu_summary.csv</code>、<code>case_gpu_node_summary.csv</code></td></tr>
|
||||||
|
<tr><td>DCGM</td><td><code>parse_dcgm L167-L192</code></td><td><code>case_dcgm_summary.csv</code></td></tr>
|
||||||
|
<tr><td>CPU</td><td><code>parse_mpstat L193-L222</code></td><td><code>case_cpu_summary.csv</code></td></tr>
|
||||||
|
<tr><td>进程</td><td><code>parse_pidstat L223-L289</code></td><td><code>case_process_summary.csv</code></td></tr>
|
||||||
|
<tr><td>perf</td><td><code>parse_perf L290-L310</code></td><td><code>case_perf_summary.csv</code></td></tr>
|
||||||
|
<tr><td>NUMA</td><td>结构化 CSV + <code>summarize_case_metrics</code></td><td><code>case_numa_summary.csv</code></td></tr>
|
||||||
|
<tr><td>Linux netdev</td><td><code>parse_sar_net L311-L358</code></td><td><code>case_netdev_summary.csv</code></td></tr>
|
||||||
|
<tr><td>RDMA</td><td><code>summarize_rdma_rows L424-L484</code></td><td><code>case_rdma_summary.csv</code></td></tr>
|
||||||
|
<tr><td>P2P/NCCL</td><td><code>load_communication_rows</code> + <code>aggregate_communication_rows L842-L928</code></td><td><code>communication_summary.csv</code>、<code>communication_aggregate.csv</code></td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<code>report.md</code> 对每组都打印有效样本数、Mean/P95/Max、Head/Worker
|
||||||
|
或 Case 间比较和源文件。解析不到的值保留为 <code>-</code>,不会被写成 0。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="outputs">9. 结果目录</h2>
|
||||||
|
<pre><code>results/<RUN_ID>/
|
||||||
|
manifest.json
|
||||||
|
commands/
|
||||||
|
communication/
|
||||||
|
service/
|
||||||
|
bench/<phase1-sub-run>/
|
||||||
|
head/
|
||||||
|
gpu_samples.csv
|
||||||
|
dcgm_dmon.log
|
||||||
|
mpstat.log
|
||||||
|
pidstat.log
|
||||||
|
perf_stat.log
|
||||||
|
sar_net.log
|
||||||
|
numa_samples.csv
|
||||||
|
rdma.csv
|
||||||
|
collector_commands/
|
||||||
|
worker/
|
||||||
|
...同上...
|
||||||
|
case_windows.csv
|
||||||
|
bench_summary.csv
|
||||||
|
case_gpu_summary.csv
|
||||||
|
case_gpu_node_summary.csv
|
||||||
|
case_dcgm_summary.csv
|
||||||
|
case_cpu_summary.csv
|
||||||
|
case_process_summary.csv
|
||||||
|
case_perf_summary.csv
|
||||||
|
case_numa_summary.csv
|
||||||
|
case_netdev_summary.csv
|
||||||
|
case_rdma_summary.csv
|
||||||
|
communication_summary.csv
|
||||||
|
communication_aggregate.csv
|
||||||
|
summary.json
|
||||||
|
report.md</code></pre>
|
||||||
|
|
||||||
|
<h2 id="index">10. 函数行号索引</h2>
|
||||||
|
<h3>10.1 Shell 编排器</h3>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>行号</th><th>函数组</th><th>职责</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>L26-L66</td><td>日志、远端执行、命令证据</td><td>基础设施。</td></tr>
|
||||||
|
<tr><td>L67-L199</td><td>配置、工具、时钟、GPU 空闲门禁</td><td>正式运行前 fail-fast。</td></tr>
|
||||||
|
<tr><td>L200-L268</td><td>Manifest、marker、Phase 1 委托</td><td>运行身份与复用边界。</td></tr>
|
||||||
|
<tr><td>L281-L513</td><td>通信基线</td><td>按 Run 分发源码、P2P、8/16-rank AllReduce、CROSS_NIC A/B 与清理。</td></tr>
|
||||||
|
<tr><td>L448-L516</td><td>服务和静态快照</td><td>启停 Phase 1 双机服务并保存环境。</td></tr>
|
||||||
|
<tr><td>L517-L710</td><td>采集命令与启动</td><td>两节点分层采样。</td></tr>
|
||||||
|
<tr><td>L711-L772</td><td>采集器检查和停止</td><td>fail-closed 与残留清理。</td></tr>
|
||||||
|
<tr><td>L782-L835</td><td>fixed/mixed Case</td><td>代表负载编排。</td></tr>
|
||||||
|
<tr><td>L836-L858</td><td>汇总、Manifest、trap</td><td>结果收口。</td></tr>
|
||||||
|
<tr><td>L859-L928</td><td><code>run_all</code></td><td>完整状态机。</td></tr>
|
||||||
|
<tr><td>L929-L968</td><td>辅助 action 与 main</td><td><code>communication/all/summarize/stop</code> 分发。</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>10.2 Python 文件</h3>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>文件/行号</th><th>职责</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>communication_baseline.py:L20-L44</code></td><td>尺寸解析、分位数和 JSON 结果协议。</td></tr>
|
||||||
|
<tr><td><code>L45-L106</code></td><td>CUDA P2P 全矩阵。</td></tr>
|
||||||
|
<tr><td><code>L107-L198</code></td><td>NCCL AllReduce 与正确性。</td></tr>
|
||||||
|
<tr><td><code>hardware_contention_attribution.py:L76-L166</code></td><td>时间、CSV、数字统计基础函数。</td></tr>
|
||||||
|
<tr><td><code>L167-L358</code></td><td>DCGM、mpstat、pidstat、perf、sar 解析器。</td></tr>
|
||||||
|
<tr><td><code>L359-L508</code></td><td>通信、GPU、RDMA、bench 读取与汇总。</td></tr>
|
||||||
|
<tr><td><code>L509-L841</code></td><td>精确窗口和全部 Case 指标切片。</td></tr>
|
||||||
|
<tr><td><code>L842-L1035</code></td><td>通信聚合、CSV、Marker、Manifest。</td></tr>
|
||||||
|
<tr><td><code>L1036-L1378</code></td><td>全部输出表和逐指标 <code>report.md</code>。</td></tr>
|
||||||
|
<tr><td><code>L1379-L1480</code></td><td>CLI 子命令。</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2 id="evidence">11. 最终 Run 证据</h2>
|
||||||
|
<p>
|
||||||
|
正式 Run 完成 8/8 benchmark、8/8 精确测量窗口和 18/18 采集器启停。
|
||||||
|
代码产生的各类输出与实验结论一一对应:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/manifest.json"><code>manifest.json</code></a>:Run 身份、提交、时间和最终状态。</li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/bench_summary.csv"><code>bench_summary.csv</code></a>:8 个端到端结果。</li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/case_windows.csv"><code>case_windows.csv</code></a>:正式 benchmark 精确时间窗。</li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/collector_status.csv"><code>collector_status.csv</code></a>:两节点采集器生命周期。</li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/report.md"><code>report.md</code></a>:逐指标自动报告。</li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/analysis.md"><code>analysis.md</code></a>:阶段归因与 Phase 3 入口。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
本文只描述提交 <code>39fc2ba565a3</code>。Nsight Systems、SGLang Profiler 和
|
||||||
|
Kernel Timeline 属于 Phase 3,不加入 Phase 2,避免重复采集和职责混淆。
|
||||||
|
</footer>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
785
docs/dsv4pro_pro6000d_2node_sglang/phase2_exp.html
Normal file
785
docs/dsv4pro_pro6000d_2node_sglang/phase2_exp.html
Normal file
@ -0,0 +1,785 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Phase 2:DeepSeek-V4-Pro 双机 Pro6000D SGLang 硬件与资源竞争归因</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
color-scheme: light;
|
||||||
|
--ink: #18202a;
|
||||||
|
--muted: #5b6570;
|
||||||
|
--line: #d8dde3;
|
||||||
|
--paper: #ffffff;
|
||||||
|
--page: #f3f5f7;
|
||||||
|
--blue: #1769aa;
|
||||||
|
--green: #16734a;
|
||||||
|
--amber: #9a5a00;
|
||||||
|
--red: #a13232;
|
||||||
|
--code: #f0f3f6;
|
||||||
|
}
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: var(--page);
|
||||||
|
color: var(--ink);
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.65;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
background: #202a34;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 5px solid #34a17a;
|
||||||
|
}
|
||||||
|
.header-inner, main {
|
||||||
|
width: min(1120px, calc(100% - 32px));
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.header-inner { padding: 38px 0 32px; }
|
||||||
|
h1, h2, h3 { letter-spacing: 0; }
|
||||||
|
h1 {
|
||||||
|
margin: 4px 0 12px;
|
||||||
|
font-size: clamp(26px, 4vw, 42px);
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 38px 0 12px;
|
||||||
|
padding-bottom: 7px;
|
||||||
|
border-bottom: 2px solid var(--line);
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
h3 { margin: 26px 0 8px; font-size: 19px; }
|
||||||
|
.eyebrow {
|
||||||
|
margin: 0;
|
||||||
|
color: #8fd8bd;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.meta {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px 22px;
|
||||||
|
color: #d7dee5;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
main {
|
||||||
|
margin-top: 24px;
|
||||||
|
margin-bottom: 48px;
|
||||||
|
padding: 30px 38px 42px;
|
||||||
|
background: var(--paper);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.status {
|
||||||
|
padding: 14px 16px;
|
||||||
|
border-left: 4px solid var(--amber);
|
||||||
|
background: #fff7e7;
|
||||||
|
}
|
||||||
|
.decision {
|
||||||
|
padding: 14px 16px;
|
||||||
|
border-left: 4px solid var(--green);
|
||||||
|
background: #eef8f3;
|
||||||
|
}
|
||||||
|
a { color: var(--blue); }
|
||||||
|
.back {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-weight: 650;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
padding: 1px 5px;
|
||||||
|
background: var(--code);
|
||||||
|
border-radius: 3px;
|
||||||
|
font-family: "SFMono-Regular", Consolas, monospace;
|
||||||
|
font-size: 0.92em;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 14px 16px;
|
||||||
|
background: #202a34;
|
||||||
|
color: #f4f7fa;
|
||||||
|
border-radius: 5px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
pre code { padding: 0; background: transparent; color: inherit; }
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
margin: 14px 0 22px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
padding: 10px 11px;
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th { background: #edf1f4; }
|
||||||
|
.pass { color: var(--green); font-weight: 700; }
|
||||||
|
.pending { color: var(--amber); font-weight: 700; }
|
||||||
|
.fail { color: var(--red); font-weight: 700; }
|
||||||
|
li + li { margin-top: 5px; }
|
||||||
|
@media (max-width: 720px) {
|
||||||
|
main { padding: 22px 18px 30px; }
|
||||||
|
table { display: block; overflow-x: auto; white-space: nowrap; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<div class="header-inner">
|
||||||
|
<p class="eyebrow">Design, Implementation & Result Record</p>
|
||||||
|
<h1>Phase 2:DeepSeek-V4-Pro 双机 Pro6000D SGLang 硬件与资源竞争归因</h1>
|
||||||
|
<div class="meta">
|
||||||
|
<span>节点:174.1.51.5 + 174.1.51.7</span>
|
||||||
|
<span>拓扑:SGLang TP16 / EP2</span>
|
||||||
|
<span>更新:2026-07-31 17:22:20 CST</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<a class="back" href="./推理优化计划.html">返回推理优化主计划</a>
|
||||||
|
<a class="back" href="./phase2_code.html">打开 Phase 2 代码详解</a>
|
||||||
|
|
||||||
|
<p class="status">
|
||||||
|
<strong>当前状态:Phase 2 已完成。</strong>
|
||||||
|
最终 Run <code>dsv4pro-phase2-20260731-163620</code> 在 28 分 44 秒内完成
|
||||||
|
8/8 个 benchmark,正式测量窗口 8/8 精确,18/18 个采集器正常启停。
|
||||||
|
Head/Worker 的 DCGM、CPU、NUMA、双 Rail RDMA 和通信微基准证据均有效;
|
||||||
|
实验结束后两节点容器、服务端口和 16 张 GPU 已清理。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>1. Phase 1 交接结果</h2>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>代表负载</th><th>关键结果</th><th>Phase 2 用途</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>128K → 1,C=1</td><td>Input TPS 2,710.16;TTFT P95 48.344 s</td><td>纯长 Prefill 的计算、显存与通信归因</td></tr>
|
||||||
|
<tr><td>32K → 1,C=16</td><td>Input TPS 3,112.77;TTFT P95 162.087 s</td><td>并发 Prefill 的排队、Chunk 调度与节点均衡</td></tr>
|
||||||
|
<tr><td>1K → 1K,C=32</td><td>Output TPS 461.68;TPOT P95 63.31 ms</td><td>普通 Decode 的 GPU、CPU 与通信基线</td></tr>
|
||||||
|
<tr><td>1K → 4K,C=16</td><td>Output TPS 310.02;TPOT P95 50.33 ms</td><td>持续 Decode、KV 增长和稳态资源占用</td></tr>
|
||||||
|
<tr><td>128K → 1K,C=1</td><td>TTFT P95 49.326 s;TPOT P95 32.24 ms</td><td>分离长 Prefill 与长上下文 Decode 成本</td></tr>
|
||||||
|
<tr><td>1K → 1K,C=32 + 128K 注入</td><td>Output TPS -24.08%;TPOT P95 +66.55%</td><td>Prefill 干扰 Decode 时的硬件资源竞争</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
最终基线已由 Head 与 Worker 日志证明使用
|
||||||
|
<code>mlx5_0/mlx5_3</code> 双 Rail <code>NET/IB + GDRDMA</code>,
|
||||||
|
正式测量请求为冷 Prefix。正式矩阵 12/12、长 Decode 补测 2/2 均成功。
|
||||||
|
Phase 2 保持相同服务配置和请求口径。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>2. 本阶段的边界</h2>
|
||||||
|
<ul>
|
||||||
|
<li>只测试 SGLang,不测试 vLLM。</li>
|
||||||
|
<li>保留模型、镜像、TP16、EP2、显存比例和已验证的双 Rail NCCL 配置。</li>
|
||||||
|
<li>模型端到端 Case 不启用 Nsight Systems、PyTorch Profiler、NCCL DEBUG 或投机解码;独立通信基线临时启用 NCCL INFO 以保存实际路径证据。</li>
|
||||||
|
<li>不调参,不尝试优化;先获得足以区分瓶颈类别的硬件证据。</li>
|
||||||
|
<li>只重放五个固定代表负载和一组混合 A/B,不重复 Phase 1 全矩阵。</li>
|
||||||
|
<li>采集器从请求开始前启动,到请求结束后停止,不能中途补采后声称完整。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>3. 待验证假设</h2>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>假设</th><th>预期硬件表现</th><th>后续方向</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>DSV4/NSA Prefill Kernel 计算受限</td><td>GPU 持续忙、高功耗和稳定频率;双 Rail 流量不高</td><td>Phase 3 捕获 Kernel 与 Attention/Indexer 时间线</td></tr>
|
||||||
|
<tr><td>权重或激活显存带宽受限</td><td>GPU Memory Utilization 高,SM 指标未必饱和;功耗可能低于纯计算</td><td>补 DCGM/Profiler 的 DRAM Active,再看 Kernel</td></tr>
|
||||||
|
<tr><td>TP16 跨机通信受限</td><td>RoCE 吞吐高或两条 Rail 明显失衡,GPU 出现等待</td><td>NCCL_CROSS_NIC 0/1/2 快速 A/B,随后看 NCCL Timeline</td></tr>
|
||||||
|
<tr><td>CPU Scheduler 或 Kernel Launch 受限</td><td>GPU 利用率锯齿或有空洞,单 CPU 核持续满载</td><td>定位 Scheduler/Tokenizer 线程与 launch gap</td></tr>
|
||||||
|
<tr><td>频率、功耗或温度限制</td><td>P-state、SM Clock 或 Power 持续异常,可能出现节流原因</td><td>修正电源、散热或 Clock Policy 后复测</td></tr>
|
||||||
|
<tr><td>节点或 Rank 不均衡</td><td>两节点或不同 GPU 的利用率、功耗、网络流量存在固定偏差</td><td>检查 NUMA、GPU-NIC 亲和与慢 Rank</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2>4. 诊断 Run</h2>
|
||||||
|
<ol>
|
||||||
|
<li>确认 16 张 GPU 空闲,先跑两节点 PCIe P2P、单机 8 rank AllReduce 和双机 16 rank AllReduce;双机分别测试 <code>NCCL_CROSS_NIC=0/1/2</code>。</li>
|
||||||
|
<li>保存两节点静态快照:GPU/NIC/NUMA 拓扑、驱动、CUDA、镜像与服务命令。</li>
|
||||||
|
<li>复用 Phase 1 已验证的 <code>run_quick_map.sh start</code> 启动同配置双机服务。</li>
|
||||||
|
<li>在 Head 和 Worker 同时启动 GPU、CPU、网卡与 RDMA 采样,先记录 15 秒空闲基线。</li>
|
||||||
|
<li>依次重放 <code>128K → 1, C=1</code>、<code>32K → 1, C=16</code> 与 <code>1K → 1K, C=32</code>。</li>
|
||||||
|
<li>重放 <code>1K → 4K, C=16</code> 和 <code>128K → 1K, C=1</code>,观察持续与长上下文 Decode。</li>
|
||||||
|
<li>重放 <code>1K → 1K, C=32</code> Control 与 128K Prefill 注入 Treatment,保留相同注入时序。</li>
|
||||||
|
<li>请求结束后继续采样 15 秒,再停止采集器和服务。</li>
|
||||||
|
<li>按时间戳将请求、GPU、CPU 和双 Rail 指标对齐,生成摘要与判定。</li>
|
||||||
|
</ol>
|
||||||
|
<pre><code>idle 15s
|
||||||
|
│ 128K→1 C1 │ 32K→1 C16 │ 1K→1K C32
|
||||||
|
│ 1K→4K C16 │ 128K→1K C1
|
||||||
|
│ Decode Control │ Decode + Prefill
|
||||||
|
cooldown 15s
|
||||||
|
|
||||||
|
Head 与 Worker 的所有采集器覆盖完整诊断窗口。</code></pre>
|
||||||
|
<p>
|
||||||
|
Phase 1 中服务加载约 5 分 30 秒;通信基线、五个固定负载、混合 A/B、
|
||||||
|
静态快照、采样和清理组成一次完整 Phase 2 Run。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>4.1 你只需要运行的入口</h3>
|
||||||
|
<p class="decision">
|
||||||
|
<strong>操作规则:先在 Worker <code>.7</code> 做一次 DCGM 准备,再只在
|
||||||
|
Head <code>.5</code> 执行 Phase 2 的 <code>all</code>。</strong>
|
||||||
|
不要手工执行 Phase 1 的 <code>start</code> 或 <code>stop</code>。
|
||||||
|
Phase 2 会在内部复用它们,并负责异常退出时的采集器、Head、Worker 清理。
|
||||||
|
</p>
|
||||||
|
<pre><code class="language-bash"># [仅在 Worker 174.1.51.7 执行一次]
|
||||||
|
# 不需要 source、conda activate,也不要在 .7 运行 Phase 2 的 all
|
||||||
|
systemctl start nvidia-dcgm
|
||||||
|
systemctl is-active nvidia-dcgm
|
||||||
|
dcgmi discovery -l
|
||||||
|
|
||||||
|
# 预期:第二条输出 active,第三条列出本机 8 张 GPU
|
||||||
|
|
||||||
|
# [以下仅在 Head 174.1.51.5 执行]
|
||||||
|
cd /data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution
|
||||||
|
|
||||||
|
# 第一次先展开全部命令,不启动服务、不占用 GPU、不发送请求
|
||||||
|
DRY_RUN=1 RUN_ID=dsv4pro-phase2-dryrun-$(date +%Y%m%d-%H%M%S) \
|
||||||
|
bash run_hardware_contention_attribution.sh all
|
||||||
|
|
||||||
|
# 正式实验:仍然只有同一个 all 入口,tmux 只负责断线后继续运行
|
||||||
|
RUN_ID=dsv4pro-phase2-$(date +%Y%m%d-%H%M%S)
|
||||||
|
tmux new-session -d -s dsv4pro-phase2 \
|
||||||
|
"RUN_ID=${RUN_ID} bash run_hardware_contention_attribution.sh all \
|
||||||
|
2>&1 | tee /data/hzy/${RUN_ID}.log"
|
||||||
|
|
||||||
|
tmux attach -t dsv4pro-phase2</code></pre>
|
||||||
|
<p>
|
||||||
|
<code>.7</code> 的三条命令只负责让 Worker DCGM Host Engine 可用;
|
||||||
|
SGLang Worker、其余采集器和结果回收仍由 <code>.5</code> 的唯一入口通过 SSH 管理。
|
||||||
|
若需要机器重启后自动启动 DCGM,应由运维另行决定是否执行
|
||||||
|
<code>systemctl enable nvidia-dcgm</code>。
|
||||||
|
</p>
|
||||||
|
<p><strong><code>all</code> 内部执行顺序:</strong></p>
|
||||||
|
<pre><code>配置、工具、DCGM 与 GPU 空闲门禁
|
||||||
|
→ 通信基线:两节点 P2P、两组单机 8-rank AllReduce、
|
||||||
|
三组双机 16-rank NCCL_CROSS_NIC A/B
|
||||||
|
→ Phase 1 start:启动同配置 TP16 服务
|
||||||
|
→ 两节点静态快照
|
||||||
|
→ 启动两节点采集器并记录 15 秒 idle
|
||||||
|
→ 五个固定 Case
|
||||||
|
→ 混合 Prefill/Decode A/B
|
||||||
|
→ 15 秒 cooldown
|
||||||
|
→ 停止采集器并保存后快照
|
||||||
|
→ Phase 1 stop:停止 Head/Worker
|
||||||
|
→ 生成按第 5 节逐项对应的 CSV、JSON 与 report.md</code></pre>
|
||||||
|
<p>
|
||||||
|
Phase 1 的作用是提供已经验证过的双机 Docker 服务和 Benchmark 实现,
|
||||||
|
不是第二个用户入口。实际展开的服务、Benchmark 和采集命令都会写入
|
||||||
|
<code>results/<RUN_ID>/service/</code>、<code>commands/</code> 和
|
||||||
|
<code>head|worker/collector_commands/</code>,不依赖跨文档猜测。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>5. 采集指标</h2>
|
||||||
|
<p>
|
||||||
|
本节记录正式实现使用的命令,而不是建议性伪代码。命令由
|
||||||
|
<code>run_hardware_contention_attribution.sh</code> 在 Head 和 Worker 同时启动;
|
||||||
|
每条展开后的命令会另外保存在
|
||||||
|
<code>results/<RUN_ID>/head|worker/collector_commands/</code>。
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>层级</th><th>连续采样</th><th>静态或前后快照</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>GPU</td><td>利用率、Memory Utilization、显存、功耗、SM/Memory Clock、温度、P-state</td><td><code>nvidia-smi topo -m</code>、Compute Process</td></tr>
|
||||||
|
<tr><td>CPU</td><td>每核利用率、上下文切换、服务进程 CPU/内存</td><td>NUMA 拓扑、容器 PID 与 CPU Affinity</td></tr>
|
||||||
|
<tr><td>Network</td><td><code>eth0/eth3</code> RX/TX</td><td><code>ethtool -S</code> 错误计数前后差</td></tr>
|
||||||
|
<tr><td>RDMA</td><td><code>mlx5_0/mlx5_3</code> port_xmit/recv_data 差分</td><td>Port State、GID 与错误计数</td></tr>
|
||||||
|
<tr><td>DCGM</td><td>SM Active、DRAM Active、Tensor Active、PCIe</td><td>工具版本与可用 Field</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>5.1 时间对齐与 Case Marker</h3>
|
||||||
|
<pre><code class="language-bash"># 每条 GPU/RDMA 样本写入相同格式的宿主机墙钟时间
|
||||||
|
date +%s%N
|
||||||
|
|
||||||
|
# 实验前检查两节点秒级时钟差
|
||||||
|
date +%s
|
||||||
|
|
||||||
|
# Case 开始、结束和服务状态由 Python 写入 markers.csv
|
||||||
|
python3 hardware_contention_attribution.py marker \
|
||||||
|
--path markers.csv \
|
||||||
|
--node head \
|
||||||
|
--event case_start \
|
||||||
|
--case-id long_prefill_latency_128k_c1</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>数据</th><th>含义</th><th>为什么需要</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>wall_time_ns</code></td><td>Unix Epoch 纳秒时间</td><td>把 GPU、CPU、RDMA 与 Benchmark 放到同一时间轴</td></tr>
|
||||||
|
<tr><td><code>case_start/case_end</code></td><td>一个 Case 的编排边界</td><td>从整段连续采样中切出对应负载</td></tr>
|
||||||
|
<tr><td><code>CLOCK_SKEW_TOLERANCE_S=2</code></td><td>两节点允许的最大秒级时钟差</td><td>避免 Head/Worker 的同一时刻被错位比较</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
最终实现由 Phase 1 监听 <code>bench.log</code> 中的
|
||||||
|
<code>Starting main benchmark run</code>,立刻写入
|
||||||
|
<code>measurement_start.json</code>;再使用 SGLang <code>bench.json</code>
|
||||||
|
的正式 benchmark duration 计算结束时间。Phase 2 优先读取
|
||||||
|
<code>measurement_started_at/measurement_ended_at</code>,不会把数据生成和
|
||||||
|
Warm-up 混入硬件均值。<code>REQUIRE_PRECISE_WINDOWS=1</code> 时,任何 Case
|
||||||
|
缺少精确窗口都会让汇总失败,而不是悄悄回退。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.2 GPU 基础状态:<code>nvidia-smi</code></h3>
|
||||||
|
<pre><code class="language-bash">nvidia-smi \
|
||||||
|
--query-gpu=index,timestamp,utilization.gpu,utilization.memory,\
|
||||||
|
memory.used,memory.total,power.draw,temperature.gpu,\
|
||||||
|
clocks.sm,clocks.mem,pstate \
|
||||||
|
--format=csv,noheader,nounits</code></pre>
|
||||||
|
<p>脚本每秒运行一次,并在每行前加入 <code>wall_time_ns</code> 和节点角色。</p>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>字段</th><th>代表什么</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>utilization.gpu</code></td><td>采样周期内至少有一个 Kernel 在执行的时间比例</td></tr>
|
||||||
|
<tr><td><code>utilization.memory</code></td><td>采样周期内显存控制器处于忙碌状态的时间比例</td></tr>
|
||||||
|
<tr><td><code>memory.used/total</code></td><td>当前总显存分配量与设备显存容量</td></tr>
|
||||||
|
<tr><td><code>power.draw</code></td><td>GPU 当前功耗,用于比较不同负载的能耗状态</td></tr>
|
||||||
|
<tr><td><code>clocks.sm/clocks.mem</code></td><td>SM 与显存当前工作频率</td></tr>
|
||||||
|
<tr><td><code>pstate</code></td><td>GPU 性能状态,P0 通常是最高性能态</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
原始输出为 <code>head|worker/gpu_samples.csv</code>;
|
||||||
|
<code>gpu_summary.csv</code> 汇总整段运行,
|
||||||
|
<code>case_gpu_summary.csv</code> 按节点、Case 和 GPU 汇总平均值与峰值。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.3 GPU Profiling Counter:DCGM</h3>
|
||||||
|
<pre><code class="language-bash">DCGM_FIELD_IDS=1001,1002,1003,1004,1005,1009,1010
|
||||||
|
|
||||||
|
dcgmi dmon \
|
||||||
|
-e 1001,1002,1003,1004,1005,1009,1010 \
|
||||||
|
-d 1000</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Field ID</th><th>Field Tag</th><th>含义</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>1001</td><td><code>gr_engine_active</code></td><td>Graphics/Compute Engine 活跃比例,接近整体 GPU 执行忙碌度</td></tr>
|
||||||
|
<tr><td>1002</td><td><code>sm_active</code></td><td>SM 至少有一个 Warp 活跃的比例</td></tr>
|
||||||
|
<tr><td>1003</td><td><code>sm_occupancy</code></td><td>活跃 Warp 相对硬件可容纳 Warp 的比例</td></tr>
|
||||||
|
<tr><td>1004</td><td><code>tensor_active</code></td><td>Tensor Core 指令活跃比例</td></tr>
|
||||||
|
<tr><td>1005</td><td><code>dram_active</code></td><td>设备显存接口活跃比例;Pro6000D 为 GDDR7,用于判断设备显存带宽压力</td></tr>
|
||||||
|
<tr><td>1009</td><td><code>pcie_tx_bytes</code></td><td>GPU 经 PCIe 发出的字节速率</td></tr>
|
||||||
|
<tr><td>1010</td><td><code>pcie_rx_bytes</code></td><td>GPU 经 PCIe 接收的字节速率</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<code>sm_active</code> 高而 <code>sm_occupancy</code> 低,表示 SM 经常有工作,
|
||||||
|
但同时驻留的 Warp 不多;后续通过 Kernel Timeline 区分小 Kernel、
|
||||||
|
寄存器/共享内存约束和同步。DCGM 是 NVIDIA Data Center GPU Manager:
|
||||||
|
<code>nvidia-dcgm</code>/<code>nv-hostengine</code> 是后台 Host Engine,
|
||||||
|
<code>dcgmi</code> 是客户端,Field ID 是指标编号。最终代码在两节点预检
|
||||||
|
<code>dcgmi discovery -l</code>,任一 Host Engine 不可用即 fail-fast;
|
||||||
|
正式结果必须同时包含 Head 和 Worker 的 <code>case_dcgm_summary.csv</code>。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.4 CPU、进程与 Kernel Launch 侧证据</h3>
|
||||||
|
<pre><code class="language-bash"># 全部逻辑 CPU,每 5 秒输出一次
|
||||||
|
mpstat -P ALL 5
|
||||||
|
|
||||||
|
# 找到容器内进程对应的宿主 PID
|
||||||
|
docker top <container> -eo pid,ppid,psr,pcpu,pmem,stat,comm,args
|
||||||
|
|
||||||
|
# 最终命令:进程级 CPU、I/O、缺页、上下文切换,不展开全部线程
|
||||||
|
pidstat -durw -p "<comma-separated-host-pids>" 5
|
||||||
|
|
||||||
|
# 每 5 秒输出一次硬件/软件计数器增量
|
||||||
|
perf stat -p "<comma-separated-host-pids>" -I 5000 \
|
||||||
|
-e cycles,instructions,cache-misses,context-switches,\
|
||||||
|
cpu-migrations,page-faults
|
||||||
|
|
||||||
|
# mpstat/pidstat/perf 每行都由包装器增加:
|
||||||
|
# wall_time_ns TAB node TAB 原始输出</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>命令/字段</th><th>回答的问题</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>mpstat -P ALL</code></td><td>整机是否 CPU 饱和,是否只有少量核心接近 100%,是否存在 I/O Wait</td></tr>
|
||||||
|
<tr><td><code>docker top</code></td><td>把容器进程映射为宿主 PID、CPU 核 <code>PSR</code> 和进程状态</td></tr>
|
||||||
|
<tr><td><code>pidstat -u</code></td><td>服务进程的用户态、内核态 CPU 时间</td></tr>
|
||||||
|
<tr><td><code>pidstat -d</code></td><td>进程块设备 I/O</td></tr>
|
||||||
|
<tr><td><code>pidstat -r</code></td><td>内存和 Page Fault 行为</td></tr>
|
||||||
|
<tr><td><code>pidstat -w</code></td><td>主动/被动上下文切换,辅助发现线程阻塞或调度抖动</td></tr>
|
||||||
|
<tr><td><code>perf cycles/instructions</code></td><td>CPU 周期与指令执行量,可计算近似 IPC</td></tr>
|
||||||
|
<tr><td><code>cache-misses/migrations</code></td><td>CPU Cache 压力和线程跨核迁移</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
最终实现使用进程级 5 秒采样,避免首轮线程级 1 秒采样产生数百 MB 日志。
|
||||||
|
<code>case_cpu_summary.csv</code>、<code>case_process_summary.csv</code> 和
|
||||||
|
<code>case_perf_summary.csv</code> 都按正式测量窗口切片;只有先发现异常进程,
|
||||||
|
才在后续短窗口单独开启线程级采样。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.5 NUMA 与 CPU/内存亲和</h3>
|
||||||
|
<pre><code class="language-bash"># 静态 NUMA 节点、CPU 和内存布局
|
||||||
|
numactl --hardware
|
||||||
|
numastat -m
|
||||||
|
|
||||||
|
# 每 5 秒按容器宿主 PID 查看本地/远端 NUMA 内存
|
||||||
|
numastat -p <host-pid>
|
||||||
|
# 解析为:
|
||||||
|
# wall_time_ns,node,node0_mib,node1_mib,total_mib,process_count
|
||||||
|
|
||||||
|
# 同时保存 GPU、CPU、NIC 的拓扑关系
|
||||||
|
nvidia-smi topo -m</code></pre>
|
||||||
|
<p>
|
||||||
|
NUMA 是多路 CPU 机器的“本地内存”结构。进程长期从远端 NUMA Node 取内存,
|
||||||
|
或 GPU/NIC 对应的 CPU 线程被调度到另一侧,可能增加 Host 侧延迟。
|
||||||
|
最终采集器把 <code>numastat -p</code> 解析为
|
||||||
|
<code>numa_samples.csv</code>,再按正式测量窗口生成
|
||||||
|
<code>case_numa_summary.csv</code>。这样可以直接比较 Node0/Node1 MiB,
|
||||||
|
而不是依靠人工阅读不断刷新的文本。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.6 普通网卡统计与 RDMA 数据面</h3>
|
||||||
|
<pre><code class="language-bash"># Linux netdev 层,每 5 秒采样吞吐与错误
|
||||||
|
sar -n DEV,EDEV 5
|
||||||
|
|
||||||
|
# Case 前后保存物理端口状态和驱动计数器
|
||||||
|
ethtool eth0
|
||||||
|
ethtool eth3
|
||||||
|
ethtool -S eth0
|
||||||
|
ethtool -S eth3
|
||||||
|
|
||||||
|
# RDMA 设备与端口状态
|
||||||
|
ibdev2netdev
|
||||||
|
ibstat
|
||||||
|
rdma link show</code></pre>
|
||||||
|
<p>
|
||||||
|
<code>sar</code> 记录 Linux 普通网络栈中的 <code>eth0/eth3</code> 流量;
|
||||||
|
GDRDMA 数据量由 <code>mlx5_0/mlx5_3</code> HCA 的 sysfs Counter 记录:
|
||||||
|
</p>
|
||||||
|
<pre><code class="language-bash">for hca in mlx5_0 mlx5_3; do
|
||||||
|
base="/sys/class/infiniband/${hca}/ports/1"
|
||||||
|
cat "${base}/counters/port_xmit_data"
|
||||||
|
cat "${base}/counters/port_rcv_data"
|
||||||
|
cat "${base}/counters/port_xmit_wait"
|
||||||
|
cat "${base}/counters/port_xmit_discards"
|
||||||
|
cat "${base}/counters/port_rcv_errors"
|
||||||
|
cat "${base}/hw_counters/req_transport_retries_exceeded"
|
||||||
|
cat "${base}/hw_counters/req_rnr_retries_exceeded"
|
||||||
|
done</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Counter</th><th>含义</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>port_xmit_data/port_rcv_data</code></td><td>HCA 发送/接收数据累计量;IB Counter 单位是 4 Octets,脚本用 <code>delta × 4 × 8 / seconds</code> 换算 Gbit/s</td></tr>
|
||||||
|
<tr><td><code>port_xmit_wait</code></td><td>端口因缺少发送 Credit 等原因等待的时间,持续增长可能指向拥塞</td></tr>
|
||||||
|
<tr><td><code>port_xmit_discards/port_rcv_errors</code></td><td>发送丢弃和接收错误增量</td></tr>
|
||||||
|
<tr><td><code>req_transport_retries_exceeded</code></td><td>RDMA Transport 重试耗尽</td></tr>
|
||||||
|
<tr><td><code>req_rnr_retries_exceeded</code></td><td>Receiver Not Ready 重试耗尽</td></tr>
|
||||||
|
<tr><td><code>roce_adp_retrans*</code></td><td>RoCE 自适应重传及超时相关计数</td></tr>
|
||||||
|
<tr><td><code>np_ecn_marked* / *cnp*</code></td><td>ECN 标记和拥塞通知包,用于辅助判断 RoCE 拥塞</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
原始数据为 <code>head|worker/rdma.csv</code>;
|
||||||
|
<code>case_rdma_summary.csv</code> 按 Case、节点和 HCA 计算吞吐及错误增量。
|
||||||
|
它说明双 Rail 的实际流量、均衡性和错误增量;
|
||||||
|
<code>case_netdev_summary.csv</code> 同时保留 Linux netdev 层的
|
||||||
|
<code>eth0/eth3</code> RX/TX 与错误。Phase 3 再把 NCCL Collective
|
||||||
|
放到请求 Timeline 中分析持续时间和计算重叠。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.7 机内 PCIe 与 NCCL 通信基线</h3>
|
||||||
|
<pre><code class="language-bash"># 由 all 入口自动执行;不需要用户手工运行 torchrun
|
||||||
|
# 每个节点:所有 GPU 源/目标对,FP16 256 MiB CUDA P2P copy
|
||||||
|
python3 communication_baseline.py p2p \
|
||||||
|
--size 256M --warmup 3 --iterations 10
|
||||||
|
|
||||||
|
# 每个节点:8 rank NCCL AllReduce
|
||||||
|
torchrun --standalone --nproc-per-node=8 \
|
||||||
|
communication_baseline.py all-reduce \
|
||||||
|
--sizes 1M,64M,1G --repetitions 3 --warmup 5 --iterations 10
|
||||||
|
|
||||||
|
# 双节点:16 rank;分别设置 NCCL_CROSS_NIC=0、1、2
|
||||||
|
torchrun --nnodes=2 --nproc-per-node=8 \
|
||||||
|
--master-addr 10.101.0.11 --node-rank <0-or-1> \
|
||||||
|
communication_baseline.py all-reduce \
|
||||||
|
--sizes 1M,64M,1G --repetitions 3 --warmup 5 --iterations 10</code></pre>
|
||||||
|
<p>
|
||||||
|
P2P 结果按 <code>same_pcie_switch</code>(PIX)和
|
||||||
|
<code>cross_numa_sys</code>(SYS)分别汇总,不用一个平均值掩盖跨 CPU 路径。
|
||||||
|
AllReduce 同时报告 P50/P95 latency、<code>algbw</code>、
|
||||||
|
<code>busbw</code>、正确性错误数和实际 NCCL 路径。1 MiB、64 MiB、1 GiB
|
||||||
|
分别覆盖小消息延迟、中等消息和大消息带宽;双机 A/B 直接给出
|
||||||
|
<code>NCCL_CROSS_NIC=0/1/2</code> 的数值比较。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>5.8 静态快照与结果关系</h3>
|
||||||
|
<pre><code class="language-bash">nvidia-smi
|
||||||
|
nvidia-smi topo -m
|
||||||
|
lscpu
|
||||||
|
numactl --hardware
|
||||||
|
ip -details link show eth0
|
||||||
|
ip -details link show eth3
|
||||||
|
docker inspect <container>
|
||||||
|
docker top <container> -eo pid,ppid,psr,pcpu,pmem,stat,comm,args</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>结果文件</th><th>内容</th><th>主要用途</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>static_before.log / static_after.log</code></td><td>GPU、CPU、NUMA、NIC、RDMA、容器前后快照</td><td>证明运行环境,并比较错误计数和清理状态</td></tr>
|
||||||
|
<tr><td><code>collector_status.csv</code></td><td>每个采集器的启动、停止或提前退出状态</td><td>防止把缺失采集器当作 0 值</td></tr>
|
||||||
|
<tr><td><code>case_windows.csv</code></td><td>每个 Benchmark Case 的起止时间</td><td>从连续硬件日志中切片</td></tr>
|
||||||
|
<tr><td><code>bench_summary.csv</code></td><td>TPS、TTFT、TPOT、ITL、E2E</td><td>把硬件现象与用户侧性能对应</td></tr>
|
||||||
|
<tr><td><code>case_gpu_summary.csv</code></td><td>每 Case、节点、GPU 的利用率、显存、功耗、频率</td><td>比较负载与节点/GPU 不均衡</td></tr>
|
||||||
|
<tr><td><code>case_dcgm_summary.csv</code></td><td>每 Case、节点、GPU 的 SM/Tensor/显存接口/PCIe 指标</td><td>区分计算、设备显存和 PCIe 活跃度</td></tr>
|
||||||
|
<tr><td><code>case_cpu_summary.csv</code></td><td>整机与逐核 CPU 利用率、I/O Wait</td><td>识别整机饱和和少数热点核</td></tr>
|
||||||
|
<tr><td><code>case_process_summary.csv</code></td><td>服务进程 CPU、I/O、缺页、内存与上下文切换</td><td>定位 Host 进程开销与阻塞</td></tr>
|
||||||
|
<tr><td><code>case_perf_summary.csv</code></td><td>cycles、instructions、cache miss、迁移与缺页</td><td>计算 IPC 并判断 Cache/调度压力</td></tr>
|
||||||
|
<tr><td><code>case_numa_summary.csv</code></td><td>Node0/Node1 进程内存分布</td><td>识别跨 NUMA 放置</td></tr>
|
||||||
|
<tr><td><code>case_netdev_summary.csv</code></td><td><code>eth0/eth3</code> 吞吐与错误</td><td>与 RDMA HCA Counter 做分层核对</td></tr>
|
||||||
|
<tr><td><code>case_rdma_summary.csv</code></td><td>每 Case、节点、Rail 的吞吐和错误增量</td><td>判断双 Rail 使用、均衡和数据面错误</td></tr>
|
||||||
|
<tr><td><code>communication_summary.csv</code></td><td>每次 P2P/AllReduce 原始测量</td><td>保留每条 GPU 对、消息尺寸、CROSS_NIC 和重复实验</td></tr>
|
||||||
|
<tr><td><code>communication_aggregate.csv</code></td><td>PIX/SYS P2P 与单/双机 AllReduce 聚合</td><td>提供 P50/P95、algbw、busbw 和正确性比较</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>5.9 最终结果如何逐项汇报</h3>
|
||||||
|
<p class="decision">
|
||||||
|
最终 <code>report.md</code> 的章节顺序与本节一一对应。每一项必须同时给出
|
||||||
|
<strong>原始文件、有效样本数、Head/Worker 数值、Case 间变化和解释</strong>;
|
||||||
|
不能只写“GPU 较忙”“网络未饱和”这类抽象结论。
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>第 5 节指标</th><th>报告中的数值</th><th>最小分析动作</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>5.1 时间窗</td><td>窗口来源、开始/结束、duration、采样数</td><td>确认全部为 <code>bench_main_marker_plus_duration</code></td></tr>
|
||||||
|
<tr><td>5.2 GPU</td><td>利用率/显存/功耗/频率的 Mean、P95、Max</td><td>比较两节点、8 卡离散度和不同 Case</td></tr>
|
||||||
|
<tr><td>5.3 DCGM</td><td>SM Active/Occupancy、Tensor/DRAM Active、PCIe TX/RX</td><td>比较计算、设备显存和 PCIe 哪一侧随负载上升</td></tr>
|
||||||
|
<tr><td>5.4 CPU/进程/perf</td><td>整机/热点核、进程 CPU/I/O/缺页/切换、IPC/Cache miss</td><td>区分整机容量、单线程热点和 Host 调度开销</td></tr>
|
||||||
|
<tr><td>5.5 NUMA</td><td>Node0/Node1 MiB 与比例</td><td>比较服务内存是否偏离 GPU/NIC 所在 NUMA</td></tr>
|
||||||
|
<tr><td>5.6 Network/RDMA</td><td>eth0/eth3、mlx5_0/mlx5_3 Gbit/s 与错误增量</td><td>计算双 Rail 均衡比例并核对丢弃/重试</td></tr>
|
||||||
|
<tr><td>5.7 Communication</td><td>PIX/SYS P2P、8/16 rank AllReduce P50/P95、algbw/busbw</td><td>比较跨 NUMA 损失与 CROSS_NIC 0/1/2</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
某个采集器无数据时报告显示 <code>-</code> 并附失败状态,不会把缺失值写成
|
||||||
|
<code>0</code>。正式 Run 默认 <code>ALLOW_PARTIAL_COLLECTORS=0</code>,
|
||||||
|
因此必需采集器提前退出会让 Run 失败。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>6. 精简代码设计</h2>
|
||||||
|
<p>已新增目录:</p>
|
||||||
|
<pre><code>/data/hzy/sskj/experiments/pro6000/
|
||||||
|
dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/</code></pre>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>文件</th><th>职责</th><th>当前状态</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><code>run_hardware_contention_attribution.sh</code></td><td>唯一 Shell 入口;按 Run 分发通信代码、通信基线、服务启停、双节点采集器、Case 编排、门禁和 Trap 清理</td><td class="pass">已实现</td></tr>
|
||||||
|
<tr><td><code>config.env</code></td><td>Phase 1 相对路径、节点、代表 Case、分层采样周期、通信基线与 fail-closed 策略</td><td class="pass">已实现</td></tr>
|
||||||
|
<tr><td><code>communication_baseline.py</code></td><td>CUDA P2P 全矩阵与 PyTorch/NCCL 8/16-rank AllReduce 微基准</td><td class="pass">已实现</td></tr>
|
||||||
|
<tr><td><code>hardware_contention_attribution.py</code></td><td>精确窗口、全部采集器解析、逐 Case 汇总、通信聚合和逐指标报告</td><td class="pass">已实现</td></tr>
|
||||||
|
<tr><td><code>tests/test_hardware_contention_attribution.py</code></td><td>Worker 无仓库依赖、GPU/RDMA、精确窗口、DCGM/CPU 解析、通信聚合和结果生成测试</td><td class="pass">9/9 通过</td></tr>
|
||||||
|
<tr><td><code>README.md</code></td><td>唯一入口、范围和结果目录说明</td><td class="pass">已实现</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p class="decision">
|
||||||
|
Phase 2 不复制双机 Docker 启停实现。唯一入口在内部调用 Phase 1 的
|
||||||
|
<code>run_quick_map.sh start/fixed/mixed/stop</code>,只新增通信基线、硬件采集、时间对齐和代表负载编排。
|
||||||
|
顶层仍只保留一个 Shell 文件,不创建额外 tmux、launch、start 或 stop 脚本。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>7. 结果结构</h2>
|
||||||
|
<pre><code>results/<RUN_ID>/
|
||||||
|
manifest.json
|
||||||
|
run.log
|
||||||
|
bench/
|
||||||
|
bench_cmd.txt
|
||||||
|
bench.log
|
||||||
|
bench.jsonl
|
||||||
|
service/
|
||||||
|
head_server_cmd.txt
|
||||||
|
worker_server_cmd.txt
|
||||||
|
head_server.log
|
||||||
|
worker_server.log
|
||||||
|
communication/
|
||||||
|
communication_baseline.py
|
||||||
|
communication_baseline.sha256
|
||||||
|
p2p_head.log
|
||||||
|
p2p_worker.log
|
||||||
|
allreduce_head_8gpu.log
|
||||||
|
allreduce_worker_8gpu.log
|
||||||
|
allreduce_two_node_x0.log
|
||||||
|
allreduce_two_node_x1.log
|
||||||
|
allreduce_two_node_x2.log
|
||||||
|
head/
|
||||||
|
gpu_samples.csv
|
||||||
|
dcgm_dmon.log
|
||||||
|
mpstat.log
|
||||||
|
pidstat.log
|
||||||
|
sar_net.log
|
||||||
|
perf_stat.log
|
||||||
|
docker_top.log
|
||||||
|
numa_samples.csv
|
||||||
|
rdma.csv
|
||||||
|
static_before.log
|
||||||
|
static_after.log
|
||||||
|
collector_commands/
|
||||||
|
worker/
|
||||||
|
...
|
||||||
|
collector_status.csv
|
||||||
|
markers.csv
|
||||||
|
bench_summary.csv
|
||||||
|
gpu_summary.csv
|
||||||
|
rdma_summary.csv
|
||||||
|
case_windows.csv
|
||||||
|
communication_summary.csv
|
||||||
|
communication_aggregate.csv
|
||||||
|
case_gpu_summary.csv
|
||||||
|
case_gpu_node_summary.csv
|
||||||
|
case_dcgm_summary.csv
|
||||||
|
case_cpu_summary.csv
|
||||||
|
case_process_summary.csv
|
||||||
|
case_perf_summary.csv
|
||||||
|
case_numa_summary.csv
|
||||||
|
case_netdev_summary.csv
|
||||||
|
case_rdma_summary.csv
|
||||||
|
summary.json
|
||||||
|
report.md</code></pre>
|
||||||
|
|
||||||
|
<h2>8. 最终验收</h2>
|
||||||
|
<ul>
|
||||||
|
<li class="pass">最终 Run <code>dsv4pro-phase2-20260731-163620</code> 状态为 <code>COMPLETED</code>,8/8 benchmark 成功,0 失败、0 OOM。</li>
|
||||||
|
<li class="pass">8/8 Case 使用正式 benchmark 精确时间窗;18 个采集器全部记录 <code>STARTED</code> 与 <code>STOPPED</code>。</li>
|
||||||
|
<li class="pass">Head 与 Worker 的 DCGM、GPU、CPU、进程、NUMA、网卡和 HCA Counter 均有有效样本。</li>
|
||||||
|
<li class="pass">P2P、8-rank 和 16-rank AllReduce 全部完成,所有正确性检查均为 <code>wrong_values=0</code>。</li>
|
||||||
|
<li class="pass">Run 结束后 Head/Worker 无相关容器、无 GPU 计算进程,端口 <code>30002/30003</code> 已释放。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>9. 正式运行</h2>
|
||||||
|
<p class="decision">
|
||||||
|
<strong>Run:<code>dsv4pro-phase2-20260731-163620</code>。</strong>
|
||||||
|
运行时间为 16:36:20 至 17:05:04 CST,总用时 28 分 44 秒。
|
||||||
|
Manifest 记录代码提交 <code>5f24b7d22f98108f6cc234edba6768d55ea0a962</code>,
|
||||||
|
<code>git_dirty=false</code>。
|
||||||
|
</p>
|
||||||
|
<pre><code class="language-bash"># 仅在 Head 174.1.51.5 执行
|
||||||
|
cd /data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution
|
||||||
|
|
||||||
|
RUN_ID=dsv4pro-phase2-20260731-163620
|
||||||
|
tmux new-session -d -s dsv4pro-phase2 \
|
||||||
|
"RUN_ID=${RUN_ID} bash run_hardware_contention_attribution.sh all \
|
||||||
|
2>&1 | tee /data/hzy/${RUN_ID}.log"</code></pre>
|
||||||
|
|
||||||
|
<h2>10. 端到端结果</h2>
|
||||||
|
<h3>10.1 五个代表负载</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>Case</th><th>Input TPS</th><th>Output TPS</th><th>TTFT P95</th><th>TPOT P95</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>128K → 1, C=1</td><td>2,641.38</td><td>0.02</td><td>49.610 s</td><td>—</td></tr>
|
||||||
|
<tr><td>32K → 1, C=16</td><td>3,115.45</td><td>0.10</td><td>161.938 s</td><td>—</td></tr>
|
||||||
|
<tr><td>1K → 1K, C=32</td><td>448.95</td><td>448.95</td><td>10.167 s</td><td>65.36 ms</td></tr>
|
||||||
|
<tr><td>1K → 4K, C=16</td><td>79.39</td><td>317.56</td><td>1.724 s</td><td>49.98 ms</td></tr>
|
||||||
|
<tr><td>128K → 1K, C=1</td><td>1,614.99</td><td>12.62</td><td>48.279 s</td><td>32.11 ms</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>10.2 混合 Prefill/Decode A/B</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr><th>Decode 指标</th><th>Control</th><th>注入 128K Prefill</th><th>变化</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Output TPS</td><td>453.55</td><td>344.89</td><td>-23.96%</td></tr>
|
||||||
|
<tr><td>TTFT P95</td><td>9.443 s</td><td>9.892 s</td><td>+4.76%</td></tr>
|
||||||
|
<tr><td>TPOT P95</td><td>66.24 ms</td><td>110.45 ms</td><td>+66.75%</td></tr>
|
||||||
|
<tr><td>E2E P95</td><td>72.270 s</td><td>118.076 s</td><td>+63.38%</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
这是 Phase 2 最关键的现象:长 Prefill 与 Decode 共存时,首 token 延迟只增加
|
||||||
|
4.76%,但 Decode 单 token 成本增加 66.75%,最终令 Output TPS 下降 23.96%。
|
||||||
|
问题主要发生在持续 Decode 阶段,而不是只表现为 Prefill 请求排队。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>11. 第 5 节指标逐项结果</h2>
|
||||||
|
<h3>11.1 GPU 基础状态与 DCGM</h3>
|
||||||
|
<ul>
|
||||||
|
<li>各 Case GPU Util Mean 大多为 94%–99%,P95 为 100%;SM Clock 约 2.39–2.42 GHz,未见降频。</li>
|
||||||
|
<li>每卡显存稳定在约 83,000–83,364 MiB。Decode 功耗约 216–258 W,Prefill 功耗约 293–307 W。</li>
|
||||||
|
<li>普通 Decode 的 SM Active 约 0.523–0.525、DRAM Active 约 0.415–0.417;128K Prefill 的 SM Active 升至 0.683–0.686。</li>
|
||||||
|
<li>32K C16 Prefill 的 SM Active 约 0.713–0.715、DRAM Active 约 0.440,是本轮最重的并发 Prefill 计算负载。</li>
|
||||||
|
<li>混合 Treatment 中,Decode 背景 SM Active 约 0.578–0.581;注入 Prefill 窗口升至 0.720–0.723,证明两类工作确实争用同一 GPU 执行资源。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>11.2 CPU、进程与 NUMA</h3>
|
||||||
|
<ul>
|
||||||
|
<li>整机 CPU Active Mean 约 9.6%–10.4%,P95 约 10%–11.4%;没有全机 CPU 饱和。</li>
|
||||||
|
<li>服务进程峰值约 1,210%–1,226%,相当于约 12 个 CPU Core;热点 Core 数量最多 12–13 个。</li>
|
||||||
|
<li><code>perf</code> 观察到 IPC 约 2.7–3.1,未出现明显 Host 侧停摆。</li>
|
||||||
|
<li>Head/Worker 的 NUMA 不均衡约 21.1% / 13.2%,跨 Case 基本稳定;它是拓扑基线,但不像混合性能退化的直接诱因。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>11.3 双 Rail RDMA</h3>
|
||||||
|
<ul>
|
||||||
|
<li>RoCE 绕过普通 Linux Socket 数据路径,因此 <code>sar</code> 的 <code>eth0/eth3</code> 流量接近 0;实际流量必须看 <code>mlx5_0/mlx5_3</code> HCA Counter。</li>
|
||||||
|
<li>普通 Decode 每 Rail 约 36.7–36.8 Gbit/s;128K Prefill 每 Rail约 70.5–71.5 Gbit/s。</li>
|
||||||
|
<li>最高点 32K C16 Prefill 每 Rail 约 83.0–83.45 Gbit/s,仅约占单条 400G Rail 的 20.9%。</li>
|
||||||
|
<li>两条 Rail 流量对称,<code>port_xmit_wait</code>、丢弃、错误和 Retry Exceeded 增量均为 0。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>11.4 PCIe 与 NCCL 通信基线</h3>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>测试</th><th>结果</th><th>解释</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Head PCIe P2P 256 MiB</td><td>同 Switch 53.61 GB/s;跨 NUMA 52.40 GB/s</td><td>跨 NUMA 损失约 2.3%</td></tr>
|
||||||
|
<tr><td>Worker PCIe P2P 256 MiB</td><td>同 Switch 53.50 GB/s;跨 NUMA 52.32 GB/s</td><td>两节点表现对称</td></tr>
|
||||||
|
<tr><td>Head / Worker 8-GPU AllReduce 1 GiB</td><td>busbw 39.76 / 39.75 GB/s</td><td>节点内基线一致</td></tr>
|
||||||
|
<tr><td>16-GPU AllReduce,CROSS_NIC=0</td><td>busbw 39.345 GB/s;51.169 ms</td><td>正确性 0 错误</td></tr>
|
||||||
|
<tr><td>16-GPU AllReduce,CROSS_NIC=1</td><td>busbw 39.685 GB/s;50.732 ms</td><td>本轮数值最好</td></tr>
|
||||||
|
<tr><td>16-GPU AllReduce,CROSS_NIC=2</td><td>busbw 39.530 GB/s;50.931 ms</td><td>正确性 0 错误</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<code>NCCL_CROSS_NIC=1</code> 比 0 仅高 0.86%,比 2 仅高 0.39%。
|
||||||
|
差异小于 1%,不足以把它当成主要调优旋钮;保留当前值即可,Phase 3 不再重复测试。
|
||||||
|
NCCL 日志明确证明跨机路径使用 <code>mlx5_0,mlx5_3</code> 和
|
||||||
|
<code>NET/IB/.../GDRDMA</code>。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>12. 结论与 Phase 3 入口</h2>
|
||||||
|
<p class="decision">
|
||||||
|
<strong>Phase 2 已把范围明显缩小:</strong>混合 Prefill/Decode 退化真实且稳定,
|
||||||
|
但不是由整机 CPU 饱和、GPU 降频、双 Rail 原始带宽饱和、Rail 失衡、
|
||||||
|
PCIe 跨 NUMA 带宽崩塌或 <code>NCCL_CROSS_NIC</code> 选择造成。
|
||||||
|
Phase 3 应只捕获 Control 与 Treatment 的短时间线,定位 Attention/Indexer、
|
||||||
|
MoE、NCCL Collective、Scheduler gap 和慢 Rank 同步之间的串行与重叠关系。
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>不重复 Phase 2 的长时间 DCGM、CPU、RDMA 和通信微基准。</li>
|
||||||
|
<li>优先对比混合 Control 与注入 128K Prefill 的 Treatment。</li>
|
||||||
|
<li>再用单独 128K Prefill 作为 Kernel 对照,解释 SM Active 与 Tensor Active 的来源。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>13. 证据与清理说明</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/report.md">自动生成逐指标报告</a></li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/analysis.md">阶段归因摘要</a></li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/bench_summary.csv">端到端 benchmark 汇总</a></li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/communication_aggregate.csv">通信微基准汇总</a></li>
|
||||||
|
<li><a href="./results/dsv4pro-phase2-20260731-163620/service/head_server_cmd.txt">Head 实际服务命令</a> /
|
||||||
|
<a href="./results/dsv4pro-phase2-20260731-163620/service/worker_server_cmd.txt">Worker 实际服务命令</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Worker 日志在所有 benchmark 完成后的编排关闭阶段出现 Gloo
|
||||||
|
<code>Connection closed by peer</code>;时间与 Head 主动退出进程组一致,
|
||||||
|
未影响 8/8 结果。NCCL 日志中的可选 mlx5 symbol 探测提示同样未影响
|
||||||
|
Collective,全部正确性检查为 0 错误。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p><a class="back" href="./phase1_exp.html">返回 Phase 1 实验档案</a></p>
|
||||||
|
<p><a class="back" href="./推理优化计划.html">返回推理优化主计划</a></p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
# Phase 2 Hardware Attribution Summary
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
- Run ID: `dsv4pro-phase2-20260731-163620`
|
||||||
|
- Status: `COMPLETED`
|
||||||
|
- Duration: 2026-07-31 16:36:20 to 17:05:04 CST, 28m44s
|
||||||
|
- Benchmarks: 8/8 successful
|
||||||
|
- Precise benchmark windows: 8/8
|
||||||
|
- Collectors: 18 started, 18 stopped
|
||||||
|
- Run commit: `5f24b7d22f98108f6cc234edba6768d55ea0a962`
|
||||||
|
- Git dirty: `false`
|
||||||
|
|
||||||
|
## Main Result
|
||||||
|
|
||||||
|
Injecting one 128K prefill request into the `1K -> 1K, C=32` decode workload caused:
|
||||||
|
|
||||||
|
| Metric | Control | Treatment | Delta |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| Output TPS | 453.55 | 344.89 | -23.96% |
|
||||||
|
| TTFT P95 | 9.443 s | 9.892 s | +4.76% |
|
||||||
|
| TPOT P95 | 66.24 ms | 110.45 ms | +66.75% |
|
||||||
|
| E2E P95 | 72.270 s | 118.076 s | +63.38% |
|
||||||
|
|
||||||
|
The dominant impact is sustained decode slowdown, not only first-token queueing.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
- GPU utilization is generally 94-99%, with stable 2.39-2.42 GHz clocks. There is no evidence of frequency collapse.
|
||||||
|
- Whole-host CPU active is about 9.6-10.4%; CPU capacity is not globally saturated.
|
||||||
|
- Head and Worker show similar GPU, CPU and communication behavior. There is no obvious slow-node imbalance.
|
||||||
|
- The highest measured RDMA traffic is about 83.5 Gbit/s per 400G rail. Both rails are balanced, with zero wait/error/discard/retry deltas.
|
||||||
|
- PCIe P2P bandwidth is about 53.5 GB/s within a switch and 52.3-52.4 GB/s across NUMA, only about a 2.3% difference.
|
||||||
|
- 16-GPU 1 GiB AllReduce bus bandwidth is 39.345/39.685/39.530 GB/s for `NCCL_CROSS_NIC=0/1/2`. The spread is below 1%.
|
||||||
|
|
||||||
|
The evidence excludes raw rail saturation, whole-host CPU saturation, GPU clock throttling, severe PCIe cross-NUMA collapse, and `NCCL_CROSS_NIC` selection as the primary cause.
|
||||||
|
|
||||||
|
## Phase 3 Target
|
||||||
|
|
||||||
|
Capture short Control/Treatment timelines and identify:
|
||||||
|
|
||||||
|
1. Attention/indexer and MoE kernel serialization.
|
||||||
|
2. NCCL collective placement and compute/communication overlap.
|
||||||
|
3. Scheduler or CPU launch gaps.
|
||||||
|
4. Slow-rank synchronization around injected prefill.
|
||||||
|
|
||||||
|
Do not repeat Phase 2's long-running DCGM, CPU, RDMA or communication microbenchmarks.
|
||||||
|
|
||||||
|
## Cleanup
|
||||||
|
|
||||||
|
After the run, both nodes had no related Docker containers, no GPU compute processes, and no listeners on the Phase 2 service ports. Worker Gloo `Connection closed by peer` tracebacks occurred during orchestrated shutdown after all benchmarks completed and did not affect the results.
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
run_id,suite,case_id,role,stage,repetition,isl,osl,concurrency,num_prompts,warmup_requests,status,error_type,exit_code,started_at,ended_at,elapsed_s,measurement_started_at,measurement_ended_at,measurement_duration_s,measurement_window_source,completed,failed,duration_s,actual_concurrency,peak_concurrent_requests,total_input_tokens,total_output_tokens,request_throughput,input_token_throughput,output_token_throughput,total_token_throughput,peak_output_token_throughput,e2e_mean_ms,e2e_p50_ms,e2e_p95_ms,e2e_p99_ms,ttft_mean_ms,ttft_p50_ms,ttft_p95_ms,ttft_p99_ms,tpot_mean_ms,tpot_p50_ms,tpot_p95_ms,tpot_p99_ms,itl_mean_ms,itl_p50_ms,itl_p95_ms,itl_p99_ms,bench_file,bench_log,phase2_bench_run
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,fixed,decode_throughput_1k_to_1k_c32,,decode_throughput,1,1024,1024,32,32,1,COMPLETED,,0,2026-07-31T16:49:35+0800,2026-07-31T16:51:24+0800,109.0,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.98790900100721,bench_main_marker_plus_duration,32,0,72.98790900100721,31.973027693348868,,32768,32768,0.43842878139663394,448.95107215015315,448.95107215015315,897.9021443003063,,72926.38861777596,72926.03143348242,72939.17302195623,72943.4486198437,8317.972617309351,8423.306765995221,10166.788510262268,10167.903182043228,63.155831867513776,63.05236280694347,65.35758210354297,67.36198566667542,63.155803331197355,61.26605049939826,62.53751848998945,65.70577920065261,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_decode_throughput_1k_to_1k_c32/cases/decode_throughput_1k_to_1k_c32/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_decode_throughput_1k_to_1k_c32/cases/decode_throughput_1k_to_1k_c32/rep1/bench.log,fixed_decode_throughput_1k_to_1k_c32
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,fixed,long_context_decode_128k_to_1k_c1,,long_context_decode,1,131072,1024,1,1,0,COMPLETED,,0,2026-07-31T16:55:45+0800,2026-07-31T16:57:39+0800,114.0,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.1598442849936,bench_main_marker_plus_duration,1,0,81.1598442849936,0.9995611458686556,,131072,1024,0.012321364201839645,1614.985848663526,12.617076942683797,1627.6029256062097,,81124.22695202986,81124.22695202986,81124.22695202986,81124.22695202986,48279.420554987155,48279.420554987155,48279.420554987155,48279.420554987155,32.106360114411245,32.106360114411245,32.106360114411245,32.106360114411245,32.10634595800085,32.09696803241968,32.28448228328489,32.53332086256705,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_context_decode_128k_to_1k_c1/cases/long_context_decode_128k_to_1k_c1/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_context_decode_128k_to_1k_c1/cases/long_context_decode_128k_to_1k_c1/rep1/bench.log,fixed_long_context_decode_128k_to_1k_c1
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,fixed,long_output_decode_1k_to_4k_c16,,long_output_decode,1,1024,4096,16,16,1,COMPLETED,,0,2026-07-31T16:51:33+0800,2026-07-31T16:55:36+0800,243.0,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074682698585,bench_main_marker_plus_duration,16,0,206.37074682698585,15.99550577130734,,16384,65536,0.07753036826199912,79.3910971002871,317.5643884011484,396.95548550143553,,206312.77949375362,206311.27990750247,206327.66740498482,206328.1800113793,1697.1331631830253,1714.9575955118053,1723.5681610036409,1724.2807810165687,49.96719080111614,49.96277789426234,49.98305734157135,50.02649938860528,49.96718302440562,49.99568348284811,50.960358188604005,53.57307427912019,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_output_decode_1k_to_4k_c16/cases/long_output_decode_1k_to_4k_c16/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_output_decode_1k_to_4k_c16/cases/long_output_decode_1k_to_4k_c16/rep1/bench.log,fixed_long_output_decode_1k_to_4k_c16
|
||||||
|
fixed_long_prefill_latency_128k_c1,fixed,long_prefill_latency_128k_c1,,prefill_latency,1,131072,1,1,1,0,COMPLETED,,0,2026-07-31T16:44:30+0800,2026-07-31T16:45:54+0800,84.0,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567456041,bench_main_marker_plus_duration,1,0,49.622567456041,0.9997500965858968,,131072,1,0.02015212132838284,2641.3788467537956,0.02015212132838284,2641.398998875124,,49610.16660701716,49610.16660701716,49610.16660701716,49610.16660701716,49610.14223104576,49610.14223104576,49610.14223104576,49610.14223104576,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_prefill_latency_128k_c1/cases/long_prefill_latency_128k_c1/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_prefill_latency_128k_c1/cases/long_prefill_latency_128k_c1/rep1/bench.log,fixed_long_prefill_latency_128k_c1
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,fixed,mid_prefill_throughput_32k_c16,,prefill_throughput,1,32768,1,16,16,0,COMPLETED,,0,2026-07-31T16:46:03+0800,2026-07-31T16:49:26+0800,203.0,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.2866359280306,bench_main_marker_plus_duration,16,0,168.2866359280306,8.764467555247327,,524288,16,0.09507587998159613,3115.446435236942,0.09507587998159613,3115.5415111169236,,92183.92253580896,92587.60345654446,161938.1903584872,166972.64813809306,92183.87291699764,92587.55126551841,161938.13879448862,166972.5966172962,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_mid_prefill_throughput_32k_c16/cases/mid_prefill_throughput_32k_c16/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_mid_prefill_throughput_32k_c16/cases/mid_prefill_throughput_32k_c16/rep1/bench.log,fixed_mid_prefill_throughput_32k_c16
|
||||||
|
mixed_prefill_decode_interference,mixed,decode_control_1k_to_1k_c32,control,mixed_interference,1,1024,1024,32,64,1,COMPLETED,,0,2026-07-31T16:57:48+0800,2026-07-31T17:00:49+0800,181.0,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.4964013720164,bench_main_marker_plus_duration,64,0,144.4964013720164,31.983334150914263,,65536,65536,0.4429176048144437,453.54762732999035,453.54762732999035,907.0952546599807,,72210.57326071605,72215.36969349836,72269.92528844276,72271.96539751603,7325.20390184618,6846.627883001929,9442.68154159945,9444.044730461319,63.426558513069274,63.83972124386403,66.23843437823616,68.16205457722045,63.42653002822952,61.320325010456145,62.66533228044864,65.59292251302395,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_control_1k_to_1k_c32/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_control_1k_to_1k_c32/rep1/bench.log,mixed_prefill_decode_interference
|
||||||
|
mixed_prefill_decode_interference,mixed,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,1024,1024,32,64,0,COMPLETED,,0,2026-07-31T17:00:49+0800,2026-07-31T17:04:32+0800,223.0,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.02009954402456,bench_main_marker_plus_duration,64,0,190.02009954402456,31.986201956249488,,65536,65536,0.3368064754916742,344.8898309034744,344.8898309034744,689.7796618069488,,94969.08249627813,94968.0481730029,118076.02923363738,118079.88882219535,7606.184888919415,7407.497464475455,9891.837346865213,9893.77336708887,85.3987268889137,86.89664765445467,110.451060616212,111.28696239483178,85.39869778190757,61.08463852433488,61.97826337593142,65.3158738068305,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_with_128k_prefill_1k_to_1k_c32/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_with_128k_prefill_1k_to_1k_c32/rep1/bench.log,mixed_prefill_decode_interference
|
||||||
|
mixed_prefill_decode_interference,mixed,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,131072,1,1,1,0,COMPLETED,,0,2026-07-31T17:01:29+0800,2026-07-31T17:02:47+0800,78.0,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.06182585703209,bench_main_marker_plus_duration,1,0,46.06182585703209,0.9982293388832256,,131072,1,0.02170995138368649,2845.5667477625557,0.02170995138368649,2845.5884577139395,,45980.265973019414,45980.265973019414,45980.265973019414,45980.265973019414,45980.19455798203,45980.19455798203,45980.19455798203,45980.19455798203,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/long_prefill_injection_128k_to_1_c1/rep1/bench.jsonl,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/long_prefill_injection_128k_to_1_c1/rep1/bench.log,mixed_prefill_decode_interference
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,samples,cpu_active_pct_mean,cpu_active_pct_p95,cpu_active_pct_max,iowait_pct_mean,iowait_pct_p95,iowait_pct_max,hot_cores_ge80_mean,hot_cores_ge80_p95,hot_cores_ge80_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,15,10.130666666666666,10.418000000000003,10.459999999999994,0.0,0.0,0.0,10.466666666666667,12.0,12.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,15,9.843333333333332,10.085999999999997,10.099999999999994,0.0,0.0,0.0,10.4,12.0,12.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,17,9.899411764705883,10.292000000000003,10.299999999999997,0.0,0.0,0.0,10.588235294117647,12.0,12.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,17,9.651176470588235,10.089999999999996,10.129999999999995,0.0,0.0,0.0,10.352941176470589,12.0,12.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,41,10.361707317073172,10.519999999999996,10.620000000000005,0.0,0.0,0.0,11.024390243902438,12.0,12.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,41,9.994390243902439,10.090000000000003,10.159999999999997,0.0,0.0,0.0,11.414634146341463,12.0,12.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,10,10.003,10.272999999999996,10.299999999999997,0.0,0.0,0.0,10.1,12.0,12.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,10,9.688,10.180500000000004,10.230000000000004,0.0,0.0,0.0,10.2,12.0,12.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,34,9.985588235294117,10.267000000000003,10.319999999999993,0.0,0.0,0.0,11.058823529411764,12.0,12.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,34,9.84235294117647,10.1135,10.14,0.0,0.0,0.0,11.205882352941176,12.0,12.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,29,10.262758620689656,10.436,10.489999999999995,0.0,0.0,0.0,10.620689655172415,12.0,12.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,29,9.976551724137929,10.108000000000004,10.120000000000005,0.0,0.0,0.0,11.241379310344827,12.0,12.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,38,10.341052631578947,11.3725,12.36,0.0,0.0,0.0,10.868421052631579,12.149999999999999,13.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,38,9.868684210526316,10.091500000000002,10.14,0.0,0.0,0.0,10.868421052631579,12.0,12.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,10,10.212,10.630499999999998,10.950000000000003,0.0,0.0,0.0,11.6,12.549999999999999,13.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,9,10.035555555555556,10.120000000000001,10.14,0.0,0.0,0.0,11.666666666666666,12.0,12.0
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,gpus,samples,gr_engine_active_mean,gr_engine_active_p95,gr_engine_active_max,sm_active_mean,sm_active_p95,sm_active_max,sm_occupancy_mean,sm_occupancy_p95,sm_occupancy_max,tensor_active_mean,tensor_active_p95,tensor_active_max,dram_active_mean,dram_active_p95,dram_active_max,pcie_tx_bytes_per_s_mean,pcie_tx_bytes_per_s_p95,pcie_tx_bytes_per_s_max,pcie_rx_bytes_per_s_mean,pcie_rx_bytes_per_s_p95,pcie_rx_bytes_per_s_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,8,584,0.9710171232876712,0.999,1.0,0.5252157534246575,0.7,0.707,0.14078253424657533,0.291,0.294,0.05895205479452054,0.11499999999999999,0.12,0.41691609589041095,0.499,0.508,5205379813.392123,14778814130.95,15202540154.0,5200970877.481164,14816565450.150002,15254205047.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,8,576,0.9785503472222222,0.999,0.999,0.5226267361111111,0.6872499999999999,0.698,0.14059895833333333,0.28824999999999995,0.293,0.05846874999999999,0.113,0.117,0.4153368055555555,0.495,0.548,5236209935.171875,14647937823.25,16403294625.0,5231738841.786458,14714002991.25,16357346290.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,8,648,0.9613811728395062,0.9990000000000001,0.999,0.5782654320987655,0.76,0.768,0.21059722222222224,0.282,0.284,0.09468981481481482,0.162,0.168,0.3985987654320987,0.44500000000000006,0.479,6763589500.305555,13241413192.75,14068752272.0,6821390469.66821,13261233168.150002,14425674313.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,8,648,0.965466049382716,0.9990000000000001,1.0,0.5789398148148148,0.76,0.768,0.21097993827160494,0.281,0.285,0.09508796296296296,0.162,0.166,0.4005216049382716,0.44600000000000006,0.47,6780236898.856482,13234577683.95,13889246455.0,6837638258.785494,13289110201.45,13879127175.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,8,1648,0.9890279126213591,0.996,0.997,0.4903646844660194,0.5,0.54,0.13298240291262137,0.135,0.202,0.04484769417475728,0.048,0.102,0.41422026699029124,0.427,0.469,2620560854.958738,2632307969.6499996,11954964997.0,2634422729.365898,2682732685.6,10279631228.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,8,1640,0.9897713414634146,0.996,1.0,0.4890847560975609,0.498,0.683,0.13288231707317075,0.135,0.268,0.044690243902439024,0.047,0.129,0.4142451219512195,0.427,0.468,2618598082.628049,2632407781.75,14221424532.0,2633369965.667683,2681936017.75,13880734362.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,8,400,0.9295425,0.999,0.999,0.6828425,0.761,0.769,0.25086,0.282,0.284,0.1358075,0.163,0.168,0.37432499999999996,0.44904999999999995,0.505,10536527950.9525,13519030283.25,15163087193.0,10581948383.175,13517471298.849998,15273700217.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,8,392,0.9359923469387755,0.9989999999999999,1.0,0.6856326530612245,0.76,0.765,0.250795918367347,0.282,0.285,0.13560204081632654,0.162,0.165,0.37558673469387754,0.45324999999999993,0.485,10617939301.517857,13498405363.0,13917911496.0,10632410279.880102,13503375869.85,14629076948.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,8,1344,0.9804598214285715,0.999,1.0,0.7134583333333333,0.739,0.744,0.2776354166666667,0.287,0.288,0.1272514880952381,0.138,0.141,0.4404389880952381,0.467,0.509,12664097012.861607,14053446776.599998,15685065820.0,12719741431.203125,14071304248.15,15724306505.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,8,1344,0.9839747023809524,0.999,1.0,0.7149203869047619,0.739,0.743,0.27822619047619046,0.287,0.289,0.12745982142857143,0.137,0.14,0.44101190476190477,0.467,0.514,12698564254.736607,14063118317.15,15508567216.0,12754602448.509672,14079354109.05,15319006836.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,8,1152,0.9889574652777777,0.999,1.0,0.538584201388889,0.699,0.705,0.1456640625,0.292,0.295,0.060828125,0.11499999999999999,0.121,0.4266675347222222,0.5,0.558,5451444350.41493,14941958481.6,16367702095.0,5456132661.967882,14993495237.7,16348072773.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,8,1152,0.9896744791666667,0.999,1.0,0.5361883680555555,0.697,0.704,0.1450859375,0.291,0.295,0.06014930555555556,0.114,0.119,0.4251788194444444,0.5,0.55,5464990127.207465,14978142467.55,16515378482.0,5460547526.944445,14998798408.1,15300436571.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,8,1520,0.9768513157894737,0.999,1.0,0.5805618421052632,0.748,0.763,0.17383618421052632,0.291,0.295,0.08014671052631578,0.15404999999999996,0.168,0.4163407894736842,0.499,0.51,6865359213.189474,14886672661.75,15342998825.0,6868476165.281579,14922047967.4,15374888508.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,8,1520,0.978421052631579,0.999,1.0,0.578371052631579,0.748,0.763,0.17389407894736844,0.291,0.295,0.0797078947368421,0.154,0.175,0.4157486842105263,0.498,0.511,6864820605.633553,14934618195.95,15291598078.0,6872189917.845395,14950386000.25,15356103677.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,8,368,0.9974673913043478,0.9990000000000001,1.0,0.7229048913043478,0.756,0.763,0.2642554347826087,0.285,0.288,0.13833152173913044,0.16,0.165,0.40672282608695653,0.4545999999999999,0.48,11151168359.230978,13665801629.75,14505291121.0,11197667600.644022,13730586781.449997,14645337945.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,8,368,0.9973179347826087,0.9990000000000001,0.999,0.7197690217391305,0.757,0.763,0.2623777173913044,0.285,0.288,0.13687228260869566,0.15964999999999996,0.166,0.40697826086956523,0.45654999999999984,0.486,11068919985.380434,13568556767.3,14853005782.0,11109834217.782608,13585937423.0,14369923387.0
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,samples,gpu_util_pct_mean,gpu_util_pct_p95,gpu_util_pct_max,memory_util_pct_mean,memory_util_pct_p95,memory_util_pct_max,memory_used_mib_mean,memory_used_mib_p95,memory_used_mib_max,power_w_mean,power_w_p95,power_w_max,temperature_c_mean,temperature_c_p95,temperature_c_max,sm_clock_mhz_mean,sm_clock_mhz_p95,sm_clock_mhz_max,memory_clock_mhz_mean,memory_clock_mhz_p95,memory_clock_mhz_max,gpus
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,408,97.09313725490196,100.0,100.0,50.85539215686274,61.0,63.0,83300.0,83409.0,83409.0,230.21735294117644,299.2755,312.84,43.713235294117645,45.0,46.0,2402.950980392157,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,432,97.72222222222223,100.0,100.0,51.21527777777778,60.44999999999999,64.0,83300.0,83409.0,83409.0,221.8317592592593,289.236,307.91,45.844907407407405,47.0,49.0,2418.5486111111113,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,456,97.70394736842105,100.0,100.0,50.24122807017544,57.0,59.0,83219.06140350878,83453.0,83453.0,257.11598684210526,325.23,342.99,46.23026315789474,52.0,54.0,2412.627192982456,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,472,97.43008474576271,100.0,100.0,49.84110169491525,57.0,58.0,83221.32203389831,83453.0,83453.0,257.90165254237286,327.982,372.66,48.74576271186441,54.0,57.0,2417.531779661017,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,1184,98.82516891891892,100.0,100.0,50.710304054054056,53.0,59.0,83300.0,83409.0,83409.0,220.82934966216217,242.39100000000002,275.9,43.5304054054054,45.0,45.0,2402.7592905405404,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,1216,99.2467105263158,100.0,100.0,50.49753289473684,53.0,54.0,83300.0,83409.0,83409.0,215.73606907894737,236.6025,270.17,45.59950657894737,47.0,48.0,2412.5715460526317,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,288,94.44444444444444,100.0,100.0,46.74305555555556,56.0,58.0,83028.21527777778,83408.2,83443.0,293.3987847222222,330.7185,368.5,44.83680555555556,51.0,53.0,2392.215277777778,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,288,94.85069444444444,100.0,100.0,46.420138888888886,55.0,57.0,83057.76388888889,83408.2,83443.0,297.9095486111111,335.86899999999997,363.48,46.53819444444444,52.0,54.0,2398.0243055555557,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,952,98.20588235294117,100.0,100.0,53.52205882352941,58.0,59.0,83231.06722689075,83405.0,83409.0,299.4595693277311,316.97,332.42,50.438025210084035,55.0,56.0,2417.686974789916,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,968,99.07438016528926,100.0,100.0,53.974173553719005,58.0,59.0,83231.94008264462,83405.0,83409.0,302.563285123967,322.293,339.05,53.75929752066116,59.0,61.0,2419.3326446280994,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,824,98.52427184466019,100.0,100.0,51.5376213592233,61.0,65.0,83364.0,83473.0,83473.0,231.9156432038835,297.50299999999993,324.46,44.297330097087375,46.0,50.0,2405.38713592233,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,856,98.60280373831776,100.0,100.0,51.441588785046726,61.0,64.0,83364.0,83473.0,83473.0,227.7883528037383,293.6475,322.45,46.43691588785047,49.0,52.0,2418.589953271028,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,1072,99.60914179104478,100.0,100.0,51.59794776119403,60.0,65.0,83259.71082089552,83433.0,83433.0,248.31210820895524,315.4865,376.49,46.649253731343286,52.0,55.0,2411.4869402985073,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,1112,98.92086330935251,100.0,100.0,51.085431654676256,60.0,64.0,83256.90647482015,83433.0,83433.0,247.74912769784174,321.8905,373.73,49.64118705035971,55.0,59.0,2420.7724820143885,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,264,99.95075757575758,100.0,100.0,49.45075757575758,57.0,59.0,83281.49242424243,83413.0,83433.0,301.19901515151514,332.613,376.49,49.92424242424242,54.0,55.0,2421.1136363636365,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,272,99.88602941176471,100.0,100.0,49.39705882352941,57.0,59.0,83282.94117647059,83413.0,83433.0,307.1604411764706,340.2845,373.73,52.86764705882353,57.0,59.0,2421.4595588235293,2422.0,2422.0,12481.0,12481.0,12481.0,8
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,iface,samples,rx_gbps_mean,rx_gbps_p95,rx_gbps_max,tx_gbps_mean,tx_gbps_p95,tx_gbps_max,ifutil_pct_mean,ifutil_pct_p95,ifutil_pct_max,rx_errors_s_mean,rx_errors_s_p95,rx_errors_s_max,tx_errors_s_mean,tx_errors_s_p95,tx_errors_s_max,rx_drops_s_mean,rx_drops_s_p95,rx_drops_s_max,tx_drops_s_mean,tx_drops_s_p95,tx_drops_s_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,eth0,30,0.00015682133333333332,0.00016183999999999998,0.00016464,5.1274666666666665e-05,5.4591999999999995e-05,5.504e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,eth3,30,3.0933333333333335e-07,8.8e-07,8.8e-07,4.2666666666666665e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,eth0,30,5.1695999999999994e-05,5.4959999999999996e-05,5.608e-05,0.000156736,0.000161872,0.00016287999999999999,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,eth3,30,3.0933333333333335e-07,8.8e-07,8.8e-07,4.2666666666666665e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,eth0,34,0.00015644235294117647,0.00015915199999999997,0.0001596,5.2367058823529417e-05,5.536e-05,5.568e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,eth3,34,3.435294117647059e-07,8.8e-07,8.8e-07,5.6470588235294123e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,eth0,34,5.264470588235294e-05,5.5552000000000006e-05,5.568e-05,0.0001562070588235294,0.00016,0.00016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,eth3,34,3.435294117647059e-07,8.8e-07,8.8e-07,5.6470588235294123e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,eth0,82,0.0001566419512195122,0.00015984000000000001,0.00016272,4.933853658536585e-05,5.2560000000000005e-05,5.44e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,eth3,82,3.3365853658536586e-07,8.8e-07,8.8e-07,5.463414634146342e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,eth0,82,4.958634146341463e-05,5.4e-05,5.456e-05,0.00015623219512195122,0.00016128,0.00016287999999999999,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,eth3,82,3.35609756097561e-07,8.8e-07,9.6e-07,5.6585365853658546e-08,3.2e-07,4.0000000000000003e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,eth0,20,0.00021578399999999998,0.0004841319999999994,0.00074848,5.9391999999999996e-05,8.969599999999994e-05,0.0001172,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,eth3,20,3.1200000000000004e-07,6.279999999999994e-07,8.8e-07,4e-08,2.1199999999999975e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,eth0,20,5.9592e-05,8.761999999999995e-05,0.00011336,0.000215264,0.00047957599999999935,0.00074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,eth3,20,2.96e-07,6.279999999999994e-07,8.8e-07,3.2e-08,1.7599999999999967e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,eth0,68,0.0001568870588235294,0.000160908,0.00016112,5.124470588235294e-05,5.5707999999999996e-05,5.592e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,eth3,68,3.223529411764706e-07,8.8e-07,8.8e-07,4.705882352941176e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,eth0,68,5.149411764705883e-05,5.6268000000000004e-05,5.7520000000000005e-05,0.00015664235294117647,0.00016011200000000001,0.00016063999999999998,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,eth3,68,3.223529411764706e-07,8.8e-07,8.8e-07,4.705882352941176e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,eth0,58,0.00015664000000000002,0.000159888,0.00016,5.07751724137931e-05,5.4496e-05,5.456e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,eth3,58,3.3931034482758625e-07,8.8e-07,8.8e-07,5.517241379310345e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,eth0,58,5.0982068965517244e-05,5.4528000000000004e-05,5.568e-05,0.00015630896551724138,0.000160848,0.00016168,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,eth3,58,3.3931034482758625e-07,8.8e-07,8.8e-07,5.517241379310345e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,eth0,76,0.00015644631578947367,0.000160012,0.00016056,5.221263157894737e-05,5.579599999999999e-05,5.616e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,eth3,76,3.452631578947368e-07,8.8e-07,9.6e-07,6.105263157894737e-08,3.2e-07,4.0000000000000003e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,eth0,76,5.24042105263158e-05,5.641199999999999e-05,5.664e-05,0.0001559515789473684,0.00016033200000000004,0.00016424,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,eth3,76,3.431578947368421e-07,8.8e-07,8.8e-07,5.8947368421052637e-08,3.2e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,eth0,20,0.000156048,0.000158632,0.00015928,5.1064000000000004e-05,5.358e-05,5.376e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,eth3,20,2.96e-07,6.279999999999994e-07,8.8e-07,3.2e-08,1.7599999999999967e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,eth0,18,5.1271111111111107e-05,5.4688e-05,5.52e-05,0.00015478222222222221,0.00016222399999999998,0.00016424,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,eth3,18,2.9333333333333337e-07,6.559999999999998e-07,8.8e-07,3.5555555555555554e-08,1.919999999999999e-07,3.2e-07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,samples,node0_mib_mean,node0_mib_p95,node0_mib_max,node1_mib_mean,node1_mib_p95,node1_mib_max,total_mib_mean,total_mib_p95,total_mib_max,processes_mean,processes_p95,processes_max,numa_imbalance_pct_mean,numa_imbalance_pct_p95,numa_imbalance_pct_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,13,17941.21923076923,17941.472,17941.61,27565.280769230772,27565.394,27565.4,45506.51384615385,45506.69,45506.69,19.0,19.0,19.0,21.148755918904936,21.149743646540415,21.150655911887284
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,13,19029.48769230769,19029.536,19029.56,24814.318461538463,24814.381999999998,24814.4,43843.8,43843.854,43843.86,18.0,18.0,18.0,13.194182003167738,13.194329421344158,13.194370476132915
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,13,17946.50153846154,17948.994,17949.0,27569.42769230769,27571.648,27571.66,45515.943076923075,45520.61,45520.61,19.0,19.0,19.0,21.141880372077402,21.145764039410054,21.145782042670753
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,14,19037.215,19039.1035,19039.11,24816.07357142857,24818.423499999997,24818.43,43853.295,43857.54,43857.54,18.0,18.0,18.0,13.177706662062775,13.17809858730606,13.178146962903641
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,35,17941.668285714288,17942.12,17942.13,27565.19857142857,27566.617,27570.09,45506.88085714286,45506.89,45506.91,19.0,19.0,19.0,21.147417939082427,21.15369613423204,21.16893559148322
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,37,19029.40054054054,19029.452,19029.6,24814.58216216216,24814.65,24814.66,43843.96270270271,43843.97,43843.97,18.0,18.0,18.0,13.19493327010614,13.195223881414025,13.195246689567572
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,8,17869.37125,17877.1655,17878.8,27486.31625,27493.9225,27494.43,45355.7125,45371.1115,45373.25,19.0,19.0,19.0,21.203382762054954,21.207110348436384,21.207680920856813
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,8,18970.3375,18981.5545,18984.05,24731.71375,24743.9825,24745.68,43702.05125,43712.965,43715.31,18.0,18.0,18.0,13.183305003875798,13.21223924964188,13.21285380339291
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,28,17940.274285714284,17940.69,17940.72,27563.883928571428,27564.22,27564.23,45504.17285714286,45504.46,45504.46,19.0,19.0,19.0,21.148850835716523,21.149789612547433,21.149814841959135
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,30,19032.02333333333,19037.573,19037.75,24805.59,24810.55,24811.49,43837.58133333333,43841.73,43841.73,18.0,18.0,18.0,13.17036295064116,13.184651928653366,13.219751626067305
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,24,17946.96125,17951.6865,17951.9,27573.83541666667,27579.2765,27588.36,45520.80666666667,45520.8485,45520.85,19.0,19.0,19.0,21.148294318886816,21.17226656215764,21.212158491133064
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,26,19039.328461538462,19039.4575,19039.46,24818.277692307693,24818.565,24818.74,43857.62038461539,43857.65,43857.65,18.0,18.0,18.0,13.176613733571411,13.177963869896237,13.178761906998588
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,32,17955.7271875,17958.81,17958.83,27573.1746875,27577.874499999998,27578.04,45528.9121875,45535.71,45535.71,19.0,19.0,19.0,21.123824304701028,21.129656288079975,21.129778209910725
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,34,19042.789411764705,19046.17,19046.17,24823.40088235294,24827.86,24827.86,43866.178529411765,43873.26,43873.26,18.0,18.0,18.0,13.177832389566726,13.183982855860464,13.185098115743662
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,8,17951.77,17953.336,17953.98,27569.775,27571.0035,27571.7,45521.55625,45524.051,45525.71,19.0,19.0,19.0,21.128462660935995,21.129739766090218,21.129778209910725
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,8,19038.4325,19039.3115,19039.56,24819.52625,24820.626,24820.99,43857.942500000005,43858.878000000004,43859.48,18.0,18.0,18.0,13.181406637484468,13.184049863000734,13.184128037997716
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,samples,ipc,cache_misses_mean,cache_misses_p95,cache_misses_max,context_switches_mean,context_switches_p95,context_switches_max,cpu_migrations_mean,cpu_migrations_p95,cpu_migrations_max,page_faults_mean,page_faults_p95,page_faults_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,84,3.0487843541376685,6727288.428571428,15567285.149999999,18088446.0,41240.92857142857,47221.399999999994,58274.0,934.9285714285714,1975.849999999999,4063.0,46455.857142857145,161971.65,174542.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,84,3.0681062936795103,4913412.214285715,13142249.399999999,14049236.0,39682.0,45243.25,55120.0,188.57142857142858,247.7,249.0,28090.428571428572,113948.55,114568.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,96,2.8870888885724733,6295623.4375,12277537.0,21573640.0,44877.375,72712.0,151042.0,1255.1875,3534.25,9802.0,51319.875,105487.75,183145.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,96,2.9020975501844197,4051617.5625,7033576.5,10195935.0,43686.6875,70482.5,149831.0,177.5,304.0,364.0,12704.625,37867.0,65872.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,246,3.0979852154775953,5103378.804878049,5773629.0,14670415.0,43749.9756097561,44169.0,78897.0,998.9268292682926,1151.0,6568.0,18694.80487804878,28750.0,152065.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,246,3.1168786636888095,2962364.2682926827,2913232.0,13101053.0,40973.46341463415,41420.0,67313.0,165.17073170731706,209.0,213.0,11960.536585365853,14773.0,135313.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,60,2.727435494137309,9447284.2,31640896.59999995,53106505.0,50995.8,134631.5499999998,217846.0,2372.3,12092.349999999977,21775.0,108507.0,295694.8499999996,444909.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,60,2.7489508087655112,7473178.3,22657424.999999966,37078962.0,48210.5,120052.39999999983,191525.0,296.6,871.5499999999988,1394.0,107749.9,291126.8499999996,447550.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,204,2.8023469789284796,4623449.029411765,16572071.899999999,19670078.0,39421.294117647056,35324.499999999985,263082.0,861.4117647058823,365.9499999999998,20998.0,39086.14705882353,123447.0999999998,215308.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,204,2.8098589749897895,4072417.588235294,9610375.949999992,16711381.0,39129.382352941175,45578.64999999992,229122.0,164.7058823529412,246.5999999999997,423.0,36854.5,114042.04999999983,216180.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,174,3.0424513549285557,5137320.0,7469347.399999995,13520315.0,42398.8275862069,43356.2,91980.0,970.7586206896551,1053.6,5258.0,29120.41379310345,88587.9999999999,167311.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,174,3.0719083836401526,3223721.2413793104,5225881.199999996,9479153.0,40484.58620689655,39252.8,101396.0,167.3448275862069,197.2,236.0,16289.206896551725,65153.199999999895,95763.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,228,2.980275800109699,5456416.5,10599088.849999998,17028720.0,41223.05263157895,44802.899999999994,127813.0,1211.421052631579,1458.199999999999,15346.0,36016.86842105263,119273.24999999994,173922.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,228,3.0050223544930565,3784084.789473684,6404245.849999995,13894635.0,39834.92105263158,46921.44999999995,97372.0,167.5,262.15000000000003,299.0,22792.86842105263,79725.24999999994,157546.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,54,2.808104894473792,5020429.555555556,9669376.799999999,10387880.0,33399.666666666664,37769.399999999994,41129.0,338.8888888888889,811.1999999999997,1178.0,43405.88888888889,91275.39999999998,112743.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,60,2.8298366086279145,3857952.9,5373284.599999999,5873843.0,33911.7,40936.75,42415.0,130.4,172.39999999999998,185.0,24117.8,52089.24999999995,73750.0
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,samples,process_cpu_pct_mean,process_cpu_pct_p95,process_cpu_pct_max,process_wait_pct_mean,process_wait_pct_p95,process_wait_pct_max,process_read_kib_s_mean,process_read_kib_s_p95,process_read_kib_s_max,process_write_kib_s_mean,process_write_kib_s_p95,process_write_kib_s_max,process_major_faults_s_mean,process_major_faults_s_p95,process_major_faults_s_max,process_rss_kib_mean,process_rss_kib_p95,process_rss_kib_max,process_voluntary_switches_s_mean,process_voluntary_switches_s_p95,process_voluntary_switches_s_max,process_involuntary_switches_s_mean,process_involuntary_switches_s_p95,process_involuntary_switches_s_max
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,head,1140,1193.5866666666666,1223.7400000000002,1225.0000000000002,0.013333333333333334,0.05999999999999979,0.2,0.0,0.0,0.0,174.50666666666666,1036.1599999999996,1273.6000000000001,0.0,0.0,0.0,46588476.53333333,46588620.0,46588620.0,277.09333333333336,711.1799999999982,1938.0000000000002,13.32,31.619999999999997,34.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,72.987908864,bench_main_marker_plus_duration,worker,1080,1183.24,1210.06,1210.2,0.013333333333333334,0.05999999999999979,0.2,0.0,0.0,0.0,174.50666666666666,1036.1599999999996,1273.6000000000001,0.0,0.0,0.0,44887948.266666666,44888007.2,44888024.0,230.50666666666666,625.8599999999982,1744.6,10.986666666666666,31.319999999999997,31.599999999999998
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,head,1292,1173.3882352941175,1222.08,1222.4,0.011764705882352941,0.03999999999999986,0.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,46598011.52941176,46602992.8,46602996.0,581.7294117647059,3130.9999999999986,5014.2,12.835294117647058,15.639999999999997,16.599999999999998
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.159844096,bench_main_marker_plus_duration,worker,1224,1160.7176470588236,1214.16,1215.6000000000001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,44897810.35294118,44902216.0,44902216.0,545.2352941176471,3440.1999999999994,4371.400000000001,8.105882352941176,11.359999999999996,12.799999999999999
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,head,3116,1220.1268292682926,1225.6,1225.8,0.024390243902439025,0.2,0.2,0.0,0.0,0.0,9.990243902439024,0.0,409.59999999999997,0.0,0.0,0.0,46588905.26829268,46588920.0,46588920.0,225.06829268292682,227.6,647.8000000000001,7.86829268292683,10.200000000000001,28.2
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,206.37074688,bench_main_marker_plus_duration,worker,2952,1206.5365853658536,1211.0,1211.4,0.01951219512195122,0.2,0.2,0.0,0.0,0.0,9.990243902439024,0.0,409.59999999999997,0.0,0.0,0.0,44888251.90243903,44888308.0,44888316.0,176.34634146341463,176.2,602.6,5.590243902439025,7.400000000000001,18.200000000000003
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,head,1129,1147.0800000000002,1211.02,1211.1999999999998,0.02,0.10999999999999979,0.2,0.0,0.0,0.0,297.30909090909097,1635.2000000000003,3270.4000000000005,0.0,0.0,0.0,46439570.4,46454466.6,46456380.0,1940.6666666666672,11299.580000000002,13680.2,16.5,35.83999999999999,41.99999999999999
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,49.622567168,bench_main_marker_plus_duration,worker,720,1141.52,1210.62,1210.8,0.06000000000000001,0.2,0.2,0.0,0.0,0.0,327.0400000000001,1798.7199999999968,3270.4000000000005,0.0,0.0,0.0,44743050.0,44757778.6,44759728.0,872.5400000000006,4761.229999999995,8583.800000000007,14.919999999999998,27.009999999999973,37.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,head,2584,1184.6000000000001,1210.47,1211.0,0.03529411764705883,0.2,0.2,0.0,0.0,0.0,34.4470588235294,100.79999999999939,883.1999999999999,0.0,0.0,0.0,46582295.52941176,46586356.0,46586356.0,377.5411764705882,1431.4499999999923,8289.0,10.841176470588234,15.229999999999995,22.4
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,168.286636032,bench_main_marker_plus_duration,worker,2448,1182.3235294117646,1210.0,1210.2,0.011764705882352941,0.06999999999999958,0.2,0.0,0.0,0.0,34.44705882352941,271.3599999999999,620.8000000000001,0.0,0.0,0.0,44881817.88235294,44885672.0,44885672.0,348.7588235294118,1094.469999999994,8625.2,11.129411764705884,18.909999999999997,20.999999999999996
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,head,2204,1214.6758620689654,1220.12,1220.4,0.013793103448275864,0.11999999999999958,0.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,46603182.06896552,46603218.4,46603220.0,214.6758620689655,201.43999999999997,1574.0,9.682758620689656,14.839999999999996,15.4
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.496400896,bench_main_marker_plus_duration,worker,2088,1204.3999999999999,1210.1200000000001,1210.4,0.020689655172413796,0.2,0.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,44902315.862068966,44902356.0,44902356.0,170.98620689655175,146.44,1531.9999999999998,6.931034482758621,11.84,12.6
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,head,2888,1200.7473684210527,1223.2599999999998,1223.6,0.021052631578947368,0.2,0.2,0.0,0.0,0.0,11.452631578947367,0.0,435.19999999999993,0.0,0.0,0.0,46611446.84210526,46618484.0,46618484.0,281.61,426.2999999999979,4255.0,8.715789473684211,17.47999999999999,27.599999999999998
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,190.020100096,bench_main_marker_plus_duration,worker,2736,1189.6052631578948,1210.43,1211.4,0.021052631578947368,0.2,0.2,0.0,0.0,0.0,11.452631578947367,0.0,435.19999999999993,0.0,0.0,0.0,44911026.94736842,44918376.0,44918376.0,249.65263157894734,289.9599999999987,4796.0,6.526315789473684,11.919999999999998,18.8
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,head,749,1210.66,1217.6599999999999,1223.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,46604025.6,46607275.2,46610400.0,34.617999999999995,109.58999999999983,175.2,8.1,10.79,11.6
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,46.061826048,bench_main_marker_plus_duration,worker,648,1207.4,1210.92,1211.4,0.022222222222222223,0.11999999999999994,0.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,44902633.333333336,44903531.2,44904240.0,22.133333333333336,88.47999999999996,137.60000000000002,9.244444444444445,12.280000000000001,12.600000000000001
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,duration_s,window_source,node,hca,samples,xmit_bytes,rcv_bytes,xmit_gbps,rcv_gbps,port_xmit_wait_delta,port_xmit_discards_delta,port_rcv_errors_delta,req_transport_retries_exceeded_delta,req_rnr_retries_exceeded_delta,roce_adp_retrans_delta,roce_adp_retrans_to_delta,np_ecn_marked_roce_packets_delta,np_cnp_sent_delta,rp_cnp_handled_delta
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,71.344697344,bench_main_marker_plus_duration,head,mlx5_0,66,327229799692.0,327241990572.0,36.69282364341205,36.69419062713517,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,71.344697344,bench_main_marker_plus_duration,head,mlx5_3,66,327393677184.0,327405760832.0,36.71119950013029,36.712554459750265,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,71.149780736,bench_main_marker_plus_duration,worker,mlx5_0,68,327312761288.0,327298289132.0,36.80267266064959,36.801045427975055,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,71.149780736,bench_main_marker_plus_duration,worker,mlx5_3,68,327195798972.0,327191949064.0,36.78952155156224,36.789088672308345,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.07872896,bench_main_marker_plus_duration,head,mlx5_0,75,444257636548.0,444258274080.0,43.83469176160109,43.834754666583265,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,81.07872896,bench_main_marker_plus_duration,head,mlx5_3,75,445471520584.0,445472014020.0,43.95446512771776,43.95451381481548,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,80.561727488,bench_main_marker_plus_duration,worker,mlx5_0,77,450403115384.0,450403670936.0,44.72626190406251,44.7263170718964,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,80.561727488,bench_main_marker_plus_duration,worker,mlx5_3,77,444176313384.0,444176585108.0,44.10792342556576,44.10795040850254,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,205.0068928,bench_main_marker_plus_duration,head,mlx5_0,188,484528783604.0,484522438956.0,18.907804590812276,18.907557003117507,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,205.0068928,bench_main_marker_plus_duration,head,mlx5_3,188,484292016064.0,484262756928.0,18.898565192594344,18.897423411043476,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,204.622719744,bench_main_marker_plus_duration,worker,mlx5_0,194,483378692900.0,483384132588.0,18.898339089803788,18.89855176171067,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,204.622719744,bench_main_marker_plus_duration,worker,mlx5_3,194,483484778080.0,483489710268.0,18.902486632369254,18.902679462882155,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,48.080653568,bench_main_marker_plus_duration,head,mlx5_0,45,428992803940.0,428992820060.0,71.37886398874002,71.3788666708999,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,48.080653568,bench_main_marker_plus_duration,head,mlx5_3,45,429439114384.0,429439126660.0,71.45312428445231,71.45312632702023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,48.829253632,bench_main_marker_plus_duration,worker,mlx5_0,47,430547106324.0,430552482856.0,70.53920742984172,70.54008830048383,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,48.829253632,bench_main_marker_plus_duration,worker,mlx5_3,47,430553276516.0,430553408016.0,70.54021833073266,70.54023987519466,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,167.623034624,bench_main_marker_plus_duration,head,mlx5_0,154,1738843459984.0,1738965693932.0,82.98828207636016,82.99411583057059,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,167.623034624,bench_main_marker_plus_duration,head,mlx5_3,154,1739263067700.0,1739364620460.0,83.00830833191347,83.01315505290157,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,166.729046016,bench_main_marker_plus_duration,worker,mlx5_0,158,1739033672624.0,1739033174332.0,83.44238579555551,83.4423618864881,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,166.729046016,bench_main_marker_plus_duration,worker,mlx5_3,158,1739243327096.0,1739243022428.0,83.45244544512514,83.45243082653253,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,142.715803392,bench_main_marker_plus_duration,head,mlx5_0,131,678101307872.0,678090133532.0,38.011280699416155,38.010654316647916,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,142.715803392,bench_main_marker_plus_duration,head,mlx5_3,131,677949641072.0,677941962640.0,38.00277894718437,38.00234852914697,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.266830336,bench_main_marker_plus_duration,worker,mlx5_0,137,680623741960.0,680629335892.0,37.74249370419051,37.742803903394964,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,144.266830336,bench_main_marker_plus_duration,worker,mlx5_3,137,680750304048.0,680766879432.0,37.74951192661656,37.75043107810614,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,188.527344896,bench_main_marker_plus_duration,head,mlx5_0,173,1102872843476.0,1102880032984.0,46.79948552118605,46.79979060193723,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,188.527344896,bench_main_marker_plus_duration,head,mlx5_3,173,1103015616220.0,1103029812428.0,46.80554396301384,46.806146367211824,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,189.088602368,bench_main_marker_plus_duration,worker,mlx5_0,179,1102994734488.0,1102998788292.0,46.66573111969494,46.665902628879486,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,189.088602368,bench_main_marker_plus_duration,worker,mlx5_3,179,1103130615912.0,1103144127560.0,46.67148001930277,46.67205167292254,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,44.866369024,bench_main_marker_plus_duration,head,mlx5_0,42,415875487184.0,415864521032.0,74.15362486080193,74.15166951612152,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,44.866369024,bench_main_marker_plus_duration,head,mlx5_3,42,416276974024.0,416281015316.0,74.22521288519235,74.22593347695637,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,44.584492544,bench_main_marker_plus_duration,worker,mlx5_0,43,415451144696.0,415441323744.0,74.5463045090838,74.54454229061909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,44.584492544,bench_main_marker_plus_duration,worker,mlx5_3,43,415600251668.0,415656009484.0,74.57305945700259,74.58306433768075,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
phase2_bench_run,case_id,role,stage,repetition,status,started_at,ended_at,started_ns,ended_ns,duration_s,window_source,meta_path
|
||||||
|
fixed_decode_throughput_1k_to_1k_c32,decode_throughput_1k_to_1k_c32,,decode_throughput,1,COMPLETED,2026-07-31T16:50:08.318962+08:00,2026-07-31T16:51:21.306871+08:00,1785487808318962176,1785487881306871040,72.987908864,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_decode_throughput_1k_to_1k_c32/cases/decode_throughput_1k_to_1k_c32/rep1/meta.json
|
||||||
|
fixed_long_context_decode_128k_to_1k_c1,long_context_decode_128k_to_1k_c1,,long_context_decode,1,COMPLETED,2026-07-31T16:56:15.173982+08:00,2026-07-31T16:57:36.333826+08:00,1785488175173981952,1785488256333826048,81.159844096,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_context_decode_128k_to_1k_c1/cases/long_context_decode_128k_to_1k_c1/rep1/meta.json
|
||||||
|
fixed_long_output_decode_1k_to_4k_c16,long_output_decode_1k_to_4k_c16,,long_output_decode,1,COMPLETED,2026-07-31T16:52:06.490086+08:00,2026-07-31T16:55:32.860833+08:00,1785487926490086144,1785488132860833024,206.37074688,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_output_decode_1k_to_4k_c16/cases/long_output_decode_1k_to_4k_c16/rep1/meta.json
|
||||||
|
fixed_long_prefill_latency_128k_c1,long_prefill_latency_128k_c1,,prefill_latency,1,COMPLETED,2026-07-31T16:45:02.091364+08:00,2026-07-31T16:45:51.713931+08:00,1785487502091363840,1785487551713931008,49.622567168,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_long_prefill_latency_128k_c1/cases/long_prefill_latency_128k_c1/rep1/meta.json
|
||||||
|
fixed_mid_prefill_throughput_32k_c16,mid_prefill_throughput_32k_c16,,prefill_throughput,1,COMPLETED,2026-07-31T16:46:35.012884+08:00,2026-07-31T16:49:23.299520+08:00,1785487595012883968,1785487763299520000,168.286636032,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/fixed_mid_prefill_throughput_32k_c16/cases/mid_prefill_throughput_32k_c16/rep1/meta.json
|
||||||
|
mixed_prefill_decode_interference,decode_control_1k_to_1k_c32,control,mixed_interference,1,COMPLETED,2026-07-31T16:58:21.482129+08:00,2026-07-31T17:00:45.978530+08:00,1785488301482129152,1785488445978530048,144.496400896,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_control_1k_to_1k_c32/rep1/meta.json
|
||||||
|
mixed_prefill_decode_interference,decode_with_128k_prefill_1k_to_1k_c32,decode_background,mixed_interference,1,COMPLETED,2026-07-31T17:01:19.288049+08:00,2026-07-31T17:04:29.308149+08:00,1785488479288048896,1785488669308148992,190.020100096,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/decode_with_128k_prefill_1k_to_1k_c32/rep1/meta.json
|
||||||
|
mixed_prefill_decode_interference,long_prefill_injection_128k_to_1_c1,prefill_injection,mixed_interference,1,COMPLETED,2026-07-31T17:01:59.428991+08:00,2026-07-31T17:02:45.490817+08:00,1785488519428990976,1785488565490817024,46.061826048,bench_main_marker_plus_duration,/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/bench/mixed_prefill_decode_interference/cases/long_prefill_injection_128k_to_1_c1/rep1/meta.json
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
wall_time_ns,node,collector,status,pid
|
||||||
|
1785487450093977528,head,gpu_samples.csv,STARTED,1795123
|
||||||
|
1785487450108679448,head,rdma.csv,STARTED,1795134
|
||||||
|
1785487450121779856,head,dcgm_dmon.log,STARTED,1795147
|
||||||
|
1785487450134856077,head,mpstat.log,STARTED,1795163
|
||||||
|
1785487450147239051,head,pidstat.log,STARTED,1795181
|
||||||
|
1785487450160535144,head,sar_net.log,STARTED,1795207
|
||||||
|
1785487450175160784,head,perf_stat.log,STARTED,1795238
|
||||||
|
1785487450193437502,head,docker_top.log,STARTED,1795276
|
||||||
|
1785487450214351210,head,numa_samples.csv,STARTED,1795348
|
||||||
|
1785487450236070096,worker,gpu_samples.csv,STARTED,1795394
|
||||||
|
1785487450254195207,worker,rdma.csv,STARTED,1795451
|
||||||
|
1785487450270545415,worker,dcgm_dmon.log,STARTED,1795504
|
||||||
|
1785487450285967202,worker,mpstat.log,STARTED,1795552
|
||||||
|
1785487450301984460,worker,pidstat.log,STARTED,1795567
|
||||||
|
1785487450317255696,worker,sar_net.log,STARTED,1795577
|
||||||
|
1785487450331874012,worker,perf_stat.log,STARTED,1795584
|
||||||
|
1785487450348717530,worker,docker_top.log,STARTED,1795593
|
||||||
|
1785487450364742164,worker,numa_samples.csv,STARTED,1795604
|
||||||
|
1785488689789962654,head,gpu_samples.csv,STOPPED,1795123
|
||||||
|
1785488689794788834,head,rdma.csv,STOPPED,1795134
|
||||||
|
1785488689801075236,head,dcgm_dmon.log,STOPPED,1795147
|
||||||
|
1785488689805422095,head,mpstat.log,STOPPED,1795163
|
||||||
|
1785488689810734986,head,pidstat.log,STOPPED,1795181
|
||||||
|
1785488689814680689,head,sar_net.log,STOPPED,1795207
|
||||||
|
1785488689951029262,head,perf_stat.log,STOPPED,1795238
|
||||||
|
1785488689955936272,head,docker_top.log,STOPPED,1795276
|
||||||
|
1785488689960978121,head,numa_samples.csv,STOPPED,1795348
|
||||||
|
1785488689965181539,worker,gpu_samples.csv,STOPPED,1795394
|
||||||
|
1785488689969473724,worker,rdma.csv,STOPPED,1795451
|
||||||
|
1785488689973568170,worker,dcgm_dmon.log,STOPPED,1795504
|
||||||
|
1785488689977772276,worker,mpstat.log,STOPPED,1795552
|
||||||
|
1785488689982041873,worker,pidstat.log,STOPPED,1795567
|
||||||
|
1785488689986056700,worker,sar_net.log,STOPPED,1795577
|
||||||
|
1785488689990039780,worker,perf_stat.log,STOPPED,1795584
|
||||||
|
1785488689994084643,worker,docker_top.log,STOPPED,1795593
|
||||||
|
1785488689998332256,worker,numa_samples.csv,STOPPED,1795604
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
test,scope,nccl_cross_nic,size_bytes,repetitions,mean_ms,algbw_GBps_mean,busbw_GBps_mean,busbw_GBps_min,wrong_values,path_class,samples,bandwidth_GBps_mean,bandwidth_GBps_p05,bandwidth_GBps_min
|
||||||
|
all_reduce,head_8gpu,2,1048576,3,1.1792767981688181,0.9351587648306614,1.6365278384536577,1.1619881842280209,0,,,,,
|
||||||
|
all_reduce,head_8gpu,2,1073741824,3,47.2596331278483,22.72016498475108,39.76028872331439,39.67252737812032,0,,,,,
|
||||||
|
all_reduce,head_8gpu,2,67108864,3,3.107903989156087,21.596044891582753,37.79307856026982,37.253524087802575,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,0,1048576,3,1.174121594429016,0.9225129006791467,1.7297116887734,1.3203079074091486,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,0,1073741824,3,51.1693105061849,20.984136487918786,39.34525591484772,39.296690886871644,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,0,67108864,3,3.4025983730951945,19.72330661126499,36.98119989612186,36.724996463125755,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,1,1048576,3,1.2971573332945505,0.877370746063573,1.6450701488691994,1.0568849765163506,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,1,1073741824,3,50.73157666524251,21.165255754284047,39.68485453928258,39.59303458131569,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,1,67108864,3,3.3778613169988,19.86842574374279,37.25329826951773,36.858805194578224,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,2,1048576,3,1.1436874707539877,0.936877857865813,1.7566459834983992,1.413443823860872,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,2,1073741824,3,50.931247075398765,21.082601839476187,39.52987844901785,39.33647232214203,0,,,,,
|
||||||
|
all_reduce,two_node_16gpu,2,67108864,3,3.4341418504714967,19.544645327030477,36.64620998818214,36.14018010573151,0,,,,,
|
||||||
|
all_reduce,worker_8gpu,2,1048576,3,0.9693984071413676,1.0921968526479142,1.9113444921338498,1.664030821168365,0,,,,,
|
||||||
|
all_reduce,worker_8gpu,2,1073741824,3,47.27112070719401,22.714924401498006,39.75111770262151,39.55926639799348,0,,,,,
|
||||||
|
all_reduce,worker_8gpu,2,67108864,3,3.0737973292668657,21.837161295289466,38.215032266756566,37.43531449904809,0,,,,,
|
||||||
|
p2p_copy,head,,268435456,,,,,,,cross_numa_sys,32,52.397332123279426,52.19168649638452,52.18129785806688
|
||||||
|
p2p_copy,head,,268435456,,,,,,,same_pcie_switch,24,53.6126013471359,53.36177601211484,53.35073474580275
|
||||||
|
p2p_copy,worker,,268435456,,,,,,,cross_numa_sys,32,52.31572860916867,52.14858683841258,52.07724663835188
|
||||||
|
p2p_copy,worker,,268435456,,,,,,,same_pcie_switch,24,53.50030938041238,53.28731762907832,53.221028060678236
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
node,gpu,samples,gpu_util_pct_mean,gpu_util_pct_p95,gpu_util_pct_max,memory_util_pct_mean,memory_util_pct_p95,memory_util_pct_max,memory_used_mib_mean,memory_used_mib_p95,memory_used_mib_max,power_w_mean,power_w_p95,power_w_max,temperature_c_mean,temperature_c_p95,temperature_c_max,sm_clock_mhz_mean,sm_clock_mhz_p95,sm_clock_mhz_max,memory_clock_mhz_mean,memory_clock_mhz_p95,memory_clock_mhz_max
|
||||||
|
head,0,885,73.19774011299435,100.0,100.0,38.57514124293785,58.0,64.0,83114.45536723164,83361.0,83361.0,205.47479096045197,307.69199999999995,333.9,43.47570621468927,52.0,55.0,2393.25197740113,2422.0,2430.0,12481.0,12481.0,12481.0
|
||||||
|
head,1,885,73.50056497175142,100.0,100.0,37.15819209039548,56.0,62.0,83080.49830508475,83327.0,83327.0,206.62670056497177,313.188,350.0,43.737853107344634,53.0,56.0,2378.2225988700566,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,2,885,73.52542372881356,100.0,100.0,38.364971751412426,57.0,63.0,83048.5209039548,83295.0,83295.0,210.91588700564972,317.204,371.02,42.911864406779664,52.0,55.0,2391.7344632768363,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,3,885,73.10960451977401,100.0,100.0,38.39322033898305,58.0,65.0,83146.58870056497,83393.0,83393.0,204.69710734463277,310.6,340.24,43.44858757062147,52.0,55.0,2388.697175141243,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,4,885,73.17062146892656,100.0,100.0,39.108474576271185,58.0,65.0,83194.63389830508,83441.0,83441.0,207.94813559322034,316.352,339.4,44.054237288135596,53.0,56.0,2402.890395480226,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,5,885,73.44519774011299,100.0,100.0,38.371751412429376,57.0,63.0,83080.63389830508,83327.0,83327.0,209.06979661016948,317.16999999999996,376.49,43.85084745762712,53.0,55.0,2399.3717514124296,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,6,885,73.67570621468927,100.0,100.0,39.31412429378531,58.0,65.0,83048.65423728814,83295.0,83295.0,205.60972881355931,310.78,342.99,43.70395480225989,52.0,55.0,2405.515254237288,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
head,7,885,73.06553672316385,100.0,100.0,35.74124293785311,54.0,60.0,83227.83163841808,83473.0,83473.0,206.52320903954802,314.84799999999996,336.9,43.929943502824855,53.0,56.0,2388.154802259887,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,0,913,73.23986856516977,100.0,100.0,37.39539978094195,56.0,62.0,83195.78422782038,83441.0,83441.0,210.65017524644028,326.81399999999996,347.67,46.10624315443592,56.0,60.0,2398.8400876232204,2422.0,2430.0,12481.0,12481.0,12481.0
|
||||||
|
worker,1,913,73.35158817086528,100.0,100.0,38.92880613362541,58.0,64.0,83081.95947426069,83327.0,83327.0,202.77134720700985,310.3,335.13,45.61226725082147,55.0,58.0,2398.3099671412924,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,2,913,73.34720700985761,100.0,100.0,38.708652792990144,58.0,64.0,83050.44140197152,83295.0,83295.0,203.5297152245345,312.52,373.73,46.55859802847755,57.0,60.0,2400.135815991238,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,3,913,72.96276013143483,100.0,100.0,37.24096385542169,57.0,63.0,83229.27382256297,83473.0,83473.0,207.60696604600219,318.69399999999996,359.03,45.467688937568454,55.0,59.0,2409.73713033954,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,4,913,72.84008762322016,100.0,100.0,36.52464403066813,55.0,63.0,83117.25410733845,83361.0,83361.0,204.54877327491786,314.376,347.28,45.67798466593647,56.0,59.0,2392.5739320920043,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,5,913,73.26944140197152,100.0,100.0,38.52245345016429,58.0,64.0,83083.19058050384,83327.0,83327.0,204.3163417305586,315.148,356.12,46.33077765607886,56.0,60.0,2385.7513691128147,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,6,913,73.3274917853231,100.0,100.0,38.77984665936473,58.0,64.0,83052.13253012048,83295.0,83295.0,206.93734939759034,319.012,355.56,46.1829134720701,56.0,59.0,2401.7447973713033,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
worker,7,913,73.27929901423877,100.0,100.0,37.28806133625411,57.0,64.0,83150.0230010953,83393.0,83393.0,206.63869660460023,320.18,353.19,47.00766703176342,57.0,61.0,2406.594742606791,2422.0,2422.0,12481.0,12481.0,12481.0
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"run_id": "dsv4pro-phase2-20260731-163620",
|
||||||
|
"status": "COMPLETED",
|
||||||
|
"created_at": "2026-07-31T16:36:20+08:00",
|
||||||
|
"completed_at": "2026-07-31T17:05:04+08:00",
|
||||||
|
"experiment": "dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution",
|
||||||
|
"git_commit": "5f24b7d22f98108f6cc234edba6768d55ea0a962",
|
||||||
|
"git_dirty": false,
|
||||||
|
"phase1_entry": "/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_tp16_quick_map/run_quick_map.sh",
|
||||||
|
"head_node": "10.101.0.11",
|
||||||
|
"worker_node": "10.101.0.13",
|
||||||
|
"fixed_case_ids": "long_prefill_latency_128k_c1,mid_prefill_throughput_32k_c16,decode_throughput_1k_to_1k_c32,long_output_decode_1k_to_4k_c16,long_context_decode_128k_to_1k_c1",
|
||||||
|
"run_mixed_case": true,
|
||||||
|
"sample_interval_s": 1,
|
||||||
|
"cpu_sample_interval_s": 5,
|
||||||
|
"process_sample_interval_s": 5,
|
||||||
|
"net_sample_interval_s": 5,
|
||||||
|
"perf_interval_ms": 5000,
|
||||||
|
"numastat_interval_s": 5,
|
||||||
|
"clock_skew_tolerance_s": 2,
|
||||||
|
"idle_baseline_s": 15,
|
||||||
|
"post_run_cooldown_s": 15,
|
||||||
|
"require_precise_windows": true,
|
||||||
|
"run_communication_baseline": true,
|
||||||
|
"dry_run": false
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
node,hca,samples,duration_s,xmit_bytes,rcv_bytes,xmit_gbps,rcv_gbps,port_xmit_wait_delta,port_xmit_discards_delta,port_rcv_errors_delta,req_transport_retries_exceeded_delta,req_rnr_retries_exceeded_delta,roce_adp_retrans_delta,roce_adp_retrans_to_delta,np_ecn_marked_roce_packets_delta,np_cnp_sent_delta,rp_cnp_handled_delta
|
||||||
|
head,mlx5_0,1131,1239.614615552,5264991004888.0,5264992389656.0,33.97824413384156,33.978253070606144,0.0,0.0,0.0,0.0,,,,,,
|
||||||
|
head,mlx5_3,1130,1238.507734784,5266283609308.0,5266274185868.0,34.01696064644414,34.0168997768041,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
worker,mlx5_0,1168,1238.553399296,5272091713408.0,5272078266720.0,34.05322187257931,34.05313501842828,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
worker,mlx5_3,1168,1238.553399296,5264840174196.0,5264861659552.0,34.00638310589474,34.00652188299398,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
|
||||||
|
@ -0,0 +1,253 @@
|
|||||||
|
# Phase 2 Hardware Attribution
|
||||||
|
|
||||||
|
- Generated: `2026-07-31T17:05:04+08:00`
|
||||||
|
- Bench rows: `8`
|
||||||
|
- Failed bench rows: `0`
|
||||||
|
- GPU summary rows: `16`
|
||||||
|
- RDMA summary rows: `4`
|
||||||
|
- Case windows: `8`
|
||||||
|
- Precise main-run windows: `8/8`
|
||||||
|
- Collector status counts: `{"STARTED": 18, "STOPPED": 18}`
|
||||||
|
|
||||||
|
## 1. Benchmark results
|
||||||
|
|
||||||
|
| Run | Case | Status | Input TPS | Output TPS | TTFT P95 (ms) | TPOT P95 (ms) |
|
||||||
|
|---|---|---|---:|---:|---:|---:|
|
||||||
|
| fixed_decode_throughput_1k_to_1k_c32 | decode_throughput_1k_to_1k_c32 | COMPLETED | 448.95107215015315 | 448.95107215015315 | 10166.788510262268 | 65.35758210354297 |
|
||||||
|
| fixed_long_context_decode_128k_to_1k_c1 | long_context_decode_128k_to_1k_c1 | COMPLETED | 1614.985848663526 | 12.617076942683797 | 48279.420554987155 | 32.106360114411245 |
|
||||||
|
| fixed_long_output_decode_1k_to_4k_c16 | long_output_decode_1k_to_4k_c16 | COMPLETED | 79.3910971002871 | 317.5643884011484 | 1723.5681610036409 | 49.98305734157135 |
|
||||||
|
| fixed_long_prefill_latency_128k_c1 | long_prefill_latency_128k_c1 | COMPLETED | 2641.3788467537956 | 0.02015212132838284 | 49610.14223104576 | 0.0 |
|
||||||
|
| fixed_mid_prefill_throughput_32k_c16 | mid_prefill_throughput_32k_c16 | COMPLETED | 3115.446435236942 | 0.09507587998159613 | 161938.13879448862 | 0.0 |
|
||||||
|
| mixed_prefill_decode_interference | decode_control_1k_to_1k_c32 | COMPLETED | 453.54762732999035 | 453.54762732999035 | 9442.68154159945 | 66.23843437823616 |
|
||||||
|
| mixed_prefill_decode_interference | decode_with_128k_prefill_1k_to_1k_c32 | COMPLETED | 344.8898309034744 | 344.8898309034744 | 9891.837346865213 | 110.451060616212 |
|
||||||
|
| mixed_prefill_decode_interference | long_prefill_injection_128k_to_1_c1 | COMPLETED | 2845.5667477625557 | 0.02170995138368649 | 45980.19455798203 | 0.0 |
|
||||||
|
|
||||||
|
## 2. Measurement-window validity
|
||||||
|
|
||||||
|
| Case | Role | Duration (s) | Window source |
|
||||||
|
|---|---|---:|---|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | - | 72.99 | bench_main_marker_plus_duration |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | - | 81.16 | bench_main_marker_plus_duration |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | - | 206.37 | bench_main_marker_plus_duration |
|
||||||
|
| long_prefill_latency_128k_c1 | - | 49.62 | bench_main_marker_plus_duration |
|
||||||
|
| mid_prefill_throughput_32k_c16 | - | 168.29 | bench_main_marker_plus_duration |
|
||||||
|
| decode_control_1k_to_1k_c32 | control | 144.50 | bench_main_marker_plus_duration |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | decode_background | 190.02 | bench_main_marker_plus_duration |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | prefill_injection | 46.06 | bench_main_marker_plus_duration |
|
||||||
|
|
||||||
|
## 3. GPU basic state (`nvidia-smi`)
|
||||||
|
|
||||||
|
Data: `case_gpu_node_summary.csv`; raw: `head|worker/gpu_samples.csv`.
|
||||||
|
|
||||||
|
| Case | Node | Samples | GPU util mean/p95 (%) | Memory used mean (MiB) | Power mean (W) | SM clock mean (MHz) |
|
||||||
|
|---|---|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | 408 | 97.09/100.00 | 83300.00 | 230.22 | 2402.95 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | 432 | 97.72/100.00 | 83300.00 | 221.83 | 2418.55 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | 456 | 97.70/100.00 | 83219.06 | 257.12 | 2412.63 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | 472 | 97.43/100.00 | 83221.32 | 257.90 | 2417.53 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | 1184 | 98.83/100.00 | 83300.00 | 220.83 | 2402.76 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | 1216 | 99.25/100.00 | 83300.00 | 215.74 | 2412.57 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | 288 | 94.44/100.00 | 83028.22 | 293.40 | 2392.22 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | 288 | 94.85/100.00 | 83057.76 | 297.91 | 2398.02 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | 952 | 98.21/100.00 | 83231.07 | 299.46 | 2417.69 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | 968 | 99.07/100.00 | 83231.94 | 302.56 | 2419.33 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | 824 | 98.52/100.00 | 83364.00 | 231.92 | 2405.39 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | 856 | 98.60/100.00 | 83364.00 | 227.79 | 2418.59 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | 1072 | 99.61/100.00 | 83259.71 | 248.31 | 2411.49 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | 1112 | 98.92/100.00 | 83256.91 | 247.75 | 2420.77 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | 264 | 99.95/100.00 | 83281.49 | 301.20 | 2421.11 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | 272 | 99.89/100.00 | 83282.94 | 307.16 | 2421.46 |
|
||||||
|
|
||||||
|
## 4. GPU profiling counters (DCGM)
|
||||||
|
|
||||||
|
Data: `case_dcgm_summary.csv`; raw: `head|worker/dcgm_dmon.log`.
|
||||||
|
|
||||||
|
| Case | Node | Samples | GR active | SM active | SM occupancy | Tensor active | DRAM active | PCIe TX/RX mean (GB/s) |
|
||||||
|
|---|---|---:|---:|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | 584 | 0.971 | 0.525 | 0.141 | 0.059 | 0.417 | 5.205/5.201 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | 576 | 0.979 | 0.523 | 0.141 | 0.058 | 0.415 | 5.236/5.232 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | 648 | 0.961 | 0.578 | 0.211 | 0.095 | 0.399 | 6.764/6.821 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | 648 | 0.965 | 0.579 | 0.211 | 0.095 | 0.401 | 6.780/6.838 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | 1648 | 0.989 | 0.490 | 0.133 | 0.045 | 0.414 | 2.621/2.634 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | 1640 | 0.990 | 0.489 | 0.133 | 0.045 | 0.414 | 2.619/2.633 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | 400 | 0.930 | 0.683 | 0.251 | 0.136 | 0.374 | 10.537/10.582 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | 392 | 0.936 | 0.686 | 0.251 | 0.136 | 0.376 | 10.618/10.632 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | 1344 | 0.980 | 0.713 | 0.278 | 0.127 | 0.440 | 12.664/12.720 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | 1344 | 0.984 | 0.715 | 0.278 | 0.127 | 0.441 | 12.699/12.755 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | 1152 | 0.989 | 0.539 | 0.146 | 0.061 | 0.427 | 5.451/5.456 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | 1152 | 0.990 | 0.536 | 0.145 | 0.060 | 0.425 | 5.465/5.461 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | 1520 | 0.977 | 0.581 | 0.174 | 0.080 | 0.416 | 6.865/6.868 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | 1520 | 0.978 | 0.578 | 0.174 | 0.080 | 0.416 | 6.865/6.872 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | 368 | 0.997 | 0.723 | 0.264 | 0.138 | 0.407 | 11.151/11.198 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | 368 | 0.997 | 0.720 | 0.262 | 0.137 | 0.407 | 11.069/11.110 |
|
||||||
|
|
||||||
|
## 5. CPU, process, and `perf`
|
||||||
|
|
||||||
|
Data: `case_cpu_summary.csv`, `case_process_summary.csv`, `case_perf_summary.csv`; raw: `mpstat.log`, `pidstat.log`, `perf_stat.log`.
|
||||||
|
|
||||||
|
| Case | Node | Samples CPU/process/perf | CPU active mean/p95 (%) | Hot cores max | Process CPU max (%) | Process wait max (%) | IPC | Context switches mean/interval |
|
||||||
|
|---|---|---|---:|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | 15/1140/84 | 10.13/10.42 | 12 | 1225.00 | 0.20 | 3.049 | 41240.93 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | 15/1080/84 | 9.84/10.09 | 12 | 1210.20 | 0.20 | 3.068 | 39682.00 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | 17/1292/96 | 9.90/10.29 | 12 | 1222.40 | 0.20 | 2.887 | 44877.38 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | 17/1224/96 | 9.65/10.09 | 12 | 1215.60 | 0.00 | 2.902 | 43686.69 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | 41/3116/246 | 10.36/10.52 | 12 | 1225.80 | 0.20 | 3.098 | 43749.98 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | 41/2952/246 | 9.99/10.09 | 12 | 1211.40 | 0.20 | 3.117 | 40973.46 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | 10/1129/60 | 10.00/10.27 | 12 | 1211.20 | 0.20 | 2.727 | 50995.80 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | 10/720/60 | 9.69/10.18 | 12 | 1210.80 | 0.20 | 2.749 | 48210.50 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | 34/2584/204 | 9.99/10.27 | 12 | 1211.00 | 0.20 | 2.802 | 39421.29 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | 34/2448/204 | 9.84/10.11 | 12 | 1210.20 | 0.20 | 2.810 | 39129.38 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | 29/2204/174 | 10.26/10.44 | 12 | 1220.40 | 0.20 | 3.042 | 42398.83 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | 29/2088/174 | 9.98/10.11 | 12 | 1210.40 | 0.20 | 3.072 | 40484.59 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | 38/2888/228 | 10.34/11.37 | 13 | 1223.60 | 0.20 | 2.980 | 41223.05 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | 38/2736/228 | 9.87/10.09 | 12 | 1211.40 | 0.20 | 3.005 | 39834.92 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | 10/749/54 | 10.21/10.63 | 13 | 1223.60 | 0.00 | 2.808 | 33399.67 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | 9/648/60 | 10.04/10.12 | 12 | 1211.40 | 0.20 | 2.830 | 33911.70 |
|
||||||
|
|
||||||
|
## 6. NUMA memory placement
|
||||||
|
|
||||||
|
Data/raw: `case_numa_summary.csv`, `head|worker/numa_samples.csv`.
|
||||||
|
|
||||||
|
| Case | Node | Samples | Node 0 mean (MiB) | Node 1 mean (MiB) | Total mean (MiB) | Imbalance mean/max (%) |
|
||||||
|
|---|---|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | 13 | 17941.22 | 27565.28 | 45506.51 | 21.15/21.15 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | 13 | 19029.49 | 24814.32 | 43843.80 | 13.19/13.19 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | 13 | 17946.50 | 27569.43 | 45515.94 | 21.14/21.15 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | 14 | 19037.22 | 24816.07 | 43853.29 | 13.18/13.18 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | 35 | 17941.67 | 27565.20 | 45506.88 | 21.15/21.17 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | 37 | 19029.40 | 24814.58 | 43843.96 | 13.19/13.20 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | 8 | 17869.37 | 27486.32 | 45355.71 | 21.20/21.21 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | 8 | 18970.34 | 24731.71 | 43702.05 | 13.18/13.21 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | 28 | 17940.27 | 27563.88 | 45504.17 | 21.15/21.15 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | 30 | 19032.02 | 24805.59 | 43837.58 | 13.17/13.22 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | 24 | 17946.96 | 27573.84 | 45520.81 | 21.15/21.21 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | 26 | 19039.33 | 24818.28 | 43857.62 | 13.18/13.18 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | 32 | 17955.73 | 27573.17 | 45528.91 | 21.12/21.13 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | 34 | 19042.79 | 24823.40 | 43866.18 | 13.18/13.19 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | 8 | 17951.77 | 27569.78 | 45521.56 | 21.13/21.13 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | 8 | 19038.43 | 24819.53 | 43857.94 | 13.18/13.18 |
|
||||||
|
|
||||||
|
## 7. Linux netdev and RDMA data path
|
||||||
|
|
||||||
|
Netdev data: `case_netdev_summary.csv`; RDMA data: `case_rdma_summary.csv`; raw: `sar_net.log`, `rdma.csv`.
|
||||||
|
|
||||||
|
### Linux interfaces
|
||||||
|
|
||||||
|
| Case | Node | Interface | Samples | RX mean/max (Gbit/s) | TX mean/max (Gbit/s) | Util max (%) | RX/TX error max (/s) |
|
||||||
|
|---|---|---|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | eth0 | 30 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | eth3 | 30 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | eth0 | 30 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | eth3 | 30 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | eth0 | 34 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | eth3 | 34 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | eth0 | 34 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | eth3 | 34 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | eth0 | 82 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | eth3 | 82 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | eth0 | 82 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | eth3 | 82 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | eth0 | 20 | 0.000/0.001 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | eth3 | 20 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | eth0 | 20 | 0.000/0.000 | 0.000/0.001 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | eth3 | 20 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | eth0 | 68 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | eth3 | 68 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | eth0 | 68 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | eth3 | 68 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | eth0 | 58 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | eth3 | 58 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | eth0 | 58 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | eth3 | 58 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | eth0 | 76 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | eth3 | 76 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | eth0 | 76 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | eth3 | 76 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | eth0 | 20 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | eth3 | 20 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | eth0 | 18 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | eth3 | 18 | 0.000/0.000 | 0.000/0.000 | 0.000 | 0.00/0.00 |
|
||||||
|
|
||||||
|
### RDMA HCAs
|
||||||
|
|
||||||
|
| Case | Node | HCA | Samples | TX/RX (Gbit/s) | Wait delta | Discard/error delta | Retry exceeded delta |
|
||||||
|
|---|---|---|---:|---:|---:|---:|---:|
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | mlx5_0 | 66 | 36.69/36.69 | 0 | 0/0 | 0 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | head | mlx5_3 | 66 | 36.71/36.71 | 0 | 0/0 | 0 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | mlx5_0 | 68 | 36.80/36.80 | 0 | 0/0 | 0 |
|
||||||
|
| decode_throughput_1k_to_1k_c32 | worker | mlx5_3 | 68 | 36.79/36.79 | 0 | 0/0 | 0 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | mlx5_0 | 75 | 43.83/43.83 | 0 | 0/0 | 0 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | head | mlx5_3 | 75 | 43.95/43.95 | 0 | 0/0 | 0 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | mlx5_0 | 77 | 44.73/44.73 | 0 | 0/0 | 0 |
|
||||||
|
| long_context_decode_128k_to_1k_c1 | worker | mlx5_3 | 77 | 44.11/44.11 | 0 | 0/0 | 0 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | mlx5_0 | 188 | 18.91/18.91 | 0 | 0/0 | 0 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | head | mlx5_3 | 188 | 18.90/18.90 | 0 | 0/0 | 0 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | mlx5_0 | 194 | 18.90/18.90 | 0 | 0/0 | 0 |
|
||||||
|
| long_output_decode_1k_to_4k_c16 | worker | mlx5_3 | 194 | 18.90/18.90 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | mlx5_0 | 45 | 71.38/71.38 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_latency_128k_c1 | head | mlx5_3 | 45 | 71.45/71.45 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | mlx5_0 | 47 | 70.54/70.54 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_latency_128k_c1 | worker | mlx5_3 | 47 | 70.54/70.54 | 0 | 0/0 | 0 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | mlx5_0 | 154 | 82.99/82.99 | 0 | 0/0 | 0 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | head | mlx5_3 | 154 | 83.01/83.01 | 0 | 0/0 | 0 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | mlx5_0 | 158 | 83.44/83.44 | 0 | 0/0 | 0 |
|
||||||
|
| mid_prefill_throughput_32k_c16 | worker | mlx5_3 | 158 | 83.45/83.45 | 0 | 0/0 | 0 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | mlx5_0 | 131 | 38.01/38.01 | 0 | 0/0 | 0 |
|
||||||
|
| decode_control_1k_to_1k_c32 | head | mlx5_3 | 131 | 38.00/38.00 | 0 | 0/0 | 0 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | mlx5_0 | 137 | 37.74/37.74 | 0 | 0/0 | 0 |
|
||||||
|
| decode_control_1k_to_1k_c32 | worker | mlx5_3 | 137 | 37.75/37.75 | 0 | 0/0 | 0 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | mlx5_0 | 173 | 46.80/46.80 | 0 | 0/0 | 0 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | head | mlx5_3 | 173 | 46.81/46.81 | 0 | 0/0 | 0 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | mlx5_0 | 179 | 46.67/46.67 | 0 | 0/0 | 0 |
|
||||||
|
| decode_with_128k_prefill_1k_to_1k_c32 | worker | mlx5_3 | 179 | 46.67/46.67 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | mlx5_0 | 42 | 74.15/74.15 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | head | mlx5_3 | 42 | 74.23/74.23 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | mlx5_0 | 43 | 74.55/74.54 | 0 | 0/0 | 0 |
|
||||||
|
| long_prefill_injection_128k_to_1_c1 | worker | mlx5_3 | 43 | 74.57/74.58 | 0 | 0/0 | 0 |
|
||||||
|
|
||||||
|
## 8. PCIe P2P and NCCL communication baseline
|
||||||
|
|
||||||
|
Data: `communication_aggregate.csv`; raw: `communication/*.log`.
|
||||||
|
|
||||||
|
| Test | Scope | Path/CROSS_NIC | Samples/repetitions | Size (MiB) | Mean latency (ms) | Bandwidth / busbw (GB/s) | Minimum | Wrong values |
|
||||||
|
|---|---|---|---:|---:|---:|---:|---:|---:|
|
||||||
|
| all_reduce | head_8gpu | 2 | 3 | 1 | 1.18 | 1.64 | 1.16 | 0 |
|
||||||
|
| all_reduce | head_8gpu | 2 | 3 | 1024 | 47.26 | 39.76 | 39.67 | 0 |
|
||||||
|
| all_reduce | head_8gpu | 2 | 3 | 64 | 3.11 | 37.79 | 37.25 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 0 | 3 | 1 | 1.17 | 1.73 | 1.32 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 0 | 3 | 1024 | 51.17 | 39.35 | 39.30 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 0 | 3 | 64 | 3.40 | 36.98 | 36.72 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 1 | 3 | 1 | 1.30 | 1.65 | 1.06 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 1 | 3 | 1024 | 50.73 | 39.68 | 39.59 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 1 | 3 | 64 | 3.38 | 37.25 | 36.86 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 2 | 3 | 1 | 1.14 | 1.76 | 1.41 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 2 | 3 | 1024 | 50.93 | 39.53 | 39.34 | 0 |
|
||||||
|
| all_reduce | two_node_16gpu | 2 | 3 | 64 | 3.43 | 36.65 | 36.14 | 0 |
|
||||||
|
| all_reduce | worker_8gpu | 2 | 3 | 1 | 0.97 | 1.91 | 1.66 | 0 |
|
||||||
|
| all_reduce | worker_8gpu | 2 | 3 | 1024 | 47.27 | 39.75 | 39.56 | 0 |
|
||||||
|
| all_reduce | worker_8gpu | 2 | 3 | 64 | 3.07 | 38.22 | 37.44 | 0 |
|
||||||
|
| p2p_copy | head | cross_numa_sys | 32 | 256 | - | 52.40 | 52.18 | - |
|
||||||
|
| p2p_copy | head | same_pcie_switch | 24 | 256 | - | 53.61 | 53.35 | - |
|
||||||
|
| p2p_copy | worker | cross_numa_sys | 32 | 256 | - | 52.32 | 52.08 | - |
|
||||||
|
| p2p_copy | worker | same_pcie_switch | 24 | 256 | - | 53.50 | 53.22 | - |
|
||||||
|
|
||||||
|
## 9. Machine-readable summaries
|
||||||
|
|
||||||
|
- `gpu_summary.csv`
|
||||||
|
- `rdma_summary.csv`
|
||||||
|
- `bench_summary.csv`
|
||||||
|
- `case_windows.csv`
|
||||||
|
- `case_gpu_summary.csv`
|
||||||
|
- `case_gpu_node_summary.csv`
|
||||||
|
- `case_dcgm_summary.csv`
|
||||||
|
- `case_cpu_summary.csv`
|
||||||
|
- `case_process_summary.csv`
|
||||||
|
- `case_perf_summary.csv`
|
||||||
|
- `case_numa_summary.csv`
|
||||||
|
- `case_netdev_summary.csv`
|
||||||
|
- `case_rdma_summary.csv`
|
||||||
|
- `communication_summary.csv`
|
||||||
|
- `communication_aggregate.csv`
|
||||||
|
- `summary.json`
|
||||||
|
|
||||||
|
Each conclusion must cite the corresponding table above and its raw file; missing samples are reported as `-`, never interpreted as zero.
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
|||||||
|
docker run -d --name dsv4pro_pro6000d_2node_sglang_tp16_quick_map_head --gpus all --network host --ipc host --shm-size 20g --ulimit memlock=-1 --ulimit stack=67108864 -v /data/hf_models/DeepSeek-V4-Pro:/data/hf_models/DeepSeek-V4-Pro:ro -v /data/hzy/sglang_cache/dsv4_pro_tp16:/root/.cache -e CUDA_VISIBLE_DEVICES=0\,1\,2\,3\,4\,5\,6\,7 -e PYTHONUNBUFFERED=1 -e HF_HUB_OFFLINE=1 -e TRANSFORMERS_OFFLINE=1 -e PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True -e NCCL_SOCKET_IFNAME=eth0 -e NCCL_IB_HCA==mlx5_0:1\,mlx5_3:1 -e NCCL_CROSS_NIC=1 -e NCCL_DEBUG=INFO -e SGLANG_SHARED_EXPERT_TP1=1 --device /dev/infiniband/rdma_cm --device /dev/infiniband/uverbs0 --device /dev/infiniband/uverbs3 --entrypoint python3 lmsysorg/sglang:nightly-dev-cu13-20260720-b3570a45 -m sglang.launch_server --model-path /data/hf_models/DeepSeek-V4-Pro --tp-size 16 --ep-size 2 --nnodes 2 --node-rank 0 --dist-init-addr 10.101.0.11:20002 --trust-remote-code --host 0.0.0.0 --port 30002 --mem-fraction-static 0.9 --cuda-graph-max-bs-decode 64 --max-running-requests 256
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
|||||||
|
docker run -d --name dsv4pro_pro6000d_2node_sglang_tp16_quick_map_worker --gpus all --network host --ipc host --shm-size 20g --ulimit memlock=-1 --ulimit stack=67108864 -v /data/hf_models/DeepSeek-V4-Pro:/data/hf_models/DeepSeek-V4-Pro:ro -v /data/hzy/sglang_cache/dsv4_pro_tp16:/root/.cache -e CUDA_VISIBLE_DEVICES=0\,1\,2\,3\,4\,5\,6\,7 -e PYTHONUNBUFFERED=1 -e HF_HUB_OFFLINE=1 -e TRANSFORMERS_OFFLINE=1 -e PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True -e NCCL_SOCKET_IFNAME=eth0 -e NCCL_IB_HCA==mlx5_0:1\,mlx5_3:1 -e NCCL_CROSS_NIC=1 -e NCCL_DEBUG=INFO -e SGLANG_SHARED_EXPERT_TP1=1 --device /dev/infiniband/rdma_cm --device /dev/infiniband/uverbs0 --device /dev/infiniband/uverbs3 --entrypoint python3 lmsysorg/sglang:nightly-dev-cu13-20260720-b3570a45 -m sglang.launch_server --model-path /data/hf_models/DeepSeek-V4-Pro --tp-size 16 --ep-size 2 --nnodes 2 --node-rank 1 --dist-init-addr 10.101.0.11:20002 --trust-remote-code --host 0.0.0.0 --port 30002 --mem-fraction-static 0.9 --cuda-graph-max-bs-decode 64 --max-running-requests 256
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"generated_at": "2026-07-31T17:05:04+08:00",
|
||||||
|
"bench_rows": 8,
|
||||||
|
"failed_bench_rows": 0,
|
||||||
|
"gpu_summary_rows": 16,
|
||||||
|
"rdma_summary_rows": 4,
|
||||||
|
"case_windows": 8,
|
||||||
|
"case_gpu_summary_rows": 128,
|
||||||
|
"case_rdma_summary_rows": 32,
|
||||||
|
"case_metric_rows": {
|
||||||
|
"gpu_node": 16,
|
||||||
|
"dcgm": 16,
|
||||||
|
"cpu": 16,
|
||||||
|
"process": 16,
|
||||||
|
"perf": 16,
|
||||||
|
"numa": 16,
|
||||||
|
"netdev": 32
|
||||||
|
},
|
||||||
|
"communication_aggregate_rows": 19,
|
||||||
|
"precise_windows": 8,
|
||||||
|
"collector_status_counts": {
|
||||||
|
"STARTED": 18,
|
||||||
|
"STOPPED": 18
|
||||||
|
},
|
||||||
|
"collector_files": {
|
||||||
|
"head": {
|
||||||
|
"dcgm_dmon.log": 1642103,
|
||||||
|
"docker_top.log": 2636664,
|
||||||
|
"gpu_samples.csv": 727301,
|
||||||
|
"markers.csv": 1860,
|
||||||
|
"mpstat.log": 3923940,
|
||||||
|
"numa_samples.csv": 11356,
|
||||||
|
"perf_stat.log": 188193,
|
||||||
|
"pidstat.log": 3070380,
|
||||||
|
"rdma.csv": 230893,
|
||||||
|
"sar_net.log": 534606,
|
||||||
|
"static_after.log": 1195708,
|
||||||
|
"static_before.log": 1306541
|
||||||
|
},
|
||||||
|
"worker": {
|
||||||
|
"dcgm_dmon.log": 1613150,
|
||||||
|
"docker_top.log": 2592658,
|
||||||
|
"gpu_samples.csv": 764832,
|
||||||
|
"markers.csv": 1902,
|
||||||
|
"mpstat.log": 3988645,
|
||||||
|
"numa_samples.csv": 12614,
|
||||||
|
"perf_stat.log": 191154,
|
||||||
|
"pidstat.log": 3024655,
|
||||||
|
"rdma.csv": 243227,
|
||||||
|
"sar_net.log": 609685,
|
||||||
|
"static_after.log": 1195276,
|
||||||
|
"static_before.log": 1306123
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -442,14 +442,18 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>DeepSeek-V4-Pro / 双机 Pro6000D / SGLang 硬件与资源竞争归因</td>
|
<td>DeepSeek-V4-Pro / 双机 Pro6000D / SGLang 硬件与资源竞争归因</td>
|
||||||
<td>最终采集代码已完成;首轮 8/8 成功,Worker 分发修复与双节点通信 smoke test 已通过,等待最终正式复跑</td>
|
<td>Phase 2 已完成;最终 Run 8/8、精确窗口 8/8、采集器 18/18,双节点资源已清理</td>
|
||||||
<td>Phase 2 进行中;完成最终复跑与汇报后生成实验档案和代码详解</td>
|
<td>
|
||||||
|
<a href="./phase2_exp.html">打开 Phase 2 实验档案</a><br>
|
||||||
|
<a href="./phase2_code.html">打开 Phase 2 代码详解</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody></table>
|
</tbody></table>
|
||||||
<p>
|
<p>
|
||||||
<strong>阶段档案生成门禁:</strong>Phase 在实验结束、结果汇总并完成汇报确认前,
|
<strong>阶段档案生成门禁:</strong>Phase 尚未产出正式阶段结果、完成汇总和汇报确认前,
|
||||||
不创建或维护 <code>phaseN_exp.html</code> 与 <code>phaseN_code.html</code>;
|
不创建或维护 <code>phaseN_exp.html</code> 与 <code>phaseN_code.html</code>;
|
||||||
进行中只维护代码、原始结果和本页状态。阶段确认完成后再一次性生成两份最终 HTML,
|
此时只维护代码、原始结果和本页状态。已有正式阶段结果的 Phase 保留档案,
|
||||||
|
并在补测后更新;首次达到完成门槛时再一次性生成两份最终 HTML,
|
||||||
正文只保留成功实验、有效结果和结论,失败尝试压缩到末尾的经验教训。
|
正文只保留成功实验、有效结果和结论,失败尝试压缩到末尾的经验教训。
|
||||||
</p>
|
</p>
|
||||||
<h2>0. 先看懂双机通信</h2>
|
<h2>0. 先看懂双机通信</h2>
|
||||||
@ -486,7 +490,7 @@ GPU0–3 与 GPU4–7 各自在本地 PCIe Switch 内通信,两组之间还要
|
|||||||
和 CPU/NUMA 互联。NCCL 机内日志中的 <code>P2P/IPC</code> 是 CUDA P2P over PCIe;
|
和 CPU/NUMA 互联。NCCL 机内日志中的 <code>P2P/IPC</code> 是 CUDA P2P over PCIe;
|
||||||
两机之间则使用 <code>mlx5_0/mlx5_3</code> 双 Rail
|
两机之间则使用 <code>mlx5_0/mlx5_3</code> 双 Rail
|
||||||
<code>NET/IB + GDRDMA</code>。Phase 2 最终代码已加入机内 PCIe P2P 全矩阵、
|
<code>NET/IB + GDRDMA</code>。Phase 2 最终代码已加入机内 PCIe P2P 全矩阵、
|
||||||
单机 8-rank 和双机 16-rank NCCL 微基准;正式数值在最终复跑后写入阶段档案。
|
单机 8-rank 和双机 16-rank NCCL 微基准;正式数值已写入 Phase 2 实验档案。
|
||||||
</p>
|
</p>
|
||||||
<h2>1. 目标与原则</h2>
|
<h2>1. 目标与原则</h2>
|
||||||
<h3>1.1 最终目标</h3>
|
<h3>1.1 最终目标</h3>
|
||||||
@ -736,21 +740,23 @@ TPOT P95 增加 66.55%。Phase 2 将围绕这两个现象采集硬件时间序
|
|||||||
不伪装成当前已有能力;它们分别由后续硬件指标与 Profiling 阶段补齐。</p>
|
不伪装成当前已有能力;它们分别由后续硬件指标与 Profiling 阶段补齐。</p>
|
||||||
<h2>6. Phase 2:同步采集轻量硬件指标</h2>
|
<h2>6. Phase 2:同步采集轻量硬件指标</h2>
|
||||||
<p>
|
<p>
|
||||||
本阶段尚在进行中,按照阶段档案生成门禁,暂不生成实验档案和代码详解 HTML。
|
本阶段已有正式 Run 结果,实验与代码说明见
|
||||||
当前代码与原始结果保留在仓库实验目录;本阶段重放长 Prefill、并发 Prefill、
|
<a href="./phase2_exp.html">Phase 2 实验档案</a> 和
|
||||||
|
<a href="./phase2_code.html">Phase 2 代码详解</a>。本阶段重放长 Prefill、并发 Prefill、
|
||||||
普通 Decode、长输出 Decode、长上下文 Decode,以及
|
普通 Decode、长输出 Decode、长上下文 Decode,以及
|
||||||
<code>1K → 1K, C=32</code> 的混合 A/B。首轮 Run
|
<code>1K → 1K, C=32</code> 的混合 A/B。最终 Run
|
||||||
<code>dsv4pro-phase2-20260731-130125</code> 在 26 分 26 秒内完成 8/8 个结果;
|
<code>dsv4pro-phase2-20260731-163620</code> 在 28 分 44 秒内完成 8/8 个结果,
|
||||||
最终采集代码在提交 <code>39fc2ba565a3</code> 修复 Worker 分发,并由
|
正式测量窗口 8/8 精确,18/18 个采集器正常启停;Head/Worker 的 DCGM、
|
||||||
Run <code>dsv4pro-phase2-stage-smoke-20260731-162326</code> 完成双节点通信功能验证;
|
CPU、NUMA、RDMA 和通信微基准数据均有效。实验后两节点容器、端口和
|
||||||
完成最终正式复跑和汇报后才进入 Phase 3。
|
16 张 GPU 已清理,下一步进入 Phase 3。
|
||||||
</p>
|
</p>
|
||||||
<h3>6.1 首轮归因结果</h3>
|
<h3>6.1 最终归因结果</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>混合负载再次稳定复现:Decode Output TPS 下降 24.03%,TPOT P95 增加 66.79%,E2E P95 增加 63.30%。</li>
|
<li>混合负载稳定复现:Decode Output TPS 下降 23.96%,TPOT P95 增加 66.75%,E2E P95 增加 63.38%。</li>
|
||||||
<li>128K Prefill 注入窗口两节点 GPU 平均利用率约 99%,功耗约 274 W,频率稳定;显存每卡约 83.2–83.4 GiB,只剩约 2.3 GiB 余量。</li>
|
<li>GPU Util 多数为 94%–99%,频率稳定在 2.39–2.42 GHz;整机 CPU Active 约 9.6%–10.4%,没有全机 CPU 饱和或 GPU 降频。</li>
|
||||||
<li>整机 CPU 平均约 8%–11%,没有全机 CPU 或 I/O Wait 饱和,但少量 CPU 核持续高负载,Scheduler/Affinity/NUMA 热点仍需关注。</li>
|
<li>双 Rail 流量对称且错误增量为 0;最高约 83.5 Gbit/s/rail,仅约占单条 400G Rail 的 20.9%。</li>
|
||||||
<li>双 Rail 流量对称且错误增量为 0;最高平均总发送约 140 Gbit/s,即每条 400G Rail 约 70 Gbit/s,原始 RoCE 带宽未饱和。</li>
|
<li>PCIe 跨 NUMA P2P 损失约 2.3%;16-GPU AllReduce busbw 约 39.3–39.7 GB/s。</li>
|
||||||
|
<li><code>NCCL_CROSS_NIC=0/1/2</code> 差异小于 1%,不再作为主要调优方向。</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
最终代码已经把首轮的采集限制变成强制门禁:两节点
|
最终代码已经把首轮的采集限制变成强制门禁:两节点
|
||||||
|
|||||||
@ -212,10 +212,21 @@ C = 16, 32, 48, 64, ...
|
|||||||
|
|
||||||
## 6. Phase 2:同步采集硬件指标
|
## 6. Phase 2:同步采集硬件指标
|
||||||
|
|
||||||
Phase 2 尚在进行中。按照阶段档案生成门禁,在最终正式复跑、结果汇总和汇报确认前,
|
Phase 2 已有正式阶段结果,详见 [Phase 2 实验档案](./phase2_exp.html) 和
|
||||||
不生成 `phase2_exp.html` 与 `phase2_code.html`。
|
[Phase 2 代码详解](./phase2_code.html)。
|
||||||
首轮 8/8 benchmark 已完成;最终采集代码、Worker 分发修复和双节点通信
|
最终 Run `dsv4pro-phase2-20260731-163620` 在 28 分 44 秒内完成 8/8
|
||||||
smoke test 已通过,等待最终正式复跑。
|
benchmark,正式测量窗口 8/8 精确,18/18 个采集器正常启停。两节点
|
||||||
|
DCGM、CPU、NUMA、双 Rail RDMA 和通信微基准数据均有效,实验后容器、
|
||||||
|
端口与 16 张 GPU 已清理。
|
||||||
|
|
||||||
|
最终归因:
|
||||||
|
|
||||||
|
- 混合 Prefill/Decode 令 Output TPS 下降 23.96%、TPOT P95 增加 66.75%。
|
||||||
|
- GPU 未降频、整机 CPU 未饱和,双 Rail 最高约 83.5 Gbit/s/rail 且零错误。
|
||||||
|
- PCIe 跨 NUMA P2P 损失约 2.3%,16-GPU AllReduce busbw 约 39.3-39.7 GB/s。
|
||||||
|
- `NCCL_CROSS_NIC=0/1/2` 差异小于 1%,不再作为主要调优方向。
|
||||||
|
- Phase 3 只需捕获混合 Control/Treatment 的短 Timeline,定位 Kernel、
|
||||||
|
Collective、Scheduler gap 与慢 Rank 同步。
|
||||||
|
|
||||||
Phase 2 只提供一个用户入口:
|
Phase 2 只提供一个用户入口:
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user