Evaluate Qwen30 prefill simulator fidelity

This commit is contained in:
2026-07-17 03:11:45 +08:00
parent 97c2f34700
commit 3a59d5df96
20 changed files with 8280 additions and 28 deletions

View File

@@ -0,0 +1,462 @@
#!/usr/bin/env python3
"""Compare the frozen Frontier surface with conservative real capacities."""
from __future__ import annotations
import argparse
import csv
import hashlib
import json
import math
import re
from collections import defaultdict
from datetime import datetime
from pathlib import Path
from typing import Any
RUN_PATTERN = re.compile(r"qwen30-prefill-real-tp(?P<tp>\d+)-mns(?P<mns>\d+)-")
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("--fleet-artifacts", type=Path, required=True)
parser.add_argument(
"--simulator-manifest", type=Path, action="append", required=True
)
parser.add_argument("--output-root", type=Path, required=True)
return parser.parse_args()
def sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as handle:
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
digest.update(chunk)
return digest.hexdigest()
def load_json(path: Path) -> dict[str, Any]:
return json.loads(path.read_text())
def sign(value: float) -> int:
return (value > 0) - (value < 0)
def kendall_tau_b(real: list[float], simulated: list[float]) -> dict[str, Any]:
if len(real) != len(simulated):
raise ValueError("ranking vectors have different lengths")
concordant = discordant = real_only_ties = simulated_only_ties = both_ties = 0
for left in range(len(real)):
for right in range(left + 1, len(real)):
real_sign = sign(real[left] - real[right])
sim_sign = sign(simulated[left] - simulated[right])
if real_sign == 0 and sim_sign == 0:
both_ties += 1
elif real_sign == 0:
real_only_ties += 1
elif sim_sign == 0:
simulated_only_ties += 1
elif real_sign == sim_sign:
concordant += 1
else:
discordant += 1
denominator = math.sqrt(
(concordant + discordant + real_only_ties)
* (concordant + discordant + simulated_only_ties)
)
tau = (concordant - discordant) / denominator if denominator else None
return {
"kendall_tau_b": tau,
"concordant": concordant,
"discordant": discordant,
"real_only_ties": real_only_ties,
"simulator_only_ties": simulated_only_ties,
"both_ties": both_ties,
}
def result_files_by_anchor(root: Path) -> dict[tuple[str, str], Path]:
selected: dict[tuple[str, str], Path] = {}
digests: dict[tuple[str, str], str] = {}
for path in root.glob("artifacts/**/round*/results/r*.json"):
if path.name.startswith("warmup_"):
continue
round_name = path.parent.parent.name
key = (round_name, path.name)
digest = sha256(path)
if key in digests and digests[key] != digest:
raise RuntimeError(
f"conflicting duplicate real anchor {key} under {root}"
)
digests[key] = digest
if key not in selected or len(path.parts) < len(selected[key].parts):
selected[key] = path
return selected
def find_real_runs(root: Path) -> dict[str, Path]:
candidates: dict[str, list[Path]] = defaultdict(list)
for path in root.iterdir():
if not path.is_dir():
continue
match = RUN_PATTERN.search(path.name)
if not match:
continue
name = f"tp{int(match.group('tp'))}_mns{int(match.group('mns'))}"
candidates[name].append(path)
selected: dict[str, Path] = {}
for name, paths in candidates.items():
complete = [
path
for path in paths
if (path / "remote_run" / "exit_code").is_file()
and (path / "remote_run" / "exit_code").read_text().strip() == "0"
]
measured_counts = {
path: len(result_files_by_anchor(path))
for path in complete
}
if not measured_counts:
raise RuntimeError(f"no successful run for {name}")
maximum = max(measured_counts.values())
richest = [path for path, count in measured_counts.items() if count == maximum]
if len(richest) != 1:
raise RuntimeError(f"ambiguous richest successful run for {name}: {richest}")
selected[name] = richest[0]
if len(selected) != 12:
raise RuntimeError(f"expected 12 real configs, got {sorted(selected)}")
return selected
def campaign_resources(root: Path) -> dict[str, Any]:
runs = []
gpu_hours = 0.0
for path in sorted(root.iterdir()):
match = RUN_PATTERN.search(path.name)
exit_code = path / "remote_run" / "exit_code"
started_at = path / "remote_run" / "started_at"
finished_at = path / "remote_run" / "finished_at"
if (
not path.is_dir()
or not match
or not exit_code.is_file()
or exit_code.read_text().strip() != "0"
or not started_at.is_file()
or not finished_at.is_file()
):
continue
started = datetime.fromisoformat(started_at.read_text().strip())
finished = datetime.fromisoformat(finished_at.read_text().strip())
duration_seconds = (finished - started).total_seconds()
tp = int(match.group("tp"))
run_gpu_hours = duration_seconds * tp / 3600.0
gpu_hours += run_gpu_hours
runs.append(
{
"run": path.name,
"tp": tp,
"duration_seconds": duration_seconds,
"gpu_hours": run_gpu_hours,
}
)
return {
"successful_fleet_jobs": len(runs),
"gpu_hours": gpu_hours,
"runs": runs,
}
def parse_real_config(name: str, run_root: Path) -> dict[str, Any]:
result_files = sorted(result_files_by_anchor(run_root).values())
if len(result_files) not in {10, 16}:
raise RuntimeError(f"expected 10 base or 16 refined anchors for {name}, got {len(result_files)}")
by_rate: dict[float, list[dict[str, Any]]] = defaultdict(list)
for path in result_files:
payload = load_json(path)
rate = float(payload["workload"]["offered_request_rate"])
by_rate[rate].append(
{
"path": str(path.resolve()),
"sha256": sha256(path),
"summary": payload["summary"],
}
)
tp = int(name.split("_")[0][2:])
base_rates = [4.0, 8.0, 16.0, 32.0, 64.0]
refined_rates = sorted({*base_rates, *(tp * value for value in (5.0, 6.0, 7.0))})
if tuple(sorted(by_rate)) not in {tuple(base_rates), tuple(refined_rates)}:
raise RuntimeError(f"unexpected rate grid for {name}: {sorted(by_rate)}")
anchors = []
for rate, rounds in sorted(by_rate.items()):
if len(rounds) != 2:
raise RuntimeError(f"expected two rounds for {name}@{rate}, got {len(rounds)}")
round_feasible = [bool(row["summary"]["slo"]["feasible"]) for row in rounds]
anchors.append(
{
"rate": rate,
"rounds": rounds,
"conservative_feasible": all(round_feasible),
"round_feasible": round_feasible,
"round_ttft_p95_ms": [
float(row["summary"]["ttft_p95_ms"]) for row in rounds
],
}
)
feasible = [row["rate"] for row in anchors if row["conservative_feasible"]]
capacity = max(feasible, default=0.0)
return {
"name": name,
"tp": tp,
"mns": int(name.split("_mns")[1]),
"anchors": anchors,
"capacity": capacity,
"capacity_per_gpu": capacity / tp,
"source_run": str(run_root.resolve()),
}
def parse_simulator(manifests: list[Path]) -> tuple[dict[str, Any], list[dict[str, str]]]:
configs: dict[str, Any] = {}
sources = []
for path in manifests:
payload = load_json(path)
if payload["status"] not in {"complete", "partial_not_decision_bearing"}:
raise RuntimeError(f"simulator manifest has invalid status: {path}")
sources.append({"path": str(path.resolve()), "sha256": sha256(path)})
result_by_name = {
result["config"]["name"]: result for result in payload["config_results"]
}
for capacity in payload["capacity"]:
name = capacity["config"]["name"]
result = result_by_name.get(name)
if result is None:
raise RuntimeError(f"missing simulator config result {name}")
entry = configs.setdefault(
name,
{
"name": name,
"tp": int(capacity["config"]["tp"]),
"mns": int(capacity["config"]["mns"]),
"anchor_by_rate": {},
},
)
for load in result["loads"]:
rate = float(load["offered_request_rate"])
if rate in entry["anchor_by_rate"]:
raise RuntimeError(f"duplicate simulator anchor {name}@{rate}")
entry["anchor_by_rate"][rate] = {
"rate": rate,
"feasible": bool(load["score"]["feasible"]),
"pass_rate": float(load["score"]["pass_rate"]),
"ttft_p95_ms": float(load["score"]["ttft_p95_ms"]),
}
if len(configs) != 12:
raise RuntimeError(f"expected 12 simulator configs, got {sorted(configs)}")
for entry in configs.values():
entry["anchors"] = [
entry["anchor_by_rate"][rate] for rate in sorted(entry["anchor_by_rate"])
]
del entry["anchor_by_rate"]
feasible = [row["rate"] for row in entry["anchors"] if row["feasible"]]
entry["capacity"] = max(feasible, default=0.0)
entry["capacity_per_gpu"] = entry["capacity"] / entry["tp"]
return configs, sources
def compare(real: dict[str, Any], simulated: dict[str, Any]) -> dict[str, Any]:
names = sorted(real, key=lambda name: (real[name]["tp"], real[name]["mns"]))
if set(names) != set(simulated):
raise RuntimeError("real and simulator config sets differ")
real_scores = [real[name]["capacity_per_gpu"] for name in names]
sim_scores = [simulated[name]["capacity_per_gpu"] for name in names]
real_best = max(real_scores)
sim_best = max(sim_scores)
real_top = [name for name in names if real[name]["capacity_per_gpu"] == real_best]
sim_top = [
name for name in names if simulated[name]["capacity_per_gpu"] == sim_best
]
worst_sim_choice = min(real[name]["capacity_per_gpu"] for name in sim_top)
best_sim_choice = max(real[name]["capacity_per_gpu"] for name in sim_top)
tau = kendall_tau_b(real_scores, sim_scores)
pairwise = {"all": {"comparable": 0, "correct": 0}, "within_tp": {}}
for left in range(len(names)):
for right in range(left + 1, len(names)):
real_sign = sign(real_scores[left] - real_scores[right])
sim_sign = sign(sim_scores[left] - sim_scores[right])
if real_sign:
pairwise["all"]["comparable"] += 1
pairwise["all"]["correct"] += int(real_sign == sim_sign)
if real[names[left]]["tp"] == real[names[right]]["tp"] and real_sign:
key = f"tp{real[names[left]]['tp']}"
bucket = pairwise["within_tp"].setdefault(
key, {"comparable": 0, "correct": 0}
)
bucket["comparable"] += 1
bucket["correct"] += int(real_sign == sim_sign)
for bucket in [pairwise["all"], *pairwise["within_tp"].values()]:
bucket["accuracy"] = (
bucket["correct"] / bucket["comparable"]
if bucket["comparable"]
else None
)
confusion = {"real_pass_sim_pass": 0, "real_pass_sim_fail": 0,
"real_fail_sim_pass": 0, "real_fail_sim_fail": 0}
for name in names:
real_anchors = {row["rate"]: row for row in real[name]["anchors"]}
sim_anchors = {row["rate"]: row for row in simulated[name]["anchors"]}
if set(real_anchors) != set(sim_anchors):
raise RuntimeError(f"anchor grids differ for {name}")
for rate in real_anchors:
real_pass = real_anchors[rate]["conservative_feasible"]
sim_pass = sim_anchors[rate]["feasible"]
key = f"real_{'pass' if real_pass else 'fail'}_sim_{'pass' if sim_pass else 'fail'}"
confusion[key] += 1
return {
"config_order": names,
"real_top_set": real_top,
"simulator_top_set": sim_top,
"top_set_exact_match": real_top == sim_top,
"top_set_overlap": sorted(set(real_top) & set(sim_top)),
"top1_regret_best": (real_best - best_sim_choice) / real_best,
"top1_regret_worst": (real_best - worst_sim_choice) / real_best,
"real_best_capacity_per_gpu": real_best,
"simulator_best_capacity_per_gpu": sim_best,
"kendall": tau,
"pairwise_non_tied": pairwise,
"anchor_confusion": confusion,
}
def write_csv(path: Path, rows: list[dict[str, Any]]) -> None:
with path.open("w", newline="") as handle:
writer = csv.DictWriter(
handle, fieldnames=list(rows[0]), lineterminator="\n"
)
writer.writeheader()
writer.writerows(rows)
def plot(path: Path, rows: list[dict[str, Any]], metrics: dict[str, Any]) -> None:
import matplotlib.pyplot as plt
import numpy as np
labels = [f"TP{row['tp']}\nMNS{row['mns']}" for row in rows]
x = np.arange(len(rows))
width = 0.36
figure, axes = plt.subplots(
1, 2, figsize=(13.5, 5.0), gridspec_kw={"width_ratios": [3.3, 1.0]}
)
axis = axes[0]
axis.bar(x - width / 2, [row["real"] for row in rows], width, label="Real vLLM")
axis.bar(
x + width / 2,
[row["simulator"] for row in rows],
width,
label="Frontier profile-only",
)
axis.set_xticks(x, labels, fontsize=8)
axis.set_ylabel("Max tested SLO-feasible request rate / GPU")
axis.set_title("Qwen3-30B-A3B prefill-only: config ranking")
axis.grid(axis="y", alpha=0.25)
axis.legend(frameon=False, ncols=2)
for separator in (3.5, 7.5):
axis.axvline(separator, color="0.75", linewidth=0.8)
tau = metrics["kendall"]["kendall_tau_b"]
annotation = f"worst regret={metrics['top1_regret_worst'] * 100:.1f}%"
annotation += (
f"\nKendall τ-b={tau:.3f}"
if tau is not None
else "\nKendall τ-b=undefined"
)
axis.text(
0.01,
0.98,
annotation,
transform=axis.transAxes,
va="top",
fontsize=9,
bbox={"facecolor": "white", "edgecolor": "0.8", "alpha": 0.9},
)
confusion = metrics["anchor_confusion"]
matrix = np.array(
[
[confusion["real_pass_sim_pass"], confusion["real_pass_sim_fail"]],
[confusion["real_fail_sim_pass"], confusion["real_fail_sim_fail"]],
]
)
image = axes[1].imshow(matrix, cmap="Blues", vmin=0)
axes[1].set_xticks([0, 1], ["Sim pass", "Sim fail"])
axes[1].set_yticks([0, 1], ["Real pass", "Real fail"])
axes[1].set_title(f"{int(matrix.sum())} anchor decisions")
for row in range(2):
for column in range(2):
axes[1].text(column, row, int(matrix[row, column]), ha="center", va="center")
figure.colorbar(image, ax=axes[1], fraction=0.047, pad=0.04)
figure.suptitle("ISL=2048, OSL=1, TTFT≤1256 ms, 95% pass gate; two real rounds")
figure.tight_layout()
figure.savefig(path, dpi=180, bbox_inches="tight")
plt.close(figure)
def main() -> None:
args = parse_args()
real_runs = find_real_runs(args.fleet_artifacts.resolve())
real = {name: parse_real_config(name, path) for name, path in real_runs.items()}
simulated, simulator_sources = parse_simulator(
[path.resolve() for path in args.simulator_manifest]
)
metrics = compare(real, simulated)
rows = [
{
"config": name,
"tp": real[name]["tp"],
"mns": real[name]["mns"],
"real": real[name]["capacity_per_gpu"],
"simulator": simulated[name]["capacity_per_gpu"],
}
for name in metrics["config_order"]
]
resources = campaign_resources(args.fleet_artifacts.resolve())
resources["fresh_server_anchors"] = sum(
len(config["anchors"]) * 2 for config in real.values()
)
resources["measured_requests"] = resources["fresh_server_anchors"] * 64
resources["warmup_requests"] = sum(
min(32, max(4, math.ceil(anchor["rate"] * 2.0))) * 2
for config in real.values()
for anchor in config["anchors"]
)
args.output_root.mkdir(parents=True, exist_ok=True)
payload = {
"schema": "qwen30-prefill-fidelity-comparison-v1",
"objective": "maximum_tested_slo_feasible_offered_request_rate_per_gpu",
"contract": {
"model": "Qwen3-30B-A3B",
"input_tokens": 2048,
"output_tokens": 1,
"prefix_caching": False,
"ttft_slo_ms": 1256.0,
"target_pass_rate": 0.95,
"real_anchor_merge": "both_fresh_server_rounds_must_pass",
},
"metrics": metrics,
"real_campaign_resources": resources,
"real": real,
"simulator": simulated,
"simulator_sources": simulator_sources,
}
(args.output_root / "comparison.json").write_text(
json.dumps(payload, indent=2, sort_keys=True) + "\n"
)
write_csv(args.output_root / "capacity.csv", rows)
plot(args.output_root / "qwen30-prefill-ranking.png", rows, metrics)
print(json.dumps(metrics, indent=2, sort_keys=True))
if __name__ == "__main__":
main()

View File

@@ -1,6 +1,6 @@
# 实验 EXP-SIMFID-PHASE-FACTORIALprefill-only 是否是 simulator ranking 的容易区间?
> **状态:** 已批准,运行中(用户于 2026-07-17 明确要求先完成 235B mixed 与 30B prefill-only
> **状态:** 已完成2026-07-17
## Claim 与决策
@@ -17,6 +17,7 @@
- **30B system context** community vLLM 0.20.0+cu129BF16 weights/activation/KVTP∈{1,2,4}MNS∈{8,16,32,64}MBT=8192chunked prefill onprefix offreal 保留 runtime 默认 CUDA graphFrontier profile-only 不做 E2E calibration。
- **30B workload** fixed ISL=2048、OSL=164 个不同 token-chain promptsuniform open-loop QPSfresh server per `(config, rate, round)`target-rate warmup 与 measured requests 分离。
- **30B SLO** TTFT≤1256 ms至少 61/64 requests 通过primary score 为最大共同 tested feasible req/s / 实际 TP GPUs。
- **Boundary refinement rule** base grid `{4,8,16,32,64}` 先定位每个 TP 的 pass→fail 区间;若除以 TP 后的离散容量产生无法区分的 top tie则在查看最终 ranking 前追加共同 per-GPU lattice `5/6/7 req/s/GPU`,即 TP1 测 `{5,6,7}`、TP2 测 `{10,12,14}`、TP4 测 `{20,24,28}`。refinement 不替换或删除 base anchors。
- **235B baseline** 已冻结 `ISL=2048, OSL=128`、8 configs、68 个 fresh-server anchorsprimary sensitivity TTFT≤1256 ms、TPOT≤150 ms。
- **Baselines** real community vLLMFrontier same-stack profile-onlyhistorical Qwen30 mixed profile-onlyhistorical frozen per-TP calibration 只作为 upper bound不参与本 case 拟合。
- **Metrics** top set、worst tie-break regret、Kendall τ-b、exact/non-tied pair direction、anchor confusion、absolute capacity、TTFT p50/p95、real trial variance与GPU-hour。
@@ -35,7 +36,7 @@
| Selective benchmarking | PASS for initial screen | 同时报已有 235B mixed success和内部 pairwise failure后续 expansion 由预注册 verdict 触发 |
| Simplified workload | NEEDS EVIDENCE | fixed-shape 只用于 phase isolation不外推 trace-faithful mixed |
| Calibration=evaluation | PASS | 新 case 不用 serving E2E 数据拟合 scale |
| Missing significance | NEEDS EVIDENCE until run | boundary anchors做独立 fresh-server repeat保留 disagreement |
| Missing significance | PASS for ranking screen | 96 个 config-rate cells 均做两个独立 fresh-server rounds两轮都 pass 才算 feasible |
| Relative-only result | PASS by design | 同时报 req/s/GPU、TTFT distribution、rank/regret |
## 复现信息
@@ -43,12 +44,13 @@
- **Code** AITuner branch `codex/fidelity-prefix-pilot-20260714`Frontier upstream `d9cfeb6d8791fbf2f295dd9744c56a666171776e` + frozen known patches。
- **Environment** 只使用 dash0 8×H20Qwen30 venv `/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1`model `/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B`
- **产物路径:** local/remote `runs/frontier-phase-factorial-v0/`raw GPU artifacts 由 fleet harvestcondensed JSON/CSV 进入结果目录。
- **已知 deviation** 235B 为 FP8/vLLM0.10.2/FlashInfer eager30B 为 BF16/vLLM0.20/FA3/default CUDA graph因此跨模型只检验 hypothesis consistencycausal phase claim 最终仍需 same-model phase pair。
- **已知 deviation** 235B 为 FP8/vLLM0.10.2/FlashInfer eager30B 为 BF16/vLLM0.20/FA3/default CUDA graph因此跨模型只检验 hypothesis consistencycausal phase claim 最终仍需 same-model phase pair。初始 continuous fleet monitor 未在 fresh-server 间隙保留 controller-level GPU reservation产生重叠 launch该 attempt 整体移动到 `invalid-overlap-*`,不进入统计。后续一次试图在“其余 4 卡”上并行 refinement 时,探针再次命中 TP4 fresh-server 空窗,把 4 个 TP1 jobs 放到了同一 GPU set。这四个 jobs 尚未产生 measured result但当时 TP4/MNS64 已产生的单个 anchor 也按污染处理。两者都整体移到 `invalid-overlap-20260716T1750Z`TP4/MNS64 从空目录重跑。此后的 barrier waves 不在运行中追加 job但 Wave 3 的 harvest monitor 在未及时返回 launch 状态时已发射 MNS16/32紧接的 monitor retry 又在它们的启动空窗发射 MNS64。三者都未产生 measured result整体移到 `invalid-overlap-20260716T1836Z`。最终 TP4 waves 使用只含本波 jobs 的独立 queue state不再依赖 pending-job 探针调度。
## 结果
- **观察事实:** 235B fixed-shape mixed 已完成:real/sim TP4 top set exact matchworst regret=0、τ-b=0.8944;但 20 个 real non-tie pairs 只保持 16 个10/34 anchors false-infeasibleTP8 MNS×MBT interaction 被漏掉。30B prefill-only 待运行
- **异常:** 无
- **Interpretation 与剩余 alternatives** 强版本“mixed 必然失败”已被 235B top-set result 削弱;仍可能存在 phase-dependent error magnitude由 topology margin 掩盖
- **Claim update** unchanged等待 30B prefill-only
- **下一步:** freeze 30B simulator surface → guided real anchors → joint verdict只有判定需要时扩展 decode-heavy 235B 或 trace-shaped 30B prefill
- **观察事实:** 235B fixed-shape mixed real/sim 的四个 TP4 top configs 完全一致worst regret=0、τ-b=0.8944;但 20 个 real non-tie pairs 只保持 16 个10/34 anchors false-infeasibleTP8 MNS×MBT interaction 被漏掉。30B prefill-only 中真机 capacity/GPU 为 TP1=7、TP2=7、TP4=8Frontier 为 TP1=8、TP2=8、TP4=6real top set 是四个 TP4 configssimulator top set 是全部八个 TP1/TP2 configs无交集。worst regret=12.5%、τ-b=-1.032 个 real non-tie pairs 中 0 个同序。96 个 anchor labels 中有 8 个 false-feasible 和 8 个 false-infeasible
- **实验成本:** 接受 24 个 fleet jobs、192 个 fresh-server anchors、12,288 个 measured requests 和 4,512 个 warmups消耗 12.0744 H20-GPU-hours
- **异常与排除:** fleet controller 在 fresh-server 空窗期没有保留 GPU reservation产生了三批重叠 launch。污染 attempt 不进入 accepted artifact root未产生 measured result 的重叠 jobs 也不被计数;同一波中已产生的 TP4/MNS64 单 anchor 同样按污染丢弃,从空目录重跑。最终 TP4 refinement 使用彼此独立的 queue states。analyzer 按 `(round, filename)` 去重相同 harvest copy如果 hash 冲突则直接报错
- **Interpretation 与剩余 alternatives** `H-phase` 的强形式prefill-only 是 fidelity 充分条件)被否证;`H-margin` 与数据更一致。235B 的真机 TP4/TP8 最优 margin 为 2×足以掩盖内部 residual30B 的 8-vs-7 margin 被 TP-dependent saturation residual 穿过。但这是跨 stack comparison不能把差异因果归结为 model size
- **Claim update** “prefill-only 容易decode/mixed 困难”的强假设被否证。新的可证伪命题是config-ranking fidelity 取决于 scheduler-state-conditioned action residual 是否大于 real decision margin
- **下一步:** 不继续扩展跨模型 phase cases。在 Qwen30 prefill-only 上依次做 measured-collective injection、batch-composition-conditioned pure-prefill attention/step profile、TP1@8/TP2@16/TP4@32 的 scheduler batch/queue/per-step trace 对齐,最后再测 routing/graph。

View File

@@ -0,0 +1,24 @@
version = 1
[paths]
state_dir = "runs/frontier-phase-factorial-v0/fleet-state-base-rerun"
artifacts_dir = "runs/frontier-phase-factorial-v0/fleet-artifacts-exclusive"
[ssh]
connect_timeout_sec = 10
[scheduler]
gpu_free_memory_mb = 95000
gpu_free_utilization_pct = 5
prefer_pack = true
[sync]
mode = "scp"
local_path = "runs/frontier-phase-factorial-v0/remote-sync-marker"
[[hosts]]
name = "dash0"
ssh_alias = "dash0"
enabled = true
sync_remote_path = "/home/admin/cpfs/wjh/aituner/phase-factorial-sync-marker"
fleet_root = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0"

View File

@@ -0,0 +1,24 @@
version = 1
[paths]
state_dir = "runs/frontier-phase-factorial-v0/fleet-state-exclusive"
artifacts_dir = "runs/frontier-phase-factorial-v0/fleet-artifacts-exclusive"
[ssh]
connect_timeout_sec = 10
[scheduler]
gpu_free_memory_mb = 95000
gpu_free_utilization_pct = 5
prefer_pack = true
[sync]
mode = "scp"
local_path = "runs/frontier-phase-factorial-v0/remote-sync-marker"
[[hosts]]
name = "dash0"
ssh_alias = "dash0"
enabled = true
sync_remote_path = "/home/admin/cpfs/wjh/aituner/phase-factorial-sync-marker"
fleet_root = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0"

View File

@@ -0,0 +1,24 @@
version = 1
[paths]
state_dir = "runs/frontier-phase-factorial-v0/fleet-state-refine-tp4-wave3"
artifacts_dir = "runs/frontier-phase-factorial-v0/fleet-artifacts-exclusive"
[ssh]
connect_timeout_sec = 10
[scheduler]
gpu_free_memory_mb = 95000
gpu_free_utilization_pct = 5
prefer_pack = true
[sync]
mode = "scp"
local_path = "runs/frontier-phase-factorial-v0/remote-sync-marker"
[[hosts]]
name = "dash0"
ssh_alias = "dash0"
enabled = true
sync_remote_path = "/home/admin/cpfs/wjh/aituner/phase-factorial-sync-marker"
fleet_root = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0"

View File

@@ -0,0 +1,24 @@
version = 1
[paths]
state_dir = "runs/frontier-phase-factorial-v0/fleet-state-refine-tp4-wave4"
artifacts_dir = "runs/frontier-phase-factorial-v0/fleet-artifacts-exclusive"
[ssh]
connect_timeout_sec = 10
[scheduler]
gpu_free_memory_mb = 95000
gpu_free_utilization_pct = 5
prefer_pack = true
[sync]
mode = "scp"
local_path = "runs/frontier-phase-factorial-v0/remote-sync-marker"
[[hosts]]
name = "dash0"
ssh_alias = "dash0"
enabled = true
sync_remote_path = "/home/admin/cpfs/wjh/aituner/phase-factorial-sync-marker"
fleet_root = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0"

View File

@@ -0,0 +1,24 @@
version = 1
[paths]
state_dir = "runs/frontier-phase-factorial-v0/fleet-state-refine"
artifacts_dir = "runs/frontier-phase-factorial-v0/fleet-artifacts-exclusive"
[ssh]
connect_timeout_sec = 10
[scheduler]
gpu_free_memory_mb = 95000
gpu_free_utilization_pct = 5
prefer_pack = true
[sync]
mode = "scp"
local_path = "runs/frontier-phase-factorial-v0/remote-sync-marker"
[[hosts]]
name = "dash0"
ssh_alias = "dash0"
enabled = true
sync_remote_path = "/home/admin/cpfs/wjh/aituner/phase-factorial-sync-marker"
fleet_root = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0"

View File

@@ -0,0 +1,21 @@
version = 1
[[jobs]]
name = "qwen30-prefill-real-tp4-mns64-20260717-v2b-exclusive"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns64-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "64"
RATES = "4 8 16 32 64"
SERVER_PORT = "8731"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns64-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"

View File

@@ -1,7 +1,7 @@
version = 1
[[jobs]]
name = "qwen30-prefill-real-tp1-mns8-20260717-v1"
name = "qwen30-prefill-real-tp1-mns8-20260717-v2-exclusive"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
@@ -21,7 +21,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns16-20260717-v1"
name = "qwen30-prefill-real-tp1-mns16-20260717-v2-exclusive"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
@@ -41,7 +41,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns32-20260717-v1"
name = "qwen30-prefill-real-tp1-mns32-20260717-v2-exclusive"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
@@ -61,7 +61,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns64-20260717-v1"
name = "qwen30-prefill-real-tp1-mns64-20260717-v2-exclusive"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
@@ -81,7 +81,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns8-20260717-v1"
name = "qwen30-prefill-real-tp2-mns8-20260717-v2-exclusive"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
@@ -101,7 +101,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns16-20260717-v1"
name = "qwen30-prefill-real-tp2-mns16-20260717-v2-exclusive"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
@@ -121,7 +121,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns32-20260717-v1"
name = "qwen30-prefill-real-tp2-mns32-20260717-v2-exclusive"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
@@ -141,7 +141,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns64-20260717-v1"
name = "qwen30-prefill-real-tp2-mns64-20260717-v2-exclusive"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
@@ -161,7 +161,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns8-20260717-v1"
name = "qwen30-prefill-real-tp4-mns8-20260717-v2-exclusive"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
@@ -181,7 +181,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns16-20260717-v1"
name = "qwen30-prefill-real-tp4-mns16-20260717-v2-exclusive"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
@@ -201,7 +201,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns32-20260717-v1"
name = "qwen30-prefill-real-tp4-mns32-20260717-v2-exclusive"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
@@ -221,7 +221,7 @@ VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns64-20260717-v1"
name = "qwen30-prefill-real-tp4-mns64-20260717-v2-exclusive"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]

View File

@@ -0,0 +1,240 @@
version = 1
[[jobs]]
name = "qwen30-prefill-real-tp1-mns8-20260717-v3-refine"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp1-mns8-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "1"
MNS = "8"
RATES = "5 6 7"
SERVER_PORT = "8720"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp1-mns8-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns16-20260717-v3-refine"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp1-mns16-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "1"
MNS = "16"
RATES = "5 6 7"
SERVER_PORT = "8721"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp1-mns16-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns32-20260717-v3-refine"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp1-mns32-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "1"
MNS = "32"
RATES = "5 6 7"
SERVER_PORT = "8722"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp1-mns32-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp1-mns64-20260717-v3-refine"
gpus = 1
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp1-mns64-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "1"
MNS = "64"
RATES = "5 6 7"
SERVER_PORT = "8723"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp1-mns64-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns8-20260717-v3-refine"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp2-mns8-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "2"
MNS = "8"
RATES = "10 12 14"
SERVER_PORT = "8724"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp2-mns8-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns16-20260717-v3-refine"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp2-mns16-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "2"
MNS = "16"
RATES = "10 12 14"
SERVER_PORT = "8725"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp2-mns16-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns32-20260717-v3-refine"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp2-mns32-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "2"
MNS = "32"
RATES = "10 12 14"
SERVER_PORT = "8726"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp2-mns32-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp2-mns64-20260717-v3-refine"
gpus = 2
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp2-mns64-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "2"
MNS = "64"
RATES = "10 12 14"
SERVER_PORT = "8727"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp2-mns64-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns8-20260717-v3-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns8-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "8"
RATES = "20 24 28"
SERVER_PORT = "8728"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns8-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns16-20260717-v3-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns16-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "16"
RATES = "20 24 28"
SERVER_PORT = "8729"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns16-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns32-20260717-v3-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns32-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "32"
RATES = "20 24 28"
SERVER_PORT = "8730"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns32-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns64-20260717-v3-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns64-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "64"
RATES = "20 24 28"
SERVER_PORT = "8731"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns64-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"

View File

@@ -0,0 +1,41 @@
version = 1
[[jobs]]
name = "qwen30-prefill-real-tp4-mns16-20260717-v4-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns16-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "16"
RATES = "20 24 28"
SERVER_PORT = "8729"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns16-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"
[[jobs]]
name = "qwen30-prefill-real-tp4-mns32-20260717-v4-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns32-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "32"
RATES = "20 24 28"
SERVER_PORT = "8730"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns32-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"

View File

@@ -0,0 +1,21 @@
version = 1
[[jobs]]
name = "qwen30-prefill-real-tp4-mns64-20260717-v4-refine"
gpus = 4
gpu_model = "H20"
hosts = ["dash0"]
command = "cd /home/admin/cpfs/wjh/aituner/aituner-qwen30-vllm020-profile-v1/runs/frontier-phase-factorial-v0 && timeout --signal=TERM --kill-after=30s 7200 bash run_qwen30_prefill_real_config.sh"
artifacts = ["artifacts/real-tp4-mns64-v1"]
[jobs.env]
HOME = "/tmp/wjh"
XDG_CACHE_HOME = "/tmp/wjh/.cache"
VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm"
TP = "4"
MNS = "64"
RATES = "20 24 28"
SERVER_PORT = "8731"
OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-phase-factorial-v0/artifacts/real-tp4-mns64-v1"
VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1"
MODEL_ROOT = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B"

View File

@@ -0,0 +1,13 @@
config,tp,mns,real,simulator
tp1_mns8,1,8,7.0,8.0
tp1_mns16,1,16,7.0,8.0
tp1_mns32,1,32,7.0,8.0
tp1_mns64,1,64,7.0,8.0
tp2_mns8,2,8,7.0,8.0
tp2_mns16,2,16,7.0,8.0
tp2_mns32,2,32,7.0,8.0
tp2_mns64,2,64,7.0,8.0
tp4_mns8,4,8,8.0,6.0
tp4_mns16,4,16,8.0,6.0
tp4_mns32,4,32,8.0,6.0
tp4_mns64,4,64,8.0,6.0
1 config tp mns real simulator
2 tp1_mns8 1 8 7.0 8.0
3 tp1_mns16 1 16 7.0 8.0
4 tp1_mns32 1 32 7.0 8.0
5 tp1_mns64 1 64 7.0 8.0
6 tp2_mns8 2 8 7.0 8.0
7 tp2_mns16 2 16 7.0 8.0
8 tp2_mns32 2 32 7.0 8.0
9 tp2_mns64 2 64 7.0 8.0
10 tp4_mns8 4 8 8.0 6.0
11 tp4_mns16 4 16 8.0 6.0
12 tp4_mns32 4 32 8.0 6.0
13 tp4_mns64 4 64 8.0 6.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,461 @@
{
"capacity": [
{
"config": {
"mns": 16,
"name": "tp1_mns16",
"tp": 1
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 7.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 32,
"name": "tp1_mns32",
"tp": 1
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 7.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 64,
"name": "tp1_mns64",
"tp": 1
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 7.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 8,
"name": "tp1_mns8",
"tp": 1
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 7.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
}
],
"config_results": [
{
"config": {
"mns": 8,
"name": "tp1_mns8",
"tp": 1
},
"loads": [
{
"config": {
"mns": 8,
"name": "tp1_mns8",
"tp": 1
},
"elapsed_seconds": 10.505136728286743,
"offered_request_rate": 5.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "914a1261d25b03b812dfa30880c3b0a0d7b697a8c13a9f3a26a7bb6eaecd0734",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.011124187030024,
"ttft_max_ms": 171.58529929215405,
"ttft_p50_ms": 171.58529929215405,
"ttft_p95_ms": 171.58529929215405
},
"status": "completed",
"trace_sha256": "98e4ac5df766b1cb5bfb7469f2d76368808c2e085e22eb3553cb8627592cacd7"
},
{
"config": {
"mns": 8,
"name": "tp1_mns8",
"tp": 1
},
"elapsed_seconds": 10.398303508758545,
"offered_request_rate": 6.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "d8f0fe2fbf2ffb42b7e5033f611fc22f3293264859264b5f8d67f13f3a5b66c9",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.915042512446176,
"ttft_max_ms": 432.43322440414465,
"ttft_p50_ms": 282.618152646152,
"ttft_p95_ms": 333.9001759332376
},
"status": "completed",
"trace_sha256": "e0f9adf28d29542fcf834d482c990781724426f3d5cdcc043af53888393d1f64"
},
{
"config": {
"mns": 8,
"name": "tp1_mns8",
"tp": 1
},
"elapsed_seconds": 10.264978170394897,
"offered_request_rate": 7.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7ba9181767b8cbd741db3794bc7729920d7741d63b795ade4aa1fe28a89f3a63",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 6.89299458621687,
"ttft_max_ms": 432.97081304433016,
"ttft_p50_ms": 297.34516049744997,
"ttft_p95_ms": 427.64609771465524
},
"status": "completed",
"trace_sha256": "3734627d83aa731c9f09a4c4fea7d994f110bcbe937e157906354a4eda9cbf48"
}
]
},
{
"config": {
"mns": 16,
"name": "tp1_mns16",
"tp": 1
},
"loads": [
{
"config": {
"mns": 16,
"name": "tp1_mns16",
"tp": 1
},
"elapsed_seconds": 10.103909015655518,
"offered_request_rate": 5.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "914a1261d25b03b812dfa30880c3b0a0d7b697a8c13a9f3a26a7bb6eaecd0734",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.011124187030024,
"ttft_max_ms": 171.58529929215405,
"ttft_p50_ms": 171.58529929215405,
"ttft_p95_ms": 171.58529929215405
},
"status": "completed",
"trace_sha256": "98e4ac5df766b1cb5bfb7469f2d76368808c2e085e22eb3553cb8627592cacd7"
},
{
"config": {
"mns": 16,
"name": "tp1_mns16",
"tp": 1
},
"elapsed_seconds": 10.05237078666687,
"offered_request_rate": 6.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "d8f0fe2fbf2ffb42b7e5033f611fc22f3293264859264b5f8d67f13f3a5b66c9",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.915042512446176,
"ttft_max_ms": 432.43322440414465,
"ttft_p50_ms": 282.618152646152,
"ttft_p95_ms": 333.9001759332376
},
"status": "completed",
"trace_sha256": "e0f9adf28d29542fcf834d482c990781724426f3d5cdcc043af53888393d1f64"
},
{
"config": {
"mns": 16,
"name": "tp1_mns16",
"tp": 1
},
"elapsed_seconds": 10.048887729644775,
"offered_request_rate": 7.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7ba9181767b8cbd741db3794bc7729920d7741d63b795ade4aa1fe28a89f3a63",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 6.89299458621687,
"ttft_max_ms": 432.97081304433016,
"ttft_p50_ms": 297.34516049744997,
"ttft_p95_ms": 427.64609771465524
},
"status": "completed",
"trace_sha256": "3734627d83aa731c9f09a4c4fea7d994f110bcbe937e157906354a4eda9cbf48"
}
]
},
{
"config": {
"mns": 32,
"name": "tp1_mns32",
"tp": 1
},
"loads": [
{
"config": {
"mns": 32,
"name": "tp1_mns32",
"tp": 1
},
"elapsed_seconds": 10.058743476867676,
"offered_request_rate": 5.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "914a1261d25b03b812dfa30880c3b0a0d7b697a8c13a9f3a26a7bb6eaecd0734",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.011124187030024,
"ttft_max_ms": 171.58529929215405,
"ttft_p50_ms": 171.58529929215405,
"ttft_p95_ms": 171.58529929215405
},
"status": "completed",
"trace_sha256": "98e4ac5df766b1cb5bfb7469f2d76368808c2e085e22eb3553cb8627592cacd7"
},
{
"config": {
"mns": 32,
"name": "tp1_mns32",
"tp": 1
},
"elapsed_seconds": 10.106712818145752,
"offered_request_rate": 6.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "d8f0fe2fbf2ffb42b7e5033f611fc22f3293264859264b5f8d67f13f3a5b66c9",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.915042512446176,
"ttft_max_ms": 432.43322440414465,
"ttft_p50_ms": 282.618152646152,
"ttft_p95_ms": 333.9001759332376
},
"status": "completed",
"trace_sha256": "e0f9adf28d29542fcf834d482c990781724426f3d5cdcc043af53888393d1f64"
},
{
"config": {
"mns": 32,
"name": "tp1_mns32",
"tp": 1
},
"elapsed_seconds": 10.1020348072052,
"offered_request_rate": 7.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7ba9181767b8cbd741db3794bc7729920d7741d63b795ade4aa1fe28a89f3a63",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 6.89299458621687,
"ttft_max_ms": 432.97081304433016,
"ttft_p50_ms": 297.34516049744997,
"ttft_p95_ms": 427.64609771465524
},
"status": "completed",
"trace_sha256": "3734627d83aa731c9f09a4c4fea7d994f110bcbe937e157906354a4eda9cbf48"
}
]
},
{
"config": {
"mns": 64,
"name": "tp1_mns64",
"tp": 1
},
"loads": [
{
"config": {
"mns": 64,
"name": "tp1_mns64",
"tp": 1
},
"elapsed_seconds": 9.897645235061646,
"offered_request_rate": 5.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "914a1261d25b03b812dfa30880c3b0a0d7b697a8c13a9f3a26a7bb6eaecd0734",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.011124187030024,
"ttft_max_ms": 171.58529929215405,
"ttft_p50_ms": 171.58529929215405,
"ttft_p95_ms": 171.58529929215405
},
"status": "completed",
"trace_sha256": "98e4ac5df766b1cb5bfb7469f2d76368808c2e085e22eb3553cb8627592cacd7"
},
{
"config": {
"mns": 64,
"name": "tp1_mns64",
"tp": 1
},
"elapsed_seconds": 9.957297325134277,
"offered_request_rate": 6.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "d8f0fe2fbf2ffb42b7e5033f611fc22f3293264859264b5f8d67f13f3a5b66c9",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 5.915042512446176,
"ttft_max_ms": 432.43322440414465,
"ttft_p50_ms": 282.618152646152,
"ttft_p95_ms": 333.9001759332376
},
"status": "completed",
"trace_sha256": "e0f9adf28d29542fcf834d482c990781724426f3d5cdcc043af53888393d1f64"
},
{
"config": {
"mns": 64,
"name": "tp1_mns64",
"tp": 1
},
"elapsed_seconds": 9.799486875534058,
"offered_request_rate": 7.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7ba9181767b8cbd741db3794bc7729920d7741d63b795ade4aa1fe28a89f3a63",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 6.89299458621687,
"ttft_max_ms": 432.97081304433016,
"ttft_p50_ms": 297.34516049744997,
"ttft_p95_ms": 427.64609771465524
},
"status": "completed",
"trace_sha256": "3734627d83aa731c9f09a4c4fea7d994f110bcbe937e157906354a4eda9cbf48"
}
]
}
],
"contract": {
"arrival": "open_loop_uniform",
"input_tokens": 2048,
"output_tokens": 1,
"prefix_caching": false,
"rates": [
5.0,
6.0,
7.0
],
"requests_per_anchor": 64,
"target_pass_rate": 0.95,
"ttft_slo_ms": 1256.0
},
"frontier": {
"git_head": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"git_status_short": " M frontier/config/config.py\n M frontier/entities/request.py\n M frontier/events/cluster_schedule_event.py\n M frontier/execution_time_predictor/sklearn_execution_time_predictor.py\n M frontier/metrics/constants.py\n M frontier/metrics/metrics_store.py\n M frontier/profiling/common/layers/rotary_embedding.py\n M frontier/profiling/moe/moe_impl.py\n M frontier/profiling/moe/moe_vllm_kernel.py\n M frontier/scheduler/cluster_scheduler/__init__.py\n M frontier/scheduler/cluster_scheduler/base_cluster_scheduler.py\n M frontier/scheduler/cluster_scheduler/cluster_scheduler_registry.py\n M frontier/scheduler/cluster_scheduler/sticky_lor_cluster_scheduler.py\n M frontier/scheduler/replica_scheduler/base_replica_scheduler.py\n M frontier/scheduler/replica_scheduler/vllm_v1_engine_replica_scheduler.py\n M frontier/scheduler/replica_stage_scheduler/replica_stage_schduler.py\n M frontier/simulator.py\n M frontier/types/cluster_scheduler_type.py\n?? data/profiling/compute/h20/\n?? frontier/scheduler/cluster_scheduler/prefix_lor_cluster_scheduler.py\n?? runs/\n?? tests/unit/test_attn_prefill_prediction_fallback.py\n",
"source": "/tmp/replayserve-frontier-rs1b"
},
"profiles": {
"coverage": {
"attention": {
"1": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"2": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"4": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
}
},
"manifest": {
"attention_tp_coverage": [
1,
2,
4
],
"environment_contract": {
"dtype": "bfloat16",
"frontier_commit": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"hardware": "NVIDIA H20",
"model": "Qwen3-30B-A3B",
"tensor_parallel_sizes": [
1,
2,
4
],
"vllm_source_commit": "88d34c6409e9fb3c7b8ca0c04756f061d2099eb1",
"vllm_version": "0.20.0"
},
"inputs": {
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp2-20260716-v1-dispatch-aware-20260716T140743025781Z/artifacts/artifacts/allreduce-full-tp2-v1/raw/allreduce-tp2.json": "97c3c76b5a04e95bd9192423c2b891667c668f39cc0dfecbd097d749939f2d0a",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp4-20260716-v1-dispatch-aware-20260716T141106009788Z/artifacts/artifacts/allreduce-full-tp4-v1/raw/allreduce-tp4.json": "809df9baa6f468cf12bf0c99827475acc67894dd9f3f948976590b665fac0e76",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp1-20260716-v2-20260716T135132587012Z/artifacts/artifacts/flashattn-kv-full-v2-tp1/raw/flashattn-tp1.json": "dcb4c1bf7e76b9c765f78ddd2b8a734f2d7ba2adac13ce017689a8a77fe69a27",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp2-20260716-v2-20260716T135134194295Z/artifacts/artifacts/flashattn-kv-full-v2-tp2/raw/flashattn-tp2.json": "43ce042556ba887c8860614b43ccf0f564e5cebc1a0cffbce299d0acb9fa8d07",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp4-20260716-v2-20260716T135135197200Z/artifacts/artifacts/flashattn-kv-full-v2-tp4/raw/flashattn-tp4.json": "84eef31bcad0f556907a093318a420959d14fdc94474823d11f659704bdfec73",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-frontier-linear-full-20260716-v2-max-tokens-20260716T144444676943Z/artifacts/artifacts/frontier-linear-full-v2/profiles/compute/h20/qwen3-a3b-30b-moe/linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-moe-full-20260716-v1-local-shard-20260716T141334565164Z/artifacts/artifacts/moe-full-v1/raw/moe-full.json": "588f6ad0d69c9636d1b852e3df0a12d13cfe731f050ea7ec7aea457cceefbde8",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-router-full-20260716-v3-tp-context-20260716T145446098505Z/artifacts/artifacts/router-full-v3/raw/router.json": "1962972e983bff3e06a721ef4ae4ec65728ff669681497a4a7e7f769b88b4931"
},
"outputs": {
"allreduce.json": "b38d14f990578d668523d25b107aceed433da5020d8ada3b6e44d3562261a3b3",
"attention.csv": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"attention_true_mixed_fused.csv": "43ef4be90bddc9aeac6dbbe339feec24162cd1f2129a08fbd959e6ee4eaf5f60",
"linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"moe.csv": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
},
"profile_id": "qwen3-30b-a3b-bf16-vllm020-h20-tp1-2-4-fused-mixed-total-conserving",
"projection_contract": {
"allreduce": "Frozen exact runtime measurements; base profile-only comparison keeps the historical Frontier CC backend fixed to isolate compute profile fidelity",
"attention": "Pure prefill/extend/decode FA3 core plus separately measured KV update; input/output reshape assumed zero; exported mean is used as median target; true mixed rows use a total-conserving compatibility projection",
"attention_true_mixed": "The directly measured fused total is preserved in diagnostics. Frontier's two targets are projected by the same-TP pure prefill/decode reference ratio, with projected prefill + decode exactly equal to the fused total; the split is a schema compatibility attribution, not an observation",
"linear": "Frontier profiler using vLLM 0.20 CUDA operators",
"moe": "Replicated gate and fused top-k plus TP-local modular expert kernel; expert measurement already includes prepare/finalize so shuffling is zero"
},
"row_counts": {
"allreduce": 24,
"attention_frontier_compatible": 132,
"attention_true_mixed_fused_diagnostic": 30,
"linear": 36,
"moe": 72
},
"schema_version": "frontier_qwen30_vllm020_frozen_profile.v2"
}
},
"root": "/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/frozen/profile-v2",
"sha256": {
"attention": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"linear": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"manifest": "af40545e75aff55c6333cd2d5379ccf042a5a0b7d7fc7df4f745ce256cb290eb",
"moe": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
}
},
"schema": "frontier-qwen30-prefill-surface-v1",
"status": "partial_not_decision_bearing"
}

View File

@@ -0,0 +1,461 @@
{
"capacity": [
{
"config": {
"mns": 16,
"name": "tp2_mns16",
"tp": 2
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 14.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 32,
"name": "tp2_mns32",
"tp": 2
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 14.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 64,
"name": "tp2_mns64",
"tp": 2
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 14.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
},
{
"config": {
"mns": 8,
"name": "tp2_mns8",
"tp": 2
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 14.0,
"maximum_tested_feasible_request_rate_per_gpu": 7.0,
"upper_censored": true
}
],
"config_results": [
{
"config": {
"mns": 8,
"name": "tp2_mns8",
"tp": 2
},
"loads": [
{
"config": {
"mns": 8,
"name": "tp2_mns8",
"tp": 2
},
"elapsed_seconds": 10.598209381103516,
"offered_request_rate": 10.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "3597984a1acaffc6b3e8b1baa3ff41bb94ee1618f8780fcc6cd8d3bdb3d7201b",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 9.814433634929404,
"ttft_max_ms": 300.1784228926625,
"ttft_p50_ms": 211.39433537475938,
"ttft_p95_ms": 297.1650738307572
},
"status": "completed",
"trace_sha256": "92e3001d8467e3f97a243bea8323440ecf254a8ca211e52226fe886ebc9404be"
},
{
"config": {
"mns": 8,
"name": "tp2_mns8",
"tp": 2
},
"elapsed_seconds": 10.660333633422852,
"offered_request_rate": 12.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "06641f2758bd3f801fb7b9c934670bc766372ad7353f5e14aea2988dfbec462a",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 11.55742285377119,
"ttft_max_ms": 389.93612032123883,
"ttft_p50_ms": 296.08352841701094,
"ttft_p95_ms": 384.6764910356253
},
"status": "completed",
"trace_sha256": "cbc40c05fb9e400fa5edea6dd52c4122a957418fe523d102f1e72a784321e681"
},
{
"config": {
"mns": 8,
"name": "tp2_mns8",
"tp": 2
},
"elapsed_seconds": 10.409451007843018,
"offered_request_rate": 14.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "94cf0f3c510015ba50495eb38fd6fb452dd23d16ce0c788dc926229ecd557812",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 13.374732701347012,
"ttft_max_ms": 388.3013907870674,
"ttft_p50_ms": 309.4635231444016,
"ttft_p95_ms": 386.4490667329015
},
"status": "completed",
"trace_sha256": "3e43801bb724218ceaf0d52f17cd4d0fb3863e70f95c4d8d5a43ce7f85c75c01"
}
]
},
{
"config": {
"mns": 16,
"name": "tp2_mns16",
"tp": 2
},
"loads": [
{
"config": {
"mns": 16,
"name": "tp2_mns16",
"tp": 2
},
"elapsed_seconds": 10.360321521759033,
"offered_request_rate": 10.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "3597984a1acaffc6b3e8b1baa3ff41bb94ee1618f8780fcc6cd8d3bdb3d7201b",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 9.814433634929404,
"ttft_max_ms": 300.1784228926625,
"ttft_p50_ms": 211.39433537475938,
"ttft_p95_ms": 297.1650738307572
},
"status": "completed",
"trace_sha256": "92e3001d8467e3f97a243bea8323440ecf254a8ca211e52226fe886ebc9404be"
},
{
"config": {
"mns": 16,
"name": "tp2_mns16",
"tp": 2
},
"elapsed_seconds": 10.402549028396606,
"offered_request_rate": 12.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "06641f2758bd3f801fb7b9c934670bc766372ad7353f5e14aea2988dfbec462a",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 11.55742285377119,
"ttft_max_ms": 389.93612032123883,
"ttft_p50_ms": 296.08352841701094,
"ttft_p95_ms": 384.6764910356253
},
"status": "completed",
"trace_sha256": "cbc40c05fb9e400fa5edea6dd52c4122a957418fe523d102f1e72a784321e681"
},
{
"config": {
"mns": 16,
"name": "tp2_mns16",
"tp": 2
},
"elapsed_seconds": 10.40966272354126,
"offered_request_rate": 14.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "94cf0f3c510015ba50495eb38fd6fb452dd23d16ce0c788dc926229ecd557812",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 13.374732701347012,
"ttft_max_ms": 388.3013907870674,
"ttft_p50_ms": 309.4635231444016,
"ttft_p95_ms": 386.4490667329015
},
"status": "completed",
"trace_sha256": "3e43801bb724218ceaf0d52f17cd4d0fb3863e70f95c4d8d5a43ce7f85c75c01"
}
]
},
{
"config": {
"mns": 32,
"name": "tp2_mns32",
"tp": 2
},
"loads": [
{
"config": {
"mns": 32,
"name": "tp2_mns32",
"tp": 2
},
"elapsed_seconds": 10.155991315841675,
"offered_request_rate": 10.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "3597984a1acaffc6b3e8b1baa3ff41bb94ee1618f8780fcc6cd8d3bdb3d7201b",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 9.814433634929404,
"ttft_max_ms": 300.1784228926625,
"ttft_p50_ms": 211.39433537475938,
"ttft_p95_ms": 297.1650738307572
},
"status": "completed",
"trace_sha256": "92e3001d8467e3f97a243bea8323440ecf254a8ca211e52226fe886ebc9404be"
},
{
"config": {
"mns": 32,
"name": "tp2_mns32",
"tp": 2
},
"elapsed_seconds": 10.103453874588013,
"offered_request_rate": 12.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "06641f2758bd3f801fb7b9c934670bc766372ad7353f5e14aea2988dfbec462a",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 11.55742285377119,
"ttft_max_ms": 389.93612032123883,
"ttft_p50_ms": 296.08352841701094,
"ttft_p95_ms": 384.6764910356253
},
"status": "completed",
"trace_sha256": "cbc40c05fb9e400fa5edea6dd52c4122a957418fe523d102f1e72a784321e681"
},
{
"config": {
"mns": 32,
"name": "tp2_mns32",
"tp": 2
},
"elapsed_seconds": 10.255317687988281,
"offered_request_rate": 14.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "94cf0f3c510015ba50495eb38fd6fb452dd23d16ce0c788dc926229ecd557812",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 13.374732701347012,
"ttft_max_ms": 388.3013907870674,
"ttft_p50_ms": 309.4635231444016,
"ttft_p95_ms": 386.4490667329015
},
"status": "completed",
"trace_sha256": "3e43801bb724218ceaf0d52f17cd4d0fb3863e70f95c4d8d5a43ce7f85c75c01"
}
]
},
{
"config": {
"mns": 64,
"name": "tp2_mns64",
"tp": 2
},
"loads": [
{
"config": {
"mns": 64,
"name": "tp2_mns64",
"tp": 2
},
"elapsed_seconds": 10.106109380722046,
"offered_request_rate": 10.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "3597984a1acaffc6b3e8b1baa3ff41bb94ee1618f8780fcc6cd8d3bdb3d7201b",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 9.814433634929404,
"ttft_max_ms": 300.1784228926625,
"ttft_p50_ms": 211.39433537475938,
"ttft_p95_ms": 297.1650738307572
},
"status": "completed",
"trace_sha256": "92e3001d8467e3f97a243bea8323440ecf254a8ca211e52226fe886ebc9404be"
},
{
"config": {
"mns": 64,
"name": "tp2_mns64",
"tp": 2
},
"elapsed_seconds": 10.112579107284546,
"offered_request_rate": 12.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "06641f2758bd3f801fb7b9c934670bc766372ad7353f5e14aea2988dfbec462a",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 11.55742285377119,
"ttft_max_ms": 389.93612032123883,
"ttft_p50_ms": 296.08352841701094,
"ttft_p95_ms": 384.6764910356253
},
"status": "completed",
"trace_sha256": "cbc40c05fb9e400fa5edea6dd52c4122a957418fe523d102f1e72a784321e681"
},
{
"config": {
"mns": 64,
"name": "tp2_mns64",
"tp": 2
},
"elapsed_seconds": 9.847446918487549,
"offered_request_rate": 14.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "94cf0f3c510015ba50495eb38fd6fb452dd23d16ce0c788dc926229ecd557812",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 13.374732701347012,
"ttft_max_ms": 388.3013907870674,
"ttft_p50_ms": 309.4635231444016,
"ttft_p95_ms": 386.4490667329015
},
"status": "completed",
"trace_sha256": "3e43801bb724218ceaf0d52f17cd4d0fb3863e70f95c4d8d5a43ce7f85c75c01"
}
]
}
],
"contract": {
"arrival": "open_loop_uniform",
"input_tokens": 2048,
"output_tokens": 1,
"prefix_caching": false,
"rates": [
10.0,
12.0,
14.0
],
"requests_per_anchor": 64,
"target_pass_rate": 0.95,
"ttft_slo_ms": 1256.0
},
"frontier": {
"git_head": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"git_status_short": " M frontier/config/config.py\n M frontier/entities/request.py\n M frontier/events/cluster_schedule_event.py\n M frontier/execution_time_predictor/sklearn_execution_time_predictor.py\n M frontier/metrics/constants.py\n M frontier/metrics/metrics_store.py\n M frontier/profiling/common/layers/rotary_embedding.py\n M frontier/profiling/moe/moe_impl.py\n M frontier/profiling/moe/moe_vllm_kernel.py\n M frontier/scheduler/cluster_scheduler/__init__.py\n M frontier/scheduler/cluster_scheduler/base_cluster_scheduler.py\n M frontier/scheduler/cluster_scheduler/cluster_scheduler_registry.py\n M frontier/scheduler/cluster_scheduler/sticky_lor_cluster_scheduler.py\n M frontier/scheduler/replica_scheduler/base_replica_scheduler.py\n M frontier/scheduler/replica_scheduler/vllm_v1_engine_replica_scheduler.py\n M frontier/scheduler/replica_stage_scheduler/replica_stage_schduler.py\n M frontier/simulator.py\n M frontier/types/cluster_scheduler_type.py\n?? data/profiling/compute/h20/\n?? frontier/scheduler/cluster_scheduler/prefix_lor_cluster_scheduler.py\n?? runs/\n?? tests/unit/test_attn_prefill_prediction_fallback.py\n",
"source": "/tmp/replayserve-frontier-rs1b"
},
"profiles": {
"coverage": {
"attention": {
"1": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"2": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"4": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
}
},
"manifest": {
"attention_tp_coverage": [
1,
2,
4
],
"environment_contract": {
"dtype": "bfloat16",
"frontier_commit": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"hardware": "NVIDIA H20",
"model": "Qwen3-30B-A3B",
"tensor_parallel_sizes": [
1,
2,
4
],
"vllm_source_commit": "88d34c6409e9fb3c7b8ca0c04756f061d2099eb1",
"vllm_version": "0.20.0"
},
"inputs": {
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp2-20260716-v1-dispatch-aware-20260716T140743025781Z/artifacts/artifacts/allreduce-full-tp2-v1/raw/allreduce-tp2.json": "97c3c76b5a04e95bd9192423c2b891667c668f39cc0dfecbd097d749939f2d0a",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp4-20260716-v1-dispatch-aware-20260716T141106009788Z/artifacts/artifacts/allreduce-full-tp4-v1/raw/allreduce-tp4.json": "809df9baa6f468cf12bf0c99827475acc67894dd9f3f948976590b665fac0e76",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp1-20260716-v2-20260716T135132587012Z/artifacts/artifacts/flashattn-kv-full-v2-tp1/raw/flashattn-tp1.json": "dcb4c1bf7e76b9c765f78ddd2b8a734f2d7ba2adac13ce017689a8a77fe69a27",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp2-20260716-v2-20260716T135134194295Z/artifacts/artifacts/flashattn-kv-full-v2-tp2/raw/flashattn-tp2.json": "43ce042556ba887c8860614b43ccf0f564e5cebc1a0cffbce299d0acb9fa8d07",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp4-20260716-v2-20260716T135135197200Z/artifacts/artifacts/flashattn-kv-full-v2-tp4/raw/flashattn-tp4.json": "84eef31bcad0f556907a093318a420959d14fdc94474823d11f659704bdfec73",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-frontier-linear-full-20260716-v2-max-tokens-20260716T144444676943Z/artifacts/artifacts/frontier-linear-full-v2/profiles/compute/h20/qwen3-a3b-30b-moe/linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-moe-full-20260716-v1-local-shard-20260716T141334565164Z/artifacts/artifacts/moe-full-v1/raw/moe-full.json": "588f6ad0d69c9636d1b852e3df0a12d13cfe731f050ea7ec7aea457cceefbde8",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-router-full-20260716-v3-tp-context-20260716T145446098505Z/artifacts/artifacts/router-full-v3/raw/router.json": "1962972e983bff3e06a721ef4ae4ec65728ff669681497a4a7e7f769b88b4931"
},
"outputs": {
"allreduce.json": "b38d14f990578d668523d25b107aceed433da5020d8ada3b6e44d3562261a3b3",
"attention.csv": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"attention_true_mixed_fused.csv": "43ef4be90bddc9aeac6dbbe339feec24162cd1f2129a08fbd959e6ee4eaf5f60",
"linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"moe.csv": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
},
"profile_id": "qwen3-30b-a3b-bf16-vllm020-h20-tp1-2-4-fused-mixed-total-conserving",
"projection_contract": {
"allreduce": "Frozen exact runtime measurements; base profile-only comparison keeps the historical Frontier CC backend fixed to isolate compute profile fidelity",
"attention": "Pure prefill/extend/decode FA3 core plus separately measured KV update; input/output reshape assumed zero; exported mean is used as median target; true mixed rows use a total-conserving compatibility projection",
"attention_true_mixed": "The directly measured fused total is preserved in diagnostics. Frontier's two targets are projected by the same-TP pure prefill/decode reference ratio, with projected prefill + decode exactly equal to the fused total; the split is a schema compatibility attribution, not an observation",
"linear": "Frontier profiler using vLLM 0.20 CUDA operators",
"moe": "Replicated gate and fused top-k plus TP-local modular expert kernel; expert measurement already includes prepare/finalize so shuffling is zero"
},
"row_counts": {
"allreduce": 24,
"attention_frontier_compatible": 132,
"attention_true_mixed_fused_diagnostic": 30,
"linear": 36,
"moe": 72
},
"schema_version": "frontier_qwen30_vllm020_frozen_profile.v2"
}
},
"root": "/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/frozen/profile-v2",
"sha256": {
"attention": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"linear": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"manifest": "af40545e75aff55c6333cd2d5379ccf042a5a0b7d7fc7df4f745ce256cb290eb",
"moe": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
}
},
"schema": "frontier-qwen30-prefill-surface-v1",
"status": "partial_not_decision_bearing"
}

View File

@@ -0,0 +1,461 @@
{
"capacity": [
{
"config": {
"mns": 16,
"name": "tp4_mns16",
"tp": 4
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 24.0,
"maximum_tested_feasible_request_rate_per_gpu": 6.0,
"upper_censored": false
},
{
"config": {
"mns": 32,
"name": "tp4_mns32",
"tp": 4
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 24.0,
"maximum_tested_feasible_request_rate_per_gpu": 6.0,
"upper_censored": false
},
{
"config": {
"mns": 64,
"name": "tp4_mns64",
"tp": 4
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 24.0,
"maximum_tested_feasible_request_rate_per_gpu": 6.0,
"upper_censored": false
},
{
"config": {
"mns": 8,
"name": "tp4_mns8",
"tp": 4
},
"lower_censored": false,
"maximum_tested_feasible_request_rate": 24.0,
"maximum_tested_feasible_request_rate_per_gpu": 6.0,
"upper_censored": false
}
],
"config_results": [
{
"config": {
"mns": 8,
"name": "tp4_mns8",
"tp": 4
},
"loads": [
{
"config": {
"mns": 8,
"name": "tp4_mns8",
"tp": 4
},
"elapsed_seconds": 10.649231672286987,
"offered_request_rate": 20.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "2bf5e46241bf3462e21f707f715b4a9fe2c932b19da35b19b4a875f88605eee0",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.74355310200617,
"ttft_max_ms": 779.2433711652614,
"ttft_p50_ms": 476.39050138849325,
"ttft_p95_ms": 718.1022232545545
},
"status": "completed",
"trace_sha256": "da52e3a35a89135dd82d40415cf2dd43738eceb4183f322fcd38d96294a845d4"
},
{
"config": {
"mns": 8,
"name": "tp4_mns8",
"tp": 4
},
"elapsed_seconds": 10.245610237121582,
"offered_request_rate": 24.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "79986860bea420cd6e42385521fc8377dbc237a15010a4daf014bc9a94f71aa7",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.93744325871021,
"ttft_max_ms": 1219.4533647214066,
"ttft_p50_ms": 708.2221064125775,
"ttft_p95_ms": 1155.549457433053
},
"status": "completed",
"trace_sha256": "abae88091c5b7bb5a4b7f3f6fa553e132b10e7943c0dbe18dea203ac85c289fa"
},
{
"config": {
"mns": 8,
"name": "tp4_mns8",
"tp": 4
},
"elapsed_seconds": 9.953459978103638,
"offered_request_rate": 28.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7f33dcb51a6e2a47acbc2f4ee968746f86575c0cbf62482ae08cfaf58216d459",
"score": {
"feasible": false,
"pass_rate": 0.765625,
"passed": 49,
"throughput_requests_per_second": 16.898601280793688,
"ttft_max_ms": 1587.02950504691,
"ttft_p50_ms": 885.3220562610811,
"ttft_p95_ms": 1515.6009336189102
},
"status": "completed",
"trace_sha256": "603b9e57429538d162af2ab5fd99c15611246ab92ab067b09acb4da3963d40e1"
}
]
},
{
"config": {
"mns": 16,
"name": "tp4_mns16",
"tp": 4
},
"loads": [
{
"config": {
"mns": 16,
"name": "tp4_mns16",
"tp": 4
},
"elapsed_seconds": 10.059623956680298,
"offered_request_rate": 20.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "2bf5e46241bf3462e21f707f715b4a9fe2c932b19da35b19b4a875f88605eee0",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.74355310200617,
"ttft_max_ms": 779.2433711652614,
"ttft_p50_ms": 476.39050138849325,
"ttft_p95_ms": 718.1022232545545
},
"status": "completed",
"trace_sha256": "da52e3a35a89135dd82d40415cf2dd43738eceb4183f322fcd38d96294a845d4"
},
{
"config": {
"mns": 16,
"name": "tp4_mns16",
"tp": 4
},
"elapsed_seconds": 10.000702381134033,
"offered_request_rate": 24.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "79986860bea420cd6e42385521fc8377dbc237a15010a4daf014bc9a94f71aa7",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.93744325871021,
"ttft_max_ms": 1219.4533647214066,
"ttft_p50_ms": 708.2221064125775,
"ttft_p95_ms": 1155.549457433053
},
"status": "completed",
"trace_sha256": "abae88091c5b7bb5a4b7f3f6fa553e132b10e7943c0dbe18dea203ac85c289fa"
},
{
"config": {
"mns": 16,
"name": "tp4_mns16",
"tp": 4
},
"elapsed_seconds": 9.852763652801514,
"offered_request_rate": 28.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7f33dcb51a6e2a47acbc2f4ee968746f86575c0cbf62482ae08cfaf58216d459",
"score": {
"feasible": false,
"pass_rate": 0.765625,
"passed": 49,
"throughput_requests_per_second": 16.898601280793688,
"ttft_max_ms": 1587.02950504691,
"ttft_p50_ms": 885.3220562610811,
"ttft_p95_ms": 1515.6009336189102
},
"status": "completed",
"trace_sha256": "603b9e57429538d162af2ab5fd99c15611246ab92ab067b09acb4da3963d40e1"
}
]
},
{
"config": {
"mns": 32,
"name": "tp4_mns32",
"tp": 4
},
"loads": [
{
"config": {
"mns": 32,
"name": "tp4_mns32",
"tp": 4
},
"elapsed_seconds": 9.849465370178223,
"offered_request_rate": 20.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "2bf5e46241bf3462e21f707f715b4a9fe2c932b19da35b19b4a875f88605eee0",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.74355310200617,
"ttft_max_ms": 779.2433711652614,
"ttft_p50_ms": 476.39050138849325,
"ttft_p95_ms": 718.1022232545545
},
"status": "completed",
"trace_sha256": "da52e3a35a89135dd82d40415cf2dd43738eceb4183f322fcd38d96294a845d4"
},
{
"config": {
"mns": 32,
"name": "tp4_mns32",
"tp": 4
},
"elapsed_seconds": 9.80930495262146,
"offered_request_rate": 24.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "79986860bea420cd6e42385521fc8377dbc237a15010a4daf014bc9a94f71aa7",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.93744325871021,
"ttft_max_ms": 1219.4533647214066,
"ttft_p50_ms": 708.2221064125775,
"ttft_p95_ms": 1155.549457433053
},
"status": "completed",
"trace_sha256": "abae88091c5b7bb5a4b7f3f6fa553e132b10e7943c0dbe18dea203ac85c289fa"
},
{
"config": {
"mns": 32,
"name": "tp4_mns32",
"tp": 4
},
"elapsed_seconds": 9.798201560974121,
"offered_request_rate": 28.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7f33dcb51a6e2a47acbc2f4ee968746f86575c0cbf62482ae08cfaf58216d459",
"score": {
"feasible": false,
"pass_rate": 0.765625,
"passed": 49,
"throughput_requests_per_second": 16.898601280793688,
"ttft_max_ms": 1587.02950504691,
"ttft_p50_ms": 885.3220562610811,
"ttft_p95_ms": 1515.6009336189102
},
"status": "completed",
"trace_sha256": "603b9e57429538d162af2ab5fd99c15611246ab92ab067b09acb4da3963d40e1"
}
]
},
{
"config": {
"mns": 64,
"name": "tp4_mns64",
"tp": 4
},
"loads": [
{
"config": {
"mns": 64,
"name": "tp4_mns64",
"tp": 4
},
"elapsed_seconds": 9.800058603286743,
"offered_request_rate": 20.0,
"offered_request_rate_per_gpu": 5.0,
"request_count": 64,
"request_metrics_sha256": "2bf5e46241bf3462e21f707f715b4a9fe2c932b19da35b19b4a875f88605eee0",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.74355310200617,
"ttft_max_ms": 779.2433711652614,
"ttft_p50_ms": 476.39050138849325,
"ttft_p95_ms": 718.1022232545545
},
"status": "completed",
"trace_sha256": "da52e3a35a89135dd82d40415cf2dd43738eceb4183f322fcd38d96294a845d4"
},
{
"config": {
"mns": 64,
"name": "tp4_mns64",
"tp": 4
},
"elapsed_seconds": 9.804483413696289,
"offered_request_rate": 24.0,
"offered_request_rate_per_gpu": 6.0,
"request_count": 64,
"request_metrics_sha256": "79986860bea420cd6e42385521fc8377dbc237a15010a4daf014bc9a94f71aa7",
"score": {
"feasible": true,
"pass_rate": 1.0,
"passed": 64,
"throughput_requests_per_second": 16.93744325871021,
"ttft_max_ms": 1219.4533647214066,
"ttft_p50_ms": 708.2221064125775,
"ttft_p95_ms": 1155.549457433053
},
"status": "completed",
"trace_sha256": "abae88091c5b7bb5a4b7f3f6fa553e132b10e7943c0dbe18dea203ac85c289fa"
},
{
"config": {
"mns": 64,
"name": "tp4_mns64",
"tp": 4
},
"elapsed_seconds": 9.80262541770935,
"offered_request_rate": 28.0,
"offered_request_rate_per_gpu": 7.0,
"request_count": 64,
"request_metrics_sha256": "7f33dcb51a6e2a47acbc2f4ee968746f86575c0cbf62482ae08cfaf58216d459",
"score": {
"feasible": false,
"pass_rate": 0.765625,
"passed": 49,
"throughput_requests_per_second": 16.898601280793688,
"ttft_max_ms": 1587.02950504691,
"ttft_p50_ms": 885.3220562610811,
"ttft_p95_ms": 1515.6009336189102
},
"status": "completed",
"trace_sha256": "603b9e57429538d162af2ab5fd99c15611246ab92ab067b09acb4da3963d40e1"
}
]
}
],
"contract": {
"arrival": "open_loop_uniform",
"input_tokens": 2048,
"output_tokens": 1,
"prefix_caching": false,
"rates": [
20.0,
24.0,
28.0
],
"requests_per_anchor": 64,
"target_pass_rate": 0.95,
"ttft_slo_ms": 1256.0
},
"frontier": {
"git_head": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"git_status_short": " M frontier/config/config.py\n M frontier/entities/request.py\n M frontier/events/cluster_schedule_event.py\n M frontier/execution_time_predictor/sklearn_execution_time_predictor.py\n M frontier/metrics/constants.py\n M frontier/metrics/metrics_store.py\n M frontier/profiling/common/layers/rotary_embedding.py\n M frontier/profiling/moe/moe_impl.py\n M frontier/profiling/moe/moe_vllm_kernel.py\n M frontier/scheduler/cluster_scheduler/__init__.py\n M frontier/scheduler/cluster_scheduler/base_cluster_scheduler.py\n M frontier/scheduler/cluster_scheduler/cluster_scheduler_registry.py\n M frontier/scheduler/cluster_scheduler/sticky_lor_cluster_scheduler.py\n M frontier/scheduler/replica_scheduler/base_replica_scheduler.py\n M frontier/scheduler/replica_scheduler/vllm_v1_engine_replica_scheduler.py\n M frontier/scheduler/replica_stage_scheduler/replica_stage_schduler.py\n M frontier/simulator.py\n M frontier/types/cluster_scheduler_type.py\n?? data/profiling/compute/h20/\n?? frontier/scheduler/cluster_scheduler/prefix_lor_cluster_scheduler.py\n?? runs/\n?? tests/unit/test_attn_prefill_prediction_fallback.py\n",
"source": "/tmp/replayserve-frontier-rs1b"
},
"profiles": {
"coverage": {
"attention": {
"1": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"2": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
},
"4": {
"exact_prefill_2048_rows": 1,
"profile_batch_size": 1
}
},
"manifest": {
"attention_tp_coverage": [
1,
2,
4
],
"environment_contract": {
"dtype": "bfloat16",
"frontier_commit": "d9cfeb6d8791fbf2f295dd9744c56a666171776e",
"hardware": "NVIDIA H20",
"model": "Qwen3-30B-A3B",
"tensor_parallel_sizes": [
1,
2,
4
],
"vllm_source_commit": "88d34c6409e9fb3c7b8ca0c04756f061d2099eb1",
"vllm_version": "0.20.0"
},
"inputs": {
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp2-20260716-v1-dispatch-aware-20260716T140743025781Z/artifacts/artifacts/allreduce-full-tp2-v1/raw/allreduce-tp2.json": "97c3c76b5a04e95bd9192423c2b891667c668f39cc0dfecbd097d749939f2d0a",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-allreduce-full-tp4-20260716-v1-dispatch-aware-20260716T141106009788Z/artifacts/artifacts/allreduce-full-tp4-v1/raw/allreduce-tp4.json": "809df9baa6f468cf12bf0c99827475acc67894dd9f3f948976590b665fac0e76",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp1-20260716-v2-20260716T135132587012Z/artifacts/artifacts/flashattn-kv-full-v2-tp1/raw/flashattn-tp1.json": "dcb4c1bf7e76b9c765f78ddd2b8a734f2d7ba2adac13ce017689a8a77fe69a27",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp2-20260716-v2-20260716T135134194295Z/artifacts/artifacts/flashattn-kv-full-v2-tp2/raw/flashattn-tp2.json": "43ce042556ba887c8860614b43ccf0f564e5cebc1a0cffbce299d0acb9fa8d07",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-flashattn-kv-full-tp4-20260716-v2-20260716T135135197200Z/artifacts/artifacts/flashattn-kv-full-v2-tp4/raw/flashattn-tp4.json": "84eef31bcad0f556907a093318a420959d14fdc94474823d11f659704bdfec73",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-frontier-linear-full-20260716-v2-max-tokens-20260716T144444676943Z/artifacts/artifacts/frontier-linear-full-v2/profiles/compute/h20/qwen3-a3b-30b-moe/linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-moe-full-20260716-v1-local-shard-20260716T141334565164Z/artifacts/artifacts/moe-full-v1/raw/moe-full.json": "588f6ad0d69c9636d1b852e3df0a12d13cfe731f050ea7ec7aea457cceefbde8",
"/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/fleet-artifacts/qwen30-vllm020-router-full-20260716-v3-tp-context-20260716T145446098505Z/artifacts/artifacts/router-full-v3/raw/router.json": "1962972e983bff3e06a721ef4ae4ec65728ff669681497a4a7e7f769b88b4931"
},
"outputs": {
"allreduce.json": "b38d14f990578d668523d25b107aceed433da5020d8ada3b6e44d3562261a3b3",
"attention.csv": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"attention_true_mixed_fused.csv": "43ef4be90bddc9aeac6dbbe339feec24162cd1f2129a08fbd959e6ee4eaf5f60",
"linear_op.csv": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"moe.csv": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
},
"profile_id": "qwen3-30b-a3b-bf16-vllm020-h20-tp1-2-4-fused-mixed-total-conserving",
"projection_contract": {
"allreduce": "Frozen exact runtime measurements; base profile-only comparison keeps the historical Frontier CC backend fixed to isolate compute profile fidelity",
"attention": "Pure prefill/extend/decode FA3 core plus separately measured KV update; input/output reshape assumed zero; exported mean is used as median target; true mixed rows use a total-conserving compatibility projection",
"attention_true_mixed": "The directly measured fused total is preserved in diagnostics. Frontier's two targets are projected by the same-TP pure prefill/decode reference ratio, with projected prefill + decode exactly equal to the fused total; the split is a schema compatibility attribution, not an observation",
"linear": "Frontier profiler using vLLM 0.20 CUDA operators",
"moe": "Replicated gate and fused top-k plus TP-local modular expert kernel; expert measurement already includes prepare/finalize so shuffling is zero"
},
"row_counts": {
"allreduce": 24,
"attention_frontier_compatible": 132,
"attention_true_mixed_fused_diagnostic": 30,
"linear": 36,
"moe": 72
},
"schema_version": "frontier_qwen30_vllm020_frozen_profile.v2"
}
},
"root": "/home/gahow/phd/aituner/runs/frontier-qwen30-vllm020-profile-v1/frozen/profile-v2",
"sha256": {
"attention": "76dcb767cebb4ec1c4e24bd04d93ddd48b5d271986ebfb51a197ab33e1b3d87d",
"linear": "67666cb0a4901b74599d468df2e31bcaa2a11a7842cc0cefba24ffce62508e0c",
"manifest": "af40545e75aff55c6333cd2d5379ccf042a5a0b7d7fc7df4f745ce256cb290eb",
"moe": "0e4dcba72918a1c4cf4e96ced31ee3829248a19ad54553cebef14417725808b0"
}
},
"schema": "frontier-qwen30-prefill-surface-v1",
"status": "partial_not_decision_bearing"
}

View File

@@ -37,3 +37,9 @@ def test_grid_and_trace(tmp_path: Path) -> None:
assert len(lines) == 4
assert lines[1].split(",")[:3] == ["0.000000000000", "2048", "1"]
assert lines[3].split(",")[:3] == ["0.500000000000", "2048", "1"]
def test_kendall_tau_b() -> None:
analysis = load("analyze_qwen30_prefill_fidelity.py")
assert analysis.kendall_tau_b([1, 2, 3], [1, 2, 3])["kendall_tau_b"] == 1
assert analysis.kendall_tau_b([1, 2, 3], [3, 2, 1])["kendall_tau_b"] == -1