Compare commits
2 Commits
3b7291e8a0
...
405608ad23
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
405608ad23 | ||
|
|
771b868757 |
@ -1,5 +1,13 @@
|
||||
# sskj — 多平台大模型推理性能基准测试项目
|
||||
|
||||
> **更新(2026-07-31 18:53:00 CST)**
|
||||
>
|
||||
> Phase 3 PyTorch Profiler 首轮 smoke 已证明双节点 16 个 rank 均可完成 trace 写盘,Head/Worker 分别生成 8 份、约 1.5/1.4 GB 压缩 trace。修复当前 OpenSSH 不接受 `scp remote:/path/.` 导致 Worker 结果未回收的问题,改为 SSH tar 流式传输;正式入口不再忽略回收失败,并新增至少 16 份 PyTorch rank trace、至少 2 份 Nsight 节点报告的结果门禁。
|
||||
>
|
||||
> **更新(2026-07-31 18:43:00 CST)**
|
||||
>
|
||||
> 为 Phase 2 实验档案第 11 节的 GPU/DCGM、CPU/进程/NUMA、双 Rail RDMA、PCIe/NCCL 四组结果补充服务器证据路径。每组同时标明结构化汇总 CSV、Head/Worker 原始采样日志、通信原始输出及实际命令文件,便于从结论直接追溯最终 Run `dsv4pro-phase2-20260731-163620` 的证据。
|
||||
>
|
||||
> **更新(2026-07-31 18:38:00 CST)**
|
||||
>
|
||||
> 新增 DeepSeek-V4-Pro 双机 Pro6000D SGLang Phase 3 时间线分析唯一入口。代码提供双节点环境审计、PyTorch Profiler smoke、Nsight Systems smoke 与三段正式 capture range,覆盖 Decode 对照、Decode 背景叠加 128K Prefill、独立 128K Prefill;沿用 Phase 1 已验证的 TP16/EP2、CUDA Graph 与双 Rail NET/IB 配置,不重复 Phase 2 的硬件采样和通信微基准。阶段尚未产出正式结果,因此按档案门禁暂不创建 `phase3_exp.html` 或 `phase3_code.html`。
|
||||
|
||||
@ -705,6 +705,12 @@ tmux new-session -d -s dsv4pro-phase2 \
|
||||
|
||||
<h2>11. 第 5 节指标逐项结果</h2>
|
||||
<h3>11.1 GPU 基础状态与 DCGM</h3>
|
||||
<p><strong>服务器证据路径:</strong><br>
|
||||
汇总:<code>/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/case_gpu_summary.csv</code>、
|
||||
<code>case_gpu_node_summary.csv</code>、<code>case_dcgm_summary.csv</code><br>
|
||||
原始:同一 Run 目录下的 <code>head/gpu_samples.csv</code>、<code>worker/gpu_samples.csv</code>、
|
||||
<code>head/dcgm_dmon.log</code>、<code>worker/dcgm_dmon.log</code>
|
||||
</p>
|
||||
<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>
|
||||
@ -714,6 +720,12 @@ tmux new-session -d -s dsv4pro-phase2 \
|
||||
</ul>
|
||||
|
||||
<h3>11.2 CPU、进程与 NUMA</h3>
|
||||
<p><strong>服务器证据路径:</strong><br>
|
||||
汇总:<code>/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/case_cpu_summary.csv</code>、
|
||||
<code>case_process_summary.csv</code>、<code>case_perf_summary.csv</code>、<code>case_numa_summary.csv</code><br>
|
||||
原始:同一 Run 目录下 Head/Worker 各自的 <code>mpstat.log</code>、<code>pidstat.log</code>、
|
||||
<code>perf_stat.log</code>、<code>numa_samples.csv</code> 和 <code>docker_top.log</code>
|
||||
</p>
|
||||
<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>
|
||||
@ -722,6 +734,13 @@ tmux new-session -d -s dsv4pro-phase2 \
|
||||
</ul>
|
||||
|
||||
<h3>11.3 双 Rail RDMA</h3>
|
||||
<p><strong>服务器证据路径:</strong><br>
|
||||
汇总:<code>/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/case_rdma_summary.csv</code>、
|
||||
<code>rdma_summary.csv</code>、<code>case_netdev_summary.csv</code><br>
|
||||
原始:同一 Run 目录下的 <code>head/rdma.csv</code>、<code>worker/rdma.csv</code>、
|
||||
<code>head/sar_net.log</code>、<code>worker/sar_net.log</code>;端口/HCA 静态状态在两端
|
||||
<code>static_before.log</code> 与 <code>static_after.log</code>
|
||||
</p>
|
||||
<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>
|
||||
@ -730,6 +749,13 @@ tmux new-session -d -s dsv4pro-phase2 \
|
||||
</ul>
|
||||
|
||||
<h3>11.4 PCIe 与 NCCL 通信基线</h3>
|
||||
<p><strong>服务器证据路径:</strong><br>
|
||||
汇总:<code>/data/hzy/sskj/experiments/pro6000/dsv4pro_pro6000d_2node_sglang_hardware_contention_attribution/results/dsv4pro-phase2-20260731-163620/communication_aggregate.csv</code>、
|
||||
<code>communication_summary.csv</code><br>
|
||||
原始:同一 Run 目录的 <code>communication/p2p_head.log</code>、<code>p2p_worker.log</code>、
|
||||
<code>allreduce_head_8gpu.log</code>、<code>allreduce_worker_8gpu.log</code> 和
|
||||
<code>allreduce_16gpu_crossnic{0,1,2}_{head,worker}.log</code>;实际执行命令在 <code>commands/communication_*.cmd.txt</code>
|
||||
</p>
|
||||
<table>
|
||||
<thead><tr><th>测试</th><th>结果</th><th>解释</th></tr></thead>
|
||||
<tbody>
|
||||
|
||||
@ -298,15 +298,36 @@ stop_service_node() {
|
||||
fetch_worker_profiles() {
|
||||
[[ "${DRY_RUN}" == "1" ]] && return 0
|
||||
mkdir -p "${RESULT_DIR}/profiles/worker"
|
||||
scp -q -r "${WORKER_NODE}:${WORKER_PROFILE_HOST}/." \
|
||||
"${RESULT_DIR}/profiles/worker/"
|
||||
ssh -o BatchMode=yes -o StrictHostKeyChecking=no "${WORKER_NODE}" \
|
||||
"tar -C '${WORKER_PROFILE_HOST}' -cf - ." \
|
||||
| tar -C "${RESULT_DIR}/profiles/worker" -xf -
|
||||
run_on_node "${WORKER_NODE}" "rm -rf '${WORKER_RUN_DIR}'"
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
stop_service_node "${HEAD_NODE}" "${HEAD_CONTAINER}" head
|
||||
stop_service_node "${WORKER_NODE}" "${WORKER_CONTAINER}" worker
|
||||
fetch_worker_profiles || true
|
||||
fetch_worker_profiles
|
||||
}
|
||||
|
||||
validate_torch_traces() {
|
||||
local count
|
||||
count="$(find "${RESULT_DIR}/profiles" -type f -name '*.trace.json.gz' | wc -l)"
|
||||
if (( count < TP_SIZE )); then
|
||||
log "ERROR: expected at least ${TP_SIZE} rank traces, found ${count}"
|
||||
return 1
|
||||
fi
|
||||
log "PyTorch trace validation passed: ${count} rank traces"
|
||||
}
|
||||
|
||||
validate_nsys_reports() {
|
||||
local count
|
||||
count="$(find "${RESULT_DIR}/profiles" -type f -name '*.nsys-rep' | wc -l)"
|
||||
if (( count < NNODES )); then
|
||||
log "ERROR: expected at least ${NNODES} Nsight reports, found ${count}"
|
||||
return 1
|
||||
fi
|
||||
log "Nsight report validation passed: ${count} reports"
|
||||
}
|
||||
|
||||
flush_cache() {
|
||||
@ -539,6 +560,7 @@ run_torch_smoke() {
|
||||
"${TORCH_SMOKE_STEPS}" "${CONTROL_ISL}" 128 8 8 5101
|
||||
stop_service
|
||||
CLEANUP_ON_EXIT=0
|
||||
validate_torch_traces
|
||||
write_manifest COMPLETED
|
||||
}
|
||||
|
||||
@ -553,6 +575,7 @@ run_nsys_smoke() {
|
||||
"${CONTROL_CONCURRENCY}" "${CONTROL_PROMPTS}" 5102
|
||||
stop_service
|
||||
CLEANUP_ON_EXIT=0
|
||||
validate_nsys_reports
|
||||
generate_nsys_stats
|
||||
write_manifest COMPLETED
|
||||
}
|
||||
@ -571,6 +594,7 @@ run_all() {
|
||||
"${NSYS_PREFILL_STEPS}" "${PREFILL_ISL}" "${PREFILL_OSL}" 1 1 5303
|
||||
stop_service
|
||||
CLEANUP_ON_EXIT=0
|
||||
validate_nsys_reports
|
||||
generate_nsys_stats
|
||||
write_manifest COMPLETED
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user