Design, Implementation & Result Record

Phase 2:DeepSeek-V4-Pro 双机 Pro6000D SGLang Prefill 硬件归因

节点:174.1.51.5 + 174.1.51.7 拓扑:SGLang TP16 / EP2 更新:2026-07-30 22:55:37 CST
返回推理优化主计划

当前状态:Phase 1 前置条件已通过,等待阶段汇报确认后开始实现。 Phase 2 代码尚未创建。本页已经根据最终 Phase 1 结果选择诊断 Case; 后续代码改动、静态验证、真机运行和结果判断会同步写入本页。

1. Phase 1 交接结果

代表负载关键结果Phase 2 用途
128K → 1,C=1Input TPS 2,710.16;TTFT P95 48.344 s纯长 Prefill 的计算、显存与通信归因
32K → 1,C=16Input TPS 3,112.77;TTFT P95 162.087 s并发 Prefill 的排队、Chunk 调度与节点均衡
1K → 1K,C=32 + 128K 注入Output TPS -24.08%;TPOT P95 +66.55%Prefill 干扰 Decode 时的硬件资源竞争

最终基线已由 Head 与 Worker 日志证明使用 mlx5_0/mlx5_3 双 Rail NET/IB + GDRDMA, 正式测量请求为冷 Prefix,12/12 结果成功。Phase 2 保持相同服务配置和请求口径。

2. 本阶段的边界

3. 待验证假设

假设预期硬件表现后续方向
DSV4/NSA Prefill Kernel 计算受限GPU 持续忙、高功耗和稳定频率;双 Rail 流量不高Phase 3 捕获 Kernel 与 Attention/Indexer 时间线
权重或激活显存带宽受限GPU Memory Utilization 高,SM 指标未必饱和;功耗可能低于纯计算补 DCGM/Profiler 的 DRAM Active,再看 Kernel
TP16 跨机通信受限RoCE 吞吐高或两条 Rail 明显失衡,GPU 出现等待NCCL_CROSS_NIC 0/1/2 快速 A/B,随后看 NCCL Timeline
CPU Scheduler 或 Kernel Launch 受限GPU 利用率锯齿或有空洞,单 CPU 核持续满载定位 Scheduler/Tokenizer 线程与 launch gap
频率、功耗或温度限制P-state、SM Clock 或 Power 持续异常,可能出现节流原因修正电源、散热或 Clock Policy 后复测
节点或 Rank 不均衡两节点或不同 GPU 的利用率、功耗、网络流量存在固定偏差检查 NUMA、GPU-NIC 亲和与慢 Rank

4. 诊断 Run

  1. 保存两节点静态快照:GPU/NIC/NUMA 拓扑、驱动、CUDA、镜像与服务命令。
  2. 复用 Phase 1 已验证的 run_quick_map.sh start 启动同配置双机服务。
  3. 在 Head 和 Worker 同时启动 GPU、CPU、网卡与 RDMA 采样,先记录 15 秒空闲基线。
  4. 依次重放 128K → 1, C=132K → 1, C=16,请求参数和 Seed 与 Phase 1 一致。
  5. 重放 1K → 1K, C=32 Control 与 128K Prefill 注入 Treatment,保留相同注入时序。
  6. 请求结束后继续采样 15 秒,再停止采集器和服务。
  7. 按时间戳将请求、GPU、CPU 和双 Rail 指标对齐,生成摘要与判定。
idle 15s │ 128K C1 │ 32K C16 │ Decode Control │ Decode + Prefill │ cooldown 15s
          Head 与 Worker 的所有采集器覆盖完整诊断窗口

Phase 1 中服务加载约 5 分 30 秒,三个诊断负载合计为分钟级; 连同静态快照、采样和清理,目标仍控制在 30 分钟内。

5. 采集指标

层级连续采样静态或前后快照局限
GPU利用率、Memory Utilization、显存、功耗、SM/Memory Clock、温度、P-statenvidia-smi topo -m、Compute Processnvidia-smi 的 Memory Utilization 不是实际 HBM GB/s
CPU每核利用率、上下文切换、服务进程 CPU/内存NUMA 拓扑、容器 PID 与 CPU Affinity需要时间戳与 GPU Chunk 日志对齐
Networketh0/eth3 RX/TXethtool -S 错误计数前后差普通 netdev 统计不一定覆盖所有 RDMA 细节
RDMAmlx5_0/mlx5_3 port_xmit/recv_data 差分Port State、GID 与错误计数计数单位需要按设备定义换算
DCGM若可用则记录 SM Active、DRAM Active、Tensor Active、PCIe工具版本与可用 Field不可用时明确记录,不能用粗粒度指标冒充

6. 精简代码设计

计划新增目录:

/data/hzy/sskj/experiments/pro6000/
dsv4pro_pro6000d_2node_sglang_prefill_hardware_attribution/
文件计划职责当前状态
run_prefill_hardware_attribution.sh唯一 Shell 入口;服务启停、双节点采集器、单 Case、Trap 清理待实现
config.envPhase 1 入口路径、三个诊断 Case、采样间隔、结果路径待实现
hardware_attribution.py结构化解析、时间对齐、统计摘要与报告生成待实现
tests/test_hardware_attribution.py计数器差分、单位换算、统计与缺失工具回退测试待实现
README.md入口命令、环境变量和结果目录说明待实现

Phase 2 不复制双机 Docker 启停实现。唯一入口通过环境变量调用 Phase 1 的 run_quick_map.sh start/stop,只新增硬件采集和三个代表负载的编排。 顶层仍只保留一个 Shell 文件,不创建额外 tmux、launch、start 或 stop 脚本。

7. 预期结果结构

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
  head/
    gpu.csv
    cpu_mpstat.log
    cpu_pidstat.log
    net_sar.log
    rdma.csv
    static/
  worker/
    gpu.csv
    cpu_mpstat.log
    cpu_pidstat.log
    net_sar.log
    rdma.csv
    static/
  summary.json
  summary.csv
  report.md

8. 验收条件

9. 实施记录

时间代码或运行结果
2026-07-30 15:46 CST创建 Phase 2 设计与档案采用单入口和独立轻量采样,不复制双机服务启动逻辑
2026-07-30 22:55:37 CST完成 Phase 1 阶段交接双 Rail 门禁和 12/12 正式结果通过;选定纯 Prefill、并发 Prefill、混合干扰三个诊断负载

10. 真机结果

尚未运行。按阶段门约定,先完成 Phase 1 汇报;用户确认进入 Phase 2 后, 再实现代码、完成静态验证和 Dry-run,并在启动真机诊断前说明具体改动。

返回 Phase 1 实施记录

返回推理优化主计划