Record code-trace calibration and canary gates

This commit is contained in:
2026-07-24 02:03:11 +08:00
parent d5bb9745f8
commit 14ed991059
18 changed files with 1698 additions and 7 deletions

View File

@@ -1,18 +1,34 @@
# Frontier code-trace campaign handoff # Frontier code-trace campaign handoff
本目录已经准备好无 GPU 的 data preflight、512→16 参数化映射、prefill-only 转换和 `max_model_len` 显式适配。当前没有启动或探测 `dash1``dash4` Phase A code prefill+decode 已开始执行。data/profile/max-length gate 和
Frontier rho calibration 已完成TP2/TP4 paired 10min real canary 正在
运行。61min full paired inputs 与 code prefill-only calibration cache
均已物化,尚未越过 canary gate 启动正式 1h real matrix。
完整设计与 gate 见 [`experiment-card.md`](experiment-card.md)。 完整设计与 gate 见 [`experiment-card.md`](experiment-card.md)。
## 当前已知阻塞 ## 当前资产与下一步
本机 `/home/gahow/ali-trace/trace-glm5.1-formatted/` 不存在。仓库历史记录的远端路径是: - development window0513 `[3480,7140)`61min
- held-out window0529 `[2640,6240)`,只在 development 判据冻结后使用;
- profile`profiles/profile-v6-code-longctx/`,覆盖 TP1/2/4 和 131072
KV context
- full paired inputsCPFS
`runs/frontier-code-trace-v0/inputs/full-r0p{0002,0004,0008,0016}-v1/`
- compact provenance`results/calibration-summary.json`
`results/paired-input-manifests/`
- 下一步:完成 paired canary 分析;若 real 零失败、digest/hit ratio
对齐且 queue 不发散,启动 TP4
`rho={0.0002,0.0008,0.0016}` 与 TP2
`rho={0.0002,0.0004,0.0008}` 的 1h jobs。
source trace 的远端位置是:
```text ```text
/home/admin/cpfs/wjh/ali-trace/trace-glm5.1-formatted/ /home/admin/cpfs/wjh/ali-trace/trace-glm5.1-formatted/
``` ```
有机器后先确认用户给出的 `~/ali-trace/...` 是否解析到同一目录,再运行以下命令 以下命令保留为从 source 重新构建时的复现入口
## 1. 审计所有 1h+ code source ## 1. 审计所有 1h+ code source
@@ -103,11 +119,21 @@ bash runs/frontier-s3-real-v0/run_full_real.sh RHO_LABEL tp4_mns16 1 PORT
- synthetic prompt 默认拒绝,只有在 experiment card 明确降级 claim 后才设为 `true` - synthetic prompt 默认拒绝,只有在 experiment card 明确降级 claim 后才设为 `true`
- runner 会在启动前扫描 paired requests若任何 `ISL+OSL` 超 cap 立即失败。 - runner 会在启动前扫描 paired requests若任何 `ISL+OSL` 超 cap 立即失败。
正式 full job 前,先按 experiment card 的 G4 补 32k128k attention profile再做 TP4→TP2 的 p50/p99/max 单请求与 5min canary。 长上下文 server 必须同时设置
`VLLM_ALLOW_LONG_MAX_MODEL_LEN=1`
`--hf-overrides '{"max_position_embeddings":MAX_MODEL_LEN}'`runner 已在
`ALLOW_LONG_CONTEXT_SERVER=true` 时自动处理。长上下文默认使用 host-local
vLLM compile cache并按 topology 复用 FlashInfer workspace启动 compile
不进入 workload latency。
## 6. decode-only ## 6. decode-only
当前 materializer 故意不提供 `decode_only` 选项。严格 decode-only 需要 initial-KV state而不是把 prompt 改短。只有 real `DecodeBenchConnector`(或等价能力)与 Frontier initial-KV contract 都通过 G7 后,才创建 decode-only jobs。 当前 materializer 故意不提供 `decode_only` 选项。已安装 vLLM 0.20.0
包含 `DecodeBenchConnector`,但它在首次 admission 后同步填 dummy KV
fill time 必须与 KV-ready arrival 分离。Frontier `Request` 支持
`num_processed_tokens`,当前 trace generator 尚未从 CSV 注入该值。
只有 real 首步无 prefill、sim ledger 首步为 decode 的 C0 gate 通过后,
才创建 strict decode-only jobs。
## 本地验证 ## 本地验证

View File

@@ -0,0 +1,322 @@
#!/usr/bin/env python3
"""Analyze one paired 10-minute code-trace real/sim canary topology."""
from __future__ import annotations
import argparse
import csv
import hashlib
import json
import math
import re
import statistics
from collections import Counter
from pathlib import Path
from typing import Any
METRICS = ("ttft", "tpot", "e2e")
PROM_COUNTERS = ("vllm:prefix_cache_queries_total", "vllm:prefix_cache_hits_total")
ITERATION_RE = re.compile(
r"Iteration.*?:\s+"
r"(?P<context_requests>\d+) context requests, "
r"(?P<context_tokens>\d+) context tokens, "
r"(?P<generation_requests>\d+) generation requests, "
r"(?P<generation_tokens>\d+) generation tokens"
)
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("--input-root", type=Path, required=True)
parser.add_argument("--sim-root", type=Path, required=True)
parser.add_argument("--real-root", type=Path, action="append", required=True)
parser.add_argument("--topology", required=True)
parser.add_argument("--output", type=Path, required=True)
return parser.parse_args()
def sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as stream:
for chunk in iter(lambda: stream.read(1024 * 1024), b""):
digest.update(chunk)
return digest.hexdigest()
def percentile(values: list[float], q: float) -> float:
ordered = sorted(values)
position = (len(ordered) - 1) * q
lower = math.floor(position)
upper = math.ceil(position)
if lower == upper:
return ordered[lower]
return ordered[lower] * (upper - position) + ordered[upper] * (position - lower)
def distribution(values: list[float]) -> dict[str, float | int]:
if not values:
raise ValueError("empty distribution")
return {
"count": len(values),
"mean": statistics.fmean(values),
"p50": percentile(values, 0.5),
"p90": percentile(values, 0.9),
"p95": percentile(values, 0.95),
"p99": percentile(values, 0.99),
"max": max(values),
}
def read_csv(path: Path) -> list[dict[str, str]]:
with path.open(newline="") as stream:
return list(csv.DictReader(stream))
def find_one(root: Path, name: str) -> Path:
matches = list(root.glob(f"**/{name}"))
if len(matches) != 1:
raise ValueError(f"expected one {name} below {root}, found {matches}")
return matches[0]
def prom_counter(path: Path, name: str) -> float:
values = []
with path.open() as stream:
for line in stream:
if line.startswith(name + "{") or line.startswith(name + " "):
values.append(float(line.rsplit(maxsplit=1)[1]))
if not values:
raise ValueError(f"{path}: missing Prometheus counter {name}")
return sum(values)
def prefix_cache_delta(root: Path) -> dict[str, float]:
before = root / "metrics/before.prom"
after = root / "metrics/after.prom"
deltas = {
name: prom_counter(after, name) - prom_counter(before, name)
for name in PROM_COUNTERS
}
queries = deltas[PROM_COUNTERS[0]]
hits = deltas[PROM_COUNTERS[1]]
if queries <= 0 or hits < 0 or hits > queries:
raise ValueError(f"{root}: invalid prefix counter deltas {deltas}")
return {
"query_tokens": queries,
"hit_tokens": hits,
"hit_ratio": hits / queries,
}
def real_decode_batch(root: Path) -> dict[str, Any]:
counts: Counter[int] = Counter()
mixed_steps = 0
for path in sorted(root.rglob("server.log")):
with path.open(errors="replace") as stream:
for line in stream:
match = ITERATION_RE.search(line)
if match is None:
continue
context_requests = int(match.group("context_requests"))
generation_requests = int(match.group("generation_requests"))
generation_tokens = int(match.group("generation_tokens"))
if context_requests:
mixed_steps += 1
continue
if generation_requests and generation_tokens == generation_requests:
counts[generation_requests] += 1
if not counts:
return {
"steps": 0,
"mixed_steps_excluded": mixed_steps,
"max": None,
"share_gt_1": None,
"histogram": {},
}
steps = sum(counts.values())
return {
"steps": steps,
"mixed_steps_excluded": mixed_steps,
"max": max(counts),
"share_gt_1": sum(value for key, value in counts.items() if key > 1) / steps,
"histogram": {str(key): value for key, value in sorted(counts.items())},
}
def load_sim(root: Path, trace: list[dict[str, str]], trace_sha: str) -> dict[str, Any]:
manifest = json.loads((root / "manifest.json").read_text())
if manifest["trace_sha256"] != trace_sha:
raise ValueError(f"{root}: sim/input trace SHA mismatch")
rows = read_csv(find_one(root / "metrics", "request_metrics.csv"))
if len(rows) != len(trace):
raise ValueError(f"{root}: sim/input request count mismatch")
values = {
"ttft": [float(row["ttft"]) for row in rows],
"tpot": [float(row["tpot"]) for row in rows if row["tpot"].strip()],
"e2e": [float(row["request_e2e_time"]) for row in rows],
"waiting": [float(row["request_waiting_time_total"]) for row in rows],
}
completions = [
float(trace_row["arrived_at"]) + float(metric_row["request_e2e_time"]) / 1000
for trace_row, metric_row in zip(trace, rows)
]
tail_index = max(range(len(completions)), key=completions.__getitem__)
last_arrival = max(float(row["arrived_at"]) for row in trace)
summary = json.loads((root / "summary.json").read_text())
return {
"values": values,
"summary": summary,
"drain": {
"last_arrival_s": last_arrival,
"last_completion_s": completions[tail_index],
"tail_after_last_arrival_s": completions[tail_index] - last_arrival,
"tail_driver": {
"request_index": tail_index,
"arrival_s": float(trace[tail_index]["arrived_at"]),
"arrival_before_cutoff_s": last_arrival
- float(trace[tail_index]["arrived_at"]),
"input_tokens": int(trace[tail_index]["num_prefill_tokens"]),
"output_tokens": int(trace[tail_index]["num_decode_tokens"]),
"waiting_ms": values["waiting"][tail_index],
"e2e_ms": values["e2e"][tail_index],
},
},
}
def load_real(
root: Path,
input_manifest: dict[str, Any],
trace: list[dict[str, str]],
) -> dict[str, Any]:
result_path = root / "results/result.json"
result = json.loads(result_path.read_text())
if result["contract"]["row_vector_sha256"] != input_manifest["paired_row_vector_sha256"]:
raise ValueError(f"{root}: real/input row digest mismatch")
requests = result["requests"]
if len(requests) != len(trace) or not all(row["success"] for row in requests):
raise ValueError(f"{root}: incomplete or failed real request vector")
for index, (request, trace_row) in enumerate(zip(requests, trace)):
observed = (int(request["input_tokens"]), int(request["requested_output_tokens"]))
expected = (
int(trace_row["num_prefill_tokens"]),
int(trace_row["num_decode_tokens"]),
)
if observed != expected:
raise ValueError(f"{root}: request {index} shape {observed} != {expected}")
values = {
metric: [
float(request[f"{metric}_ms"])
for request in requests
if request.get(f"{metric}_ms") is not None
]
for metric in METRICS
}
completions = [
float(request["admitted_s"]) + float(request["e2e_ms"]) / 1000
for request in requests
]
tail_index = max(range(len(completions)), key=completions.__getitem__)
last_arrival = max(float(request["scheduled_s"]) for request in requests)
return {
"root": str(root),
"result_sha256": sha256(result_path),
"values": values,
"summary": result["summary"],
"prefix_cache": prefix_cache_delta(root),
"decode_batch": real_decode_batch(root),
"drain": {
"last_arrival_s": last_arrival,
"last_completion_s": completions[tail_index],
"tail_after_last_arrival_s": completions[tail_index] - last_arrival,
"tail_driver": {
"request_index": tail_index,
"arrival_s": float(requests[tail_index]["scheduled_s"]),
"arrival_before_cutoff_s": last_arrival
- float(requests[tail_index]["scheduled_s"]),
"input_tokens": int(requests[tail_index]["input_tokens"]),
"output_tokens": int(requests[tail_index]["requested_output_tokens"]),
"admission_lag_ms": float(requests[tail_index]["admission_lag_ms"]),
"e2e_ms": float(requests[tail_index]["e2e_ms"]),
},
},
}
def main() -> None:
args = parse_args()
input_manifest = json.loads((args.input_root / "manifest.json").read_text())
trace_path = args.input_root / "frontier.csv"
trace = read_csv(trace_path)
if len(trace) != input_manifest["requests"]:
raise ValueError("input manifest/trace request count mismatch")
trace_sha = sha256(trace_path)
sim = load_sim(args.sim_root, trace, trace_sha)
reals = [load_real(root, input_manifest, trace) for root in args.real_root]
pooled = {
metric: [value for real in reals for value in real["values"][metric]]
for metric in METRICS
}
latency = {}
for metric in METRICS:
real_dist = distribution(pooled[metric])
sim_dist = distribution(sim["values"][metric])
latency[metric] = {
"real": real_dist,
"sim": sim_dist,
"relative_bias_percent": {
statistic: 100
* (float(sim_dist[statistic]) - float(real_dist[statistic]))
/ float(real_dist[statistic])
for statistic in ("mean", "p50", "p90", "p95", "p99")
},
"real_per_trial": [
distribution(real["values"][metric]) for real in reals
],
}
payload = {
"schema": "frontier-code-trace-canary-analysis-v1",
"topology": args.topology,
"requests_per_trial": len(trace),
"trials": len(reals),
"input": {
"manifest": str(args.input_root / "manifest.json"),
"paired_row_vector_sha256": input_manifest["paired_row_vector_sha256"],
"frontier_csv_sha256": trace_sha,
},
"latency_ms": latency,
"prefix_cache": {
"real_per_trial": [real["prefix_cache"] for real in reals],
"real_hit_ratio_mean": statistics.fmean(
real["prefix_cache"]["hit_ratio"] for real in reals
),
"sim": sim["summary"]["prefix_cache"],
},
"drain": {
"interpretation": (
"Report the max-completion request explicitly; a response that "
"arrived well before the cutoff can create a long drain tail "
"without implying queue accumulation."
),
"real_per_trial": [real["drain"] for real in reals],
"sim": sim["drain"],
},
"sim_decode_batch": sim["summary"]["decode_batch"],
"real_decode_batch_per_trial": [real["decode_batch"] for real in reals],
"real_artifacts": [
{
"root": real["root"],
"result_sha256": real["result_sha256"],
}
for real in reals
],
}
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n")
print(json.dumps({"output": str(args.output), "topology": args.topology}))
if __name__ == "__main__":
main()

View File

@@ -1,6 +1,8 @@
# EXP-CODE-TRACE从 chat 1h trace 扩展到 code 与 phase-separated replay # EXP-CODE-TRACE从 chat 1h trace 扩展到 code 与 phase-separated replay
> **状态READY_FOR_DATA PREFLIGHT未启动 GPU。** 当前只完成本地适配与实验冻结;`dash1`--`dash4` 有整机空闲后按本文 gate 顺序推进。禁止使用 `dash0`。 > **状态RUNNINGPhase A code P+D。** A0 数据/profile 与 A1 TP4
> max-length smoke 已完成A2 paired canary 正在运行A3 sim calibration
> 已冻结 topology-specific rho。只使用 `dash1`--`dash4`,禁止使用 `dash0`。
## 目标与成功定义 ## 目标与成功定义
@@ -11,6 +13,16 @@
本轮不是只看“能否跑完”。每个正式 cell 必须满足:同一 request vector、同一 arrival、同一 token shape、同一 prefix/initial-KV 合约、real 零失败、无持续 backlog并同时报告 TTFT/TPOT/E2E、queue/batch、KV/prefix state 与 5min 分窗漂移。 本轮不是只看“能否跑完”。每个正式 cell 必须满足:同一 request vector、同一 arrival、同一 token shape、同一 prefix/initial-KV 合约、real 零失败、无持续 backlog并同时报告 TTFT/TPOT/E2E、queue/batch、KV/prefix state 与 5min 分窗漂移。
## 当前决策快照
| 项目 | 当前结论 | 下一 gate |
|---|---|---|
| code P+D 数据 | 61min development window、long-context profile-v6、四个 paired full 输入已冻结 | paired canary real-vs-sim |
| TP4 负载 | low/mid/near-knee=`rho 0.0002/0.0008/0.0016`;三点均亚临界 | canary 通过后启动 1h |
| TP2 负载 | low/mid/near-knee=`rho 0.0002/0.0004/0.0008``0.0016` 明确过载 | TP2 canary/KV gate |
| code prefill-only | `rho<=0.0032` 的 paired remap cache 已生成OSL 全为 1 | 独立 sim rho calibration |
| strict decode-only | vLLM 0.20.0 有 `DecodeBenchConnector`Frontier trace generator 尚不能注入 initial computed tokens | C0 contract canary未进入正式结果 |
## 三种 workload mode 的冻结定义 ## 三种 workload mode 的冻结定义
| Mode | 保留 | 改写 | 主指标 | 明确不声称 | | Mode | 保留 | 改写 | 主指标 | 明确不声称 |
@@ -112,6 +124,14 @@ source-window audit 先用 `40960/65536/98304/131072/262144` 给出完整
`max_model_len` 变大不等于每个请求都预占最大 KV但会改变启动合法性与可表达的单请求上界实际 KV 压力仍由并发 token state 决定。 `max_model_len` 变大不等于每个请求都预占最大 KV但会改变启动合法性与可表达的单请求上界实际 KV 压力仍由并发 token state 决定。
对本模型,`VLLM_ALLOW_LONG_MAX_MODEL_LEN=1` 只放宽 scheduler/config
校验,不会扩展模型内部 RoPE cacheserver 还必须显式传
`--hf-overrides '{"max_position_embeddings":147456}'`。runner 对
`MAX_MODEL_LEN>40960` 自动同时设置这两层。长上下文 job 默认使用
host-local vLLM compile cacheFlashInfer workspace 按 topology 复用,
避免每个 rho/trial 重编译同一组 fused-MoE kernels。两者只影响启动
不进入 replay latency。
### G6每种 mode 独立标定 rho ### G6每种 mode 独立标定 rho
不能复用 P+D rho 不能复用 P+D rho
@@ -122,6 +142,12 @@ source-window audit 先用 `40960/65536/98304/131072/262144` 给出完整
每种 workload×mode 选择 `low/mid/near-knee` 三点;正式点必须亚临界:全请求完成、无持续 backlog、drain tail≤10%、waiting p99 不单调随时间增长。跨 knee 点若运行,只作为 overload boundary不支持“不发散”结论。 每种 workload×mode 选择 `low/mid/near-knee` 三点;正式点必须亚临界:全请求完成、无持续 backlog、drain tail≤10%、waiting p99 不单调随时间增长。跨 knee 点若运行,只作为 overload boundary不支持“不发散”结论。
`drain tail` 必须同时列出最后完成请求的 arrival、ISL、OSL、waiting
和 E2E。早于 cutoff 到达但 OSL 很长的请求可以在最后 arrival 后继续
decode这属于 intrinsic response tail不等价于 arrival cutoff 时仍有
持续增长的 queue backlog。亚临界判断以 queue/waiting trajectory 和
tail driver 分解共同决定,不能只用一个 drain 秒数。
### G7strict decode-only capability gate ### G7strict decode-only capability gate
先在 10min synthetic trace 上验证: 先在 10min synthetic trace 上验证:
@@ -147,6 +173,10 @@ source-window audit 先用 `40960/65536/98304/131072/262144` 给出完整
若某 topology 的 near-knee 过载,像现有 chat TP2/ρ0.01 一样排除,不为凑齐矩阵强跑。 若某 topology 的 near-knee 过载,像现有 chat TP2/ρ0.01 一样排除,不为凑齐矩阵强跑。
当前状态A0 完成A1 的 TP4 完成、TP2 由 paired canary 同时验证;
A2 运行中A3 完成A4 的 paired input 已物化但尚未在 canary gate
前启动。
### Phase Bchat/code prefill-only ### Phase Bchat/code prefill-only
- 复用各自已物化 window只把 OSL 改为 1 - 复用各自已物化 window只把 OSL 改为 1
@@ -165,6 +195,20 @@ source-window audit 先用 `40960/65536/98304/131072/262144` 给出完整
decode profile/serving anchors 至少覆盖实际 batch p99。当前 whole-layer grid 只对少数 b≤8 有证据,且 b6 有长尾;在 MNS128 case 前必须补 b{1,2,4,8,16,32,64,128} 或实际访问 bucket不能把 b8 常数外推到 b128。 decode profile/serving anchors 至少覆盖实际 batch p99。当前 whole-layer grid 只对少数 b≤8 有证据,且 b6 有长尾;在 MNS128 case 前必须补 b{1,2,4,8,16,32,64,128} 或实际访问 bucket不能把 b8 常数外推到 b128。
已安装 vLLM 0.20.0 的 `DecodeBenchConnector` 会在首次 schedule 时把
`request.num_tokens-num_computed_tokens-1` 个 token 标为 external
同步向已分配的每层 KV blocks 写 dummy non-zero values再从最后一个
prompt token 开始 forward。因此它适合测大 context 下的 decode
compute/scheduling但 connector fill 发生在 client admission 之后:
fill time 必须单独记账并从 KV-ready arrival/TPOT 口径中排除。
dummy KV 也不提供真实 prompt-content 或 MoE-routing fidelity。
Frontier commit `deadc4a3``Request` 已支持构造
`num_processed_tokens`,但 `TraceReplayRequestGenerator` 不读取该列;
因此 sim 侧仍需一个显式、可测试的 `initial_computed_tokens` trace
contract。C0 必须同时证明 real 首个 model step 是 decode、Frontier
首个 ledger stage 是 decode之后才能解除 strict decode-only 的 BLOCKED。
## 指标与判据 ## 指标与判据
共同口径: 共同口径:
@@ -238,3 +282,29 @@ mode-specific
`VLLM_ALLOW_LONG_MAX_MODEL_LEN=1` 下成功;该 override 只支持 `VLLM_ALLOW_LONG_MAX_MODEL_LEN=1` 下成功;该 override 只支持
performance/shape fidelity不形成生成质量或模型长上下文正确性 claim performance/shape fidelity不形成生成质量或模型长上下文正确性 claim
并作为 provenance 中的显式实验变量。 并作为 provenance 中的显式实验变量。
- profile-v6-code-longctx 覆盖 TP1/2/4、KV context 到 131072
33 个 long-context rows两次 fresh-process repeat 的最大相对差
4.648%,旧 anchor drift 最大 1.7%。attention profile SHA256 =
`fbcf7e1f95789a6f6d771e24d1fc60958b7daf04eb0db260d27869a19d71d550`
- TP4 `max_model_len=147456` smoke 已在 dash4 通过。server 日志同时确认
`max_model_len=147456``hf_overrides.max_position_embeddings=147456`
20,051+78、119,702+68、136,774+242 三个 shape 均成功。对应
TTFT=853.29/12,699.04/3,820.55msTPOT=16.65/7.21/8.13ms。
最长请求的非单调 TTFT 来自 cold compile/cache state因此这里只作为
runtime support gate不作为 profile accuracy 数据。
- calibration 全部使用同一 profile-v6 SHA。TP4 的 `rho=0.0016`
decode batch max=16、drain=21.07s,仍通过 10% 亚临界 gateTP2 的
`rho=0.0016` waiting p50=332.97s、drain=976.86s,明确过载并排除。
完整 compact table 在 `results/calibration-summary.json`
- TP2/TP4 的 `rho={0.0002,0.0004,0.0008,0.0016}` 61min full paired
inputs 已在 CPFS 物化;每个 paired row digest 和 Frontier CSV SHA
均与 calibration input 逐项一致。manifest 副本在
`results/paired-input-manifests/`。最大一个目录约 901MiB不把大型
token arrays 提交进 Git。
- code prefill-only 的最大 calibration cache 已物化:
3477 requests、总 prefill 115,828,371 tokens、OSL 全为 1
paired digest=`40865068e02414612ba1cd4595894e20e85e01fd34d73f8660185552d531ecea`
- 多 host 并发 server startup 暴露出 shared CPFS AOT cache 和每-job
FlashInfer JIT 的 apparatus cost。它发生在 readiness 前,不进入 TTFT
runner commit `d5bb974` 改为长上下文默认使用 host-local vLLM cache
并按 topology 复用 FlashInfer workspace。

View File

@@ -0,0 +1,632 @@
{
"attention_profile_sha256": "fbcf7e1f95789a6f6d771e24d1fc60958b7daf04eb0db260d27869a19d71d550",
"cells": [
{
"decode_batch": {
"histogram": {
"1": 5525
},
"max": 1,
"share_gt_1": 0.0,
"share_gt_4": 0.0,
"stages": 5525
},
"drain_fraction": 0.00044126232317770095,
"drain_tail_s": 1.6150201028303854,
"offered_load": {
"decode_tokens_per_s": 1.5183060109289617,
"prefill_tokens_per_s_after_prefix": 189.91639344262296,
"prefill_tokens_per_s_raw": 201.38743169398907,
"requests_per_s": 0.008743169398907104
},
"prefix_cache_hit_ratio": 0.05698154180238871,
"requests": 32,
"rho": 5e-05,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 32,
"max": 6.06516500761245,
"mean": 5.267661756941212,
"min": 4.642776716764274,
"p50": 5.27961358181982,
"p90": 6.065165007589712,
"p95": 6.06516500761245,
"p99": 6.06516500761245
},
"trace_sha256": "bdc54edafacf3e3f353de7a54d5e43a7e4323eb1e8b3dc55ce333a5e0b347ce5",
"ttft_ms": {
"count": 32,
"max": 9026.404118319988,
"mean": 1316.2539772416199,
"min": 76.98844366404956,
"p50": 401.828087941567,
"p90": 3363.622890573971,
"p95": 6721.082190563591,
"p99": 8741.382807755395
},
"waiting_ms": {
"count": 32,
"max": 0.0,
"mean": 0.0,
"min": 0.0,
"p50": 0.0,
"p90": 0.0,
"p95": 0.0,
"p99": 0.0
}
},
{
"decode_batch": {
"histogram": {
"1": 33249,
"2": 294,
"3": 76
},
"max": 3,
"share_gt_1": 0.011005681311163331,
"share_gt_4": 0.0,
"stages": 33619
},
"drain_fraction": 0.0006573023445132039,
"drain_tail_s": 2.4057265809183264,
"offered_load": {
"decode_tokens_per_s": 9.343989071038251,
"prefill_tokens_per_s_after_prefix": 491.8571038251366,
"prefill_tokens_per_s_raw": 1477.1773224043716,
"requests_per_s": 0.03224043715846994
},
"prefix_cache_hit_ratio": 0.667142227102801,
"requests": 118,
"rho": 0.0001,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 118,
"max": 109.2514556116484,
"mean": 6.521761912064516,
"min": 4.642776716750063,
"p50": 5.7134254039277,
"p90": 6.06516500761245,
"p95": 6.582261050425584,
"p99": 14.049063410907634
},
"trace_sha256": "8d4ac5646f46e84560c17c44013af2bcb7cfe91d4a2be3476d8f3c09565cf55f",
"ttft_ms": {
"count": 118,
"max": 9696.373176562247,
"mean": 1203.6180593647337,
"min": 72.1560867923472,
"p50": 592.0461311603731,
"p90": 3231.0798294979118,
"p95": 6885.471905257904,
"p99": 8918.025104477005
},
"waiting_ms": {
"count": 118,
"max": 7151.845512636555,
"mean": 98.59009397263883,
"min": 0.0,
"p50": 0.0,
"p90": 0.0,
"p95": 0.21863999056675887,
"p99": 2087.1951396751865
}
},
{
"decode_batch": {
"histogram": {
"1": 71338,
"2": 4093,
"3": 1021,
"4": 33
},
"max": 4,
"share_gt_1": 0.067294240700791,
"share_gt_4": 0.0,
"stages": 76485
},
"drain_fraction": 0.001483881651363999,
"drain_tail_s": 5.431006843992236,
"offered_load": {
"decode_tokens_per_s": 22.691803278688525,
"prefill_tokens_per_s_after_prefix": 884.2945355191257,
"prefill_tokens_per_s_raw": 2459.7437158469947,
"requests_per_s": 0.0633879781420765
},
"prefix_cache_hit_ratio": 0.6406200282639031,
"requests": 232,
"rho": 0.0002,
"subcritical_gate": true,
"topology": "tp2_mns16",
"tpot_ms": {
"count": 231,
"max": 151.0151050020596,
"mean": 8.197384891414327,
"min": 4.790955988028145,
"p50": 6.377284733844135,
"p90": 9.066414456096654,
"p95": 13.235755136549969,
"p99": 45.72584194314243
},
"trace_sha256": "188f9e52674ec268d70d763995f2cdf84ccbcbab86420214b127994569324e9b",
"ttft_ms": {
"count": 232,
"max": 22394.384315265255,
"mean": 2036.2309970727358,
"min": 90.95485497891787,
"p50": 876.6052006358223,
"p90": 5676.270318256946,
"p95": 9955.05948414866,
"p99": 15641.83197487735
},
"waiting_ms": {
"count": 232,
"max": 13155.607757982125,
"mean": 338.8558697712575,
"min": 0.0,
"p50": 0.0,
"p90": 5.941389865392926,
"p95": 1644.4218195787325,
"p99": 8012.825782587187
}
},
{
"decode_batch": {
"histogram": {
"1": 72379,
"2": 4138,
"3": 696
},
"max": 3,
"share_gt_1": 0.06260603784336835,
"share_gt_4": 0.0,
"stages": 77213
},
"drain_fraction": 0.0010192168060329308,
"drain_tail_s": 3.730333510080527,
"offered_load": {
"decode_tokens_per_s": 22.691803278688525,
"prefill_tokens_per_s_after_prefix": 880.7972677595628,
"prefill_tokens_per_s_raw": 2459.7437158469947,
"requests_per_s": 0.0633879781420765
},
"prefix_cache_hit_ratio": 0.6420421114379927,
"requests": 232,
"rho": 0.0002,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 231,
"max": 109.2514556116484,
"mean": 6.682483450713786,
"min": 4.6427767165369005,
"p50": 5.757631515507455,
"p90": 6.873691941109428,
"p95": 8.022302513342353,
"p99": 28.619774468019706
},
"trace_sha256": "188f9e52674ec268d70d763995f2cdf84ccbcbab86420214b127994569324e9b",
"ttft_ms": {
"count": 232,
"max": 12080.695954866542,
"mean": 1109.6819359234096,
"min": 72.1560867923472,
"p50": 527.4056752296019,
"p90": 2603.3383651315494,
"p95": 5585.788369509169,
"p99": 8828.771798959253
},
"waiting_ms": {
"count": 232,
"max": 7151.845512636555,
"mean": 100.5913696184332,
"min": 0.0,
"p50": 0.0,
"p90": 2.71668797665825,
"p95": 337.7136230834021,
"p99": 2261.809117635907
}
},
{
"decode_batch": {
"histogram": {
"1": 163554,
"10": 18,
"11": 5,
"12": 10,
"2": 48104,
"3": 15894,
"4": 2673,
"5": 1305,
"6": 332,
"7": 181,
"8": 46,
"9": 15
},
"max": 12,
"share_gt_1": 0.2954419157652593,
"share_gt_4": 0.008236515505929689,
"stages": 232137
},
"drain_fraction": 0.001932022033012745,
"drain_tail_s": 7.071200640826646,
"offered_load": {
"decode_tokens_per_s": 90.30054644808743,
"prefill_tokens_per_s_after_prefix": 1805.1767759562842,
"prefill_tokens_per_s_raw": 5620.918852459016,
"requests_per_s": 0.13633879781420766
},
"prefix_cache_hit_ratio": 0.6789729811301968,
"requests": 499,
"rho": 0.0004,
"subcritical_gate": true,
"topology": "tp2_mns16",
"tpot_ms": {
"count": 497,
"max": 556.5990343567938,
"mean": 18.61788167095804,
"min": 4.790955988028145,
"p50": 7.918935117459114,
"p90": 26.775158132602897,
"p95": 56.43467403678585,
"p99": 256.82570583636533
},
"trace_sha256": "2751c373bb91eccf42b94e1b28245870d6ffa2f91e1b5dabafe2435bc46da274",
"ttft_ms": {
"count": 499,
"max": 28488.652032648133,
"mean": 2601.050597929721,
"min": 90.96449664048123,
"p50": 942.4448686800133,
"p90": 7645.075071658986,
"p95": 12524.265102993284,
"p99": 19300.755134457228
},
"waiting_ms": {
"count": 499,
"max": 25277.458416518584,
"mean": 926.4084886277059,
"min": 0.0,
"p50": 2.7291107814733095,
"p90": 2483.439910098784,
"p95": 6352.661668917902,
"p99": 13692.62653031437
}
},
{
"decode_batch": {
"histogram": {
"1": 184431,
"2": 52296,
"3": 10583,
"4": 1254,
"5": 675
},
"max": 5,
"share_gt_1": 0.2600235115692167,
"share_gt_4": 0.002708243894414598,
"stages": 249239
},
"drain_fraction": 0.001114813580178276,
"drain_tail_s": 4.08021770345249,
"offered_load": {
"decode_tokens_per_s": 90.30054644808743,
"prefill_tokens_per_s_after_prefix": 1738.4489071038251,
"prefill_tokens_per_s_raw": 5620.918852459016,
"requests_per_s": 0.13633879781420766
},
"prefix_cache_hit_ratio": 0.6908465352465023,
"requests": 499,
"rho": 0.0004,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 497,
"max": 191.36693232402044,
"mean": 9.29907499058627,
"min": 4.6427767165369005,
"p50": 6.554626532726112,
"p90": 10.321323503714908,
"p95": 18.835821286381098,
"p99": 73.17188748931419
},
"trace_sha256": "2751c373bb91eccf42b94e1b28245870d6ffa2f91e1b5dabafe2435bc46da274",
"ttft_ms": {
"count": 499,
"max": 14944.866787426236,
"mean": 1252.450784907019,
"min": 72.1560867923472,
"p50": 526.7327146962089,
"p90": 3295.008250609953,
"p95": 5487.844406213842,
"p99": 10840.596450182773
},
"waiting_ms": {
"count": 499,
"max": 12922.960017376226,
"mean": 274.43276731097365,
"min": 0.0,
"p50": 0.6520015415389935,
"p90": 164.9360333363801,
"p95": 2029.720098907419,
"p99": 6246.634668026156
}
},
{
"decode_batch": {
"histogram": {
"1": 123423,
"10": 262,
"11": 84,
"12": 37,
"13": 42,
"14": 108,
"15": 59,
"16": 39,
"2": 64628,
"3": 34551,
"4": 17977,
"5": 5215,
"6": 2255,
"7": 1043,
"8": 349,
"9": 406
},
"max": 16,
"share_gt_1": 0.5072501377366475,
"share_gt_4": 0.039520436924600166,
"stages": 250478
},
"drain_fraction": 0.0006878766017147268,
"drain_tail_s": 2.5176283622759,
"offered_load": {
"decode_tokens_per_s": 135.20737704918034,
"prefill_tokens_per_s_after_prefix": 3107.11174863388,
"prefill_tokens_per_s_raw": 7722.316120218579,
"requests_per_s": 0.23743169398907105
},
"prefix_cache_hit_ratio": 0.5977800565206239,
"requests": 869,
"rho": 0.0008,
"subcritical_gate": true,
"topology": "tp2_mns16",
"tpot_ms": {
"count": 864,
"max": 1048.199917263105,
"mean": 35.531282784807445,
"min": 4.790955988028145,
"p50": 10.56810791578755,
"p90": 58.679343047855866,
"p95": 113.21830549665293,
"p99": 497.8300148864786
},
"trace_sha256": "2788a21c6bb8be6d03fb5151f2c51efa09c0eb5e1f941af60c00a7cc11d41206",
"ttft_ms": {
"count": 869,
"max": 35023.43713844812,
"mean": 3519.677566968775,
"min": 80.48812343014333,
"p50": 944.5946905507299,
"p90": 11539.678186253443,
"p95": 16395.861888973763,
"p99": 23283.982779742393
},
"waiting_ms": {
"count": 869,
"max": 33885.372635082604,
"mean": 1944.5601581730987,
"min": 0.0,
"p50": 4.989910657513974,
"p90": 7660.373377703809,
"p95": 12268.558603129362,
"p99": 19104.247337156932
}
},
{
"decode_batch": {
"histogram": {
"1": 185761,
"2": 81136,
"3": 28184,
"4": 10328,
"5": 2183,
"6": 759,
"7": 199,
"8": 89,
"9": 18
},
"max": 9,
"share_gt_1": 0.3981636573931581,
"share_gt_4": 0.010523007739983218,
"stages": 308657
},
"drain_fraction": 0.0005799250803688739,
"drain_tail_s": 2.1225257941500786,
"offered_load": {
"decode_tokens_per_s": 135.20737704918034,
"prefill_tokens_per_s_after_prefix": 2943.3609289617484,
"prefill_tokens_per_s_raw": 7722.316120218579,
"requests_per_s": 0.23743169398907105
},
"prefix_cache_hit_ratio": 0.6189897292366545,
"requests": 869,
"rho": 0.0008,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 864,
"max": 556.1359991102521,
"mean": 12.147948538437653,
"min": 4.6427767165369005,
"p50": 6.843951976861717,
"p90": 14.306706048821074,
"p95": 30.43280397112956,
"p99": 137.6170979713351
},
"trace_sha256": "2788a21c6bb8be6d03fb5151f2c51efa09c0eb5e1f941af60c00a7cc11d41206",
"ttft_ms": {
"count": 869,
"max": 17076.806859823137,
"mean": 1363.8187082248587,
"min": 67.46058986817616,
"p50": 457.5338581378219,
"p90": 4063.5681271006715,
"p95": 6757.6291299215145,
"p99": 11100.99635793714
},
"waiting_ms": {
"count": 869,
"max": 16033.766590147934,
"mean": 459.6734459851503,
"min": 0.0,
"p50": 2.5305451699750847,
"p90": 796.2202857544993,
"p95": 3149.129404067843,
"p99": 9085.03332971697
}
},
{
"decode_batch": {
"histogram": {
"1": 8883,
"10": 102,
"11": 206,
"12": 48,
"13": 104,
"14": 98,
"15": 112,
"16": 42432,
"2": 8887,
"3": 5320,
"4": 1084,
"5": 391,
"6": 1238,
"7": 983,
"8": 600,
"9": 185
},
"max": 16,
"share_gt_1": 0.8743084346214255,
"share_gt_4": 0.6579457501450342,
"stages": 70673
},
"drain_fraction": 0.26690162220748465,
"drain_tail_s": 976.8599372793938,
"offered_load": {
"decode_tokens_per_s": 222.2658469945355,
"prefill_tokens_per_s_after_prefix": 6478.3401639344265,
"prefill_tokens_per_s_raw": 14510.624316939891,
"requests_per_s": 0.46939890710382515
},
"prefix_cache_hit_ratio": 0.5536777047530368,
"requests": 1718,
"rho": 0.0016,
"subcritical_gate": false,
"topology": "tp2_mns16",
"tpot_ms": {
"count": 1710,
"max": 1075.3968454229532,
"mean": 82.12803809595945,
"min": 5.044100516215622,
"p50": 55.434284109098826,
"p90": 148.45522338371572,
"p95": 240.8300400647424,
"p99": 469.60790088235683
},
"trace_sha256": "d785665c86a562c9d9a7492ad710e6393bb883bf8c3ad552a34ff18f22925043",
"ttft_ms": {
"count": 1718,
"max": 899333.5996373689,
"mean": 363823.5998174686,
"min": 95.16785391630833,
"p50": 333469.8464378732,
"p90": 786932.9549504423,
"p95": 836208.7308378813,
"p99": 879481.7276833938
},
"waiting_ms": {
"count": 1718,
"max": 898008.7571403392,
"mean": 362060.3850241827,
"min": 0.0,
"p50": 332965.98011225695,
"p90": 785791.1926569697,
"p95": 832975.7759936375,
"p99": 872501.6632742453
}
},
{
"decode_batch": {
"histogram": {
"1": 82578,
"10": 992,
"11": 686,
"12": 564,
"13": 388,
"14": 207,
"15": 120,
"16": 556,
"2": 76732,
"3": 49252,
"4": 30080,
"5": 19950,
"6": 9869,
"7": 6575,
"8": 3735,
"9": 1733
},
"max": 16,
"share_gt_1": 0.7092497984275589,
"share_gt_4": 0.15976156356837795,
"stages": 284017
},
"drain_fraction": 0.0057571275011030374,
"drain_tail_s": 21.071086654037117,
"offered_load": {
"decode_tokens_per_s": 222.2658469945355,
"prefill_tokens_per_s_after_prefix": 6066.187158469946,
"prefill_tokens_per_s_raw": 14510.624316939891,
"requests_per_s": 0.46939890710382515
},
"prefix_cache_hit_ratio": 0.5820880455385098,
"requests": 1718,
"rho": 0.0016,
"subcritical_gate": true,
"topology": "tp4_mns16",
"tpot_ms": {
"count": 1710,
"max": 779.2730316123988,
"mean": 31.087273162821237,
"min": 4.6427767165369005,
"p50": 9.443696854706767,
"p90": 67.85056779351899,
"p95": 145.53426807885694,
"p99": 346.8968267376913
},
"trace_sha256": "d785665c86a562c9d9a7492ad710e6393bb883bf8c3ad552a34ff18f22925043",
"ttft_ms": {
"count": 1718,
"max": 24498.655361823694,
"mean": 2344.154809416248,
"min": 72.15684780067022,
"p50": 646.7976478797937,
"p90": 7657.698621058489,
"p95": 10053.03089890951,
"p99": 16706.358496869783
},
"waiting_ms": {
"count": 1718,
"max": 20607.142196811765,
"mean": 1395.7184472333554,
"min": 0.0,
"p50": 5.521385635063325,
"p90": 5253.222863654173,
"p95": 8173.9598212075725,
"p99": 14808.95660872061
}
}
],
"schema": "frontier-code-trace-calibration-summary-v1",
"subcritical_rule": "drain tail <= 10% of the 3660s arrival window"
}

View File

@@ -0,0 +1,8 @@
0, NVIDIA H20, 0, 0
1, NVIDIA H20, 0, 0
2, NVIDIA H20, 0, 0
3, NVIDIA H20, 0, 0
4, NVIDIA H20, 0, 0
5, NVIDIA H20, 0, 0
6, NVIDIA H20, 0, 0
7, NVIDIA H20, 0, 0
1 0 NVIDIA H20 0 0
2 1 NVIDIA H20 0 0
3 2 NVIDIA H20 0 0
4 3 NVIDIA H20 0 0
5 4 NVIDIA H20 0 0
6 5 NVIDIA H20 0 0
7 6 NVIDIA H20 0 0
8 7 NVIDIA H20 0 0

View File

@@ -0,0 +1,8 @@
0, NVIDIA H20, 0, 0, 0
1, NVIDIA H20, 0, 0, 0
2, NVIDIA H20, 0, 0, 0
3, NVIDIA H20, 0, 0, 0
4, NVIDIA H20, 0, 0, 0
5, NVIDIA H20, 0, 0, 0
6, NVIDIA H20, 0, 0, 0
7, NVIDIA H20, 0, 0, 0
1 0 NVIDIA H20 0 0 0
2 1 NVIDIA H20 0 0 0
3 2 NVIDIA H20 0 0 0
4 3 NVIDIA H20 0 0 0
5 4 NVIDIA H20 0 0 0
6 5 NVIDIA H20 0 0 0
7 6 NVIDIA H20 0 0 0
8 7 NVIDIA H20 0 0 0

View File

@@ -0,0 +1,3 @@
9857f3ee2565e0ae5bf414c769ea7404295eb7b15fc4a4e8c0f85726312e27a5 runs/frontier-code-trace-v0/run_max_model_len_smoke.sh
0b6a6d1d8c71f57b8e11b4eb89a9887e182a327223206577086605930da3c028 /home/admin/cpfs/wjh/aituner/aituner-code-smoke-da480a8/runs/frontier-s3-real-v0/qwen30_prefill_client.py
2850ddb3bf7aecad20b611e2d44f3077fc8193f4827c93beddd4c02ad63c2297 /home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B/config.json

View File

@@ -0,0 +1,47 @@
{
"requests": [
{
"admission_lag_ms": 0.09795790538191795,
"admitted_s": 9.795790538191795e-05,
"completion_tokens": 242,
"e2e_ms": 5778.945273021236,
"prompt_tokens": 136774,
"request_index": 0,
"scheduled_s": 0.0,
"slo_pass": true,
"streamed_token_count": 242,
"success": true,
"tpot_ms": 8.126009058562799,
"ttft_ms": 3820.549983996898
}
],
"schema": "qwen30-fixed-rate-anchor-v2",
"summary": {
"admission_lag_max_ms": 0.09795790538191795,
"completed": 1,
"failed": 0,
"slo": {
"feasible": true,
"pass_rate": 1.0,
"passed": 1,
"tpot_threshold_ms": 150.0,
"ttft_threshold_ms": 18096.75
},
"tpot_max_ms": 8.126009058562799,
"tpot_p50_ms": 8.126009058562799,
"tpot_p95_ms": 8.126009058562799,
"ttft_max_ms": 3820.549983996898,
"ttft_p50_ms": 3820.549983996898,
"ttft_p95_ms": 3820.549983996898
},
"workload": {
"arrival": "open_loop_uniform",
"input_tokens": 136774,
"last_scheduled_arrival_s": 0.0,
"offered_request_rate": 1.0,
"output_tokens": 242,
"prefix_caching": false,
"prompt_vector_sha256": "40852e3d159377ae557b58933b077bee1e565bc51a4b7d4e3ea0070709e63999",
"request_count": 1
}
}

View File

@@ -0,0 +1,47 @@
{
"requests": [
{
"admission_lag_ms": 0.10300683788955212,
"admitted_s": 0.00010300683788955212,
"completion_tokens": 68,
"e2e_ms": 13182.361921994016,
"prompt_tokens": 119702,
"request_index": 0,
"scheduled_s": 0.0,
"slo_pass": true,
"streamed_token_count": 68,
"success": true,
"tpot_ms": 7.21338267243509,
"ttft_ms": 12699.044595938176
}
],
"schema": "qwen30-fixed-rate-anchor-v2",
"summary": {
"admission_lag_max_ms": 0.10300683788955212,
"completed": 1,
"failed": 0,
"slo": {
"feasible": true,
"pass_rate": 1.0,
"passed": 1,
"tpot_threshold_ms": 150.0,
"ttft_threshold_ms": 15962.75
},
"tpot_max_ms": 7.21338267243509,
"tpot_p50_ms": 7.21338267243509,
"tpot_p95_ms": 7.21338267243509,
"ttft_max_ms": 12699.044595938176,
"ttft_p50_ms": 12699.044595938176,
"ttft_p95_ms": 12699.044595938176
},
"workload": {
"arrival": "open_loop_uniform",
"input_tokens": 119702,
"last_scheduled_arrival_s": 0.0,
"offered_request_rate": 1.0,
"output_tokens": 68,
"prefix_caching": false,
"prompt_vector_sha256": "aaa2e7077defd41a1abb6227d9d22ec928a5d56e18fb3135783a6044e8365af7",
"request_count": 1
}
}

View File

@@ -0,0 +1,47 @@
{
"requests": [
{
"admission_lag_ms": 0.08747284300625324,
"admitted_s": 8.747284300625324e-05,
"completion_tokens": 78,
"e2e_ms": 2135.5441550258547,
"prompt_tokens": 20051,
"request_index": 0,
"scheduled_s": 0.0,
"slo_pass": true,
"streamed_token_count": 78,
"success": true,
"tpot_ms": 16.65233903830605,
"ttft_ms": 853.2876779790968
}
],
"schema": "qwen30-fixed-rate-anchor-v2",
"summary": {
"admission_lag_max_ms": 0.08747284300625324,
"completed": 1,
"failed": 0,
"slo": {
"feasible": true,
"pass_rate": 1.0,
"passed": 1,
"tpot_threshold_ms": 150.0,
"ttft_threshold_ms": 3506.375
},
"tpot_max_ms": 16.65233903830605,
"tpot_p50_ms": 16.65233903830605,
"tpot_p95_ms": 16.65233903830605,
"ttft_max_ms": 853.2876779790968,
"ttft_p50_ms": 853.2876779790968,
"ttft_p95_ms": 853.2876779790968
},
"workload": {
"arrival": "open_loop_uniform",
"input_tokens": 20051,
"last_scheduled_arrival_s": 0.0,
"offered_request_rate": 1.0,
"output_tokens": 78,
"prefix_caching": false,
"prompt_vector_sha256": "a814b02092178b7e949e4d14d15aa271c9e93cead6552d91413d8f9abf2c9287",
"request_count": 1
}
}

View File

@@ -0,0 +1 @@
{"object":"list","data":[{"id":"qwen3-30b-code-maxlen-smoke","object":"model","created":1784827167,"owned_by":"vllm","root":"/home/admin/cpfs/wjh/models/Qwen/Qwen3-30B-A3B","parent":null,"max_model_len":147456,"permission":[{"id":"modelperm-971c6c18ac176f4d","object":"model_permission","created":1784827167,"allow_create_engine":false,"allow_sampling":true,"allow_logprobs":true,"allow_search_indices":false,"allow_view":true,"allow_fine_tuning":false,"organization":"*","group":null,"is_blocking":false}]}]}

View File

@@ -0,0 +1,47 @@
{
"requests": [
{
"admission_lag_ms": 0.11776993051171303,
"admitted_s": 0.00011776993051171303,
"completion_tokens": 1,
"e2e_ms": 1389.798145974055,
"prompt_tokens": 512,
"request_index": 0,
"scheduled_s": 0.0,
"slo_pass": false,
"streamed_token_count": 1,
"success": true,
"tpot_ms": null,
"ttft_ms": 1389.7535749711096
}
],
"schema": "qwen30-fixed-rate-anchor-v2",
"summary": {
"admission_lag_max_ms": 0.11776993051171303,
"completed": 1,
"failed": 0,
"slo": {
"feasible": false,
"pass_rate": 0.0,
"passed": 0,
"tpot_threshold_ms": null,
"ttft_threshold_ms": 1064.0
},
"tpot_max_ms": null,
"tpot_p50_ms": null,
"tpot_p95_ms": null,
"ttft_max_ms": 1389.7535749711096,
"ttft_p50_ms": 1389.7535749711096,
"ttft_p95_ms": 1389.7535749711096
},
"workload": {
"arrival": "open_loop_uniform",
"input_tokens": 512,
"last_scheduled_arrival_s": 0.0,
"offered_request_rate": 1.0,
"output_tokens": 1,
"prefix_caching": false,
"prompt_vector_sha256": "11f5ac36e39b39336da6e64e7879dc7fcdedf26e9315bbb267d59ed1fa644939",
"request_count": 1
}
}

View File

@@ -0,0 +1,69 @@
{
"block_contract": {
"input_length_mismatches": 0,
"runtime_identity_collisions": 0,
"runtime_to_source_relation_conflicts": 0,
"source_hash_count_mismatches": 0,
"source_runtime_granularity": "one 512-token source hash to 32 consecutive 16-token identities; final partial source block may have fewer",
"source_to_runtime_relation_conflicts": 0,
"unique_runtime_identities": 2613467,
"unique_runtime_relations": 0,
"unique_source_hash_relations": 0
},
"excluded_over_max_total_tokens": 0,
"frontier_csv": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0002-v1/frontier.csv",
"frontier_csv_sha256": "188f9e52674ec268d70d763995f2cdf84ccbcbab86420214b127994569324e9b",
"mapping": "real prompt tokens: BLAKE2b-128(parent runtime identity, exact 16-token block); missing prompt fallback: source hashes first define deterministic 16-token content blocks, then the same parent-sensitive BLAKE2b-128 runtime identity contract is applied",
"max_total_tokens_filter": null,
"paired_row_vector_sha256": "6d0ac009dd415a6dab23928afb1eed2947f55d57e3ac6284629a9a6549ce016e",
"parent_validation": {
"enabled": false,
"links_checked": 0,
"links_outside_selected_stream": 0,
"mean_tail_nonreused_per_link": 0.0,
"parent_prefix_common_blocks": 0,
"parent_tail_nonreused_blocks": 0,
"rule": "contiguous common prefix required; mismatch tolerated only within parent trailing partial 512-token block (<= 33 runtime blocks)"
},
"prefix_cache_blocks": "complete 16-token blocks only; final partial block excluded",
"prompt_contract": {
"input_is_pre_remapped": true,
"real_prompt_requests": 0,
"synthetic_fallback_requests": 232,
"tokenizer": null
},
"prompt_window": null,
"prompt_window_sha256": null,
"real_requests": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0002-v1/real_requests.jsonl",
"real_requests_sha256": "e495a0496fd7183980f2f59f178ac6f5869c4da9deadde45e971f466324674c8",
"requests": 232,
"rho": 0.0002,
"sampling_rule": "keep iff sampling_u <= rho (SimFid convention; rho=1 keeps all rows)",
"schema": "frontier-s3-real-remap-v2",
"selected_remapped": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0002-v1/selected-remapped.jsonl",
"selected_remapped_sha256": "b4b90f2a09bee765365274d5a9d4fb6322761c85b37b9d3a3eee320c268b2c85",
"source": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/selected-remapped.jsonl",
"source_block_size": 512,
"source_blocks": 17691,
"source_rows_scanned": 3477,
"source_sha256": "f46c7d8ddbd146bafe00fbc173bf3f29039d8b96aa611f1ae4e2a0b9eac189f1",
"synthetic_fallback_contract": {
"different_16_block_hash_different_tokens": true,
"encoding": "injective base-(vocab_size-token_offset), 16 little-endian digits",
"runtime_identity_is_parent_sensitive": true,
"same_16_block_hash_same_tokens": true,
"token_offset": 1024,
"vocab_size": 151936
},
"target_16_blocks": 562555,
"target_block_size": 16,
"total_decode_tokens": 83052,
"total_prefill_tokens": 9002662,
"upstream_remap_manifest": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/manifest.json",
"upstream_remap_manifest_sha256": "8649b6acf10007e16a6b0eccebe95ee25a33481d6c3c0381ec8caf6dad05f12d",
"window": {
"duration_s": null,
"start_timestamp": null
},
"workload_mode": "prefill_decode"
}

View File

@@ -0,0 +1,69 @@
{
"block_contract": {
"input_length_mismatches": 0,
"runtime_identity_collisions": 0,
"runtime_to_source_relation_conflicts": 0,
"source_hash_count_mismatches": 0,
"source_runtime_granularity": "one 512-token source hash to 32 consecutive 16-token identities; final partial source block may have fewer",
"source_to_runtime_relation_conflicts": 0,
"unique_runtime_identities": 2613467,
"unique_runtime_relations": 0,
"unique_source_hash_relations": 0
},
"excluded_over_max_total_tokens": 0,
"frontier_csv": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0004-v1/frontier.csv",
"frontier_csv_sha256": "2751c373bb91eccf42b94e1b28245870d6ffa2f91e1b5dabafe2435bc46da274",
"mapping": "real prompt tokens: BLAKE2b-128(parent runtime identity, exact 16-token block); missing prompt fallback: source hashes first define deterministic 16-token content blocks, then the same parent-sensitive BLAKE2b-128 runtime identity contract is applied",
"max_total_tokens_filter": null,
"paired_row_vector_sha256": "2a3e10113bff788484615e3ff90399c0a1ca72427a2591ae38d986d9708019af",
"parent_validation": {
"enabled": false,
"links_checked": 0,
"links_outside_selected_stream": 0,
"mean_tail_nonreused_per_link": 0.0,
"parent_prefix_common_blocks": 0,
"parent_tail_nonreused_blocks": 0,
"rule": "contiguous common prefix required; mismatch tolerated only within parent trailing partial 512-token block (<= 33 runtime blocks)"
},
"prefix_cache_blocks": "complete 16-token blocks only; final partial block excluded",
"prompt_contract": {
"input_is_pre_remapped": true,
"real_prompt_requests": 0,
"synthetic_fallback_requests": 499,
"tokenizer": null
},
"prompt_window": null,
"prompt_window_sha256": null,
"real_requests": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0004-v1/real_requests.jsonl",
"real_requests_sha256": "f011d6233c12b45ca8054b2cbf79e3241654704d3df4964c1ca39f08aa00b71e",
"requests": 499,
"rho": 0.0004,
"sampling_rule": "keep iff sampling_u <= rho (SimFid convention; rho=1 keeps all rows)",
"schema": "frontier-s3-real-remap-v2",
"selected_remapped": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0004-v1/selected-remapped.jsonl",
"selected_remapped_sha256": "488ff7ed8d641f50f7b850c1ad4f61b2af57dc33474ccbe1e8c1dc475af4d897",
"source": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/selected-remapped.jsonl",
"source_block_size": 512,
"source_blocks": 40421,
"source_rows_scanned": 3477,
"source_sha256": "f46c7d8ddbd146bafe00fbc173bf3f29039d8b96aa611f1ae4e2a0b9eac189f1",
"synthetic_fallback_contract": {
"different_16_block_hash_different_tokens": true,
"encoding": "injective base-(vocab_size-token_offset), 16 little-endian digits",
"runtime_identity_is_parent_sensitive": true,
"same_16_block_hash_same_tokens": true,
"token_offset": 1024,
"vocab_size": 151936
},
"target_16_blocks": 1285546,
"target_block_size": 16,
"total_decode_tokens": 330500,
"total_prefill_tokens": 20572563,
"upstream_remap_manifest": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/manifest.json",
"upstream_remap_manifest_sha256": "8649b6acf10007e16a6b0eccebe95ee25a33481d6c3c0381ec8caf6dad05f12d",
"window": {
"duration_s": null,
"start_timestamp": null
},
"workload_mode": "prefill_decode"
}

View File

@@ -0,0 +1,69 @@
{
"block_contract": {
"input_length_mismatches": 0,
"runtime_identity_collisions": 0,
"runtime_to_source_relation_conflicts": 0,
"source_hash_count_mismatches": 0,
"source_runtime_granularity": "one 512-token source hash to 32 consecutive 16-token identities; final partial source block may have fewer",
"source_to_runtime_relation_conflicts": 0,
"unique_runtime_identities": 2613467,
"unique_runtime_relations": 0,
"unique_source_hash_relations": 0
},
"excluded_over_max_total_tokens": 0,
"frontier_csv": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0008-v1/frontier.csv",
"frontier_csv_sha256": "2788a21c6bb8be6d03fb5151f2c51efa09c0eb5e1f941af60c00a7cc11d41206",
"mapping": "real prompt tokens: BLAKE2b-128(parent runtime identity, exact 16-token block); missing prompt fallback: source hashes first define deterministic 16-token content blocks, then the same parent-sensitive BLAKE2b-128 runtime identity contract is applied",
"max_total_tokens_filter": null,
"paired_row_vector_sha256": "2a0fe9672c0711f7f74847bef400c699167fce8648611fc2ef12cf524b20d47f",
"parent_validation": {
"enabled": false,
"links_checked": 0,
"links_outside_selected_stream": 0,
"mean_tail_nonreused_per_link": 0.0,
"parent_prefix_common_blocks": 0,
"parent_tail_nonreused_blocks": 0,
"rule": "contiguous common prefix required; mismatch tolerated only within parent trailing partial 512-token block (<= 33 runtime blocks)"
},
"prefix_cache_blocks": "complete 16-token blocks only; final partial block excluded",
"prompt_contract": {
"input_is_pre_remapped": true,
"real_prompt_requests": 0,
"synthetic_fallback_requests": 869,
"tokenizer": null
},
"prompt_window": null,
"prompt_window_sha256": null,
"real_requests": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0008-v1/real_requests.jsonl",
"real_requests_sha256": "aed9d150df986476172ca1d2cce8e9a9f264e24507174265bda9b3e85298cfbe",
"requests": 869,
"rho": 0.0008,
"sampling_rule": "keep iff sampling_u <= rho (SimFid convention; rho=1 keeps all rows)",
"schema": "frontier-s3-real-remap-v2",
"selected_remapped": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0008-v1/selected-remapped.jsonl",
"selected_remapped_sha256": "5ec7b98153cba5549a57e2f15f56f9800f14251b0c1231ed1cf9fdfcf3924d06",
"source": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/selected-remapped.jsonl",
"source_block_size": 512,
"source_blocks": 55641,
"source_rows_scanned": 3477,
"source_sha256": "f46c7d8ddbd146bafe00fbc173bf3f29039d8b96aa611f1ae4e2a0b9eac189f1",
"synthetic_fallback_contract": {
"different_16_block_hash_different_tokens": true,
"encoding": "injective base-(vocab_size-token_offset), 16 little-endian digits",
"runtime_identity_is_parent_sensitive": true,
"same_16_block_hash_same_tokens": true,
"token_offset": 1024,
"vocab_size": 151936
},
"target_16_blocks": 1766081,
"target_block_size": 16,
"total_decode_tokens": 494859,
"total_prefill_tokens": 28263677,
"upstream_remap_manifest": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/manifest.json",
"upstream_remap_manifest_sha256": "8649b6acf10007e16a6b0eccebe95ee25a33481d6c3c0381ec8caf6dad05f12d",
"window": {
"duration_s": null,
"start_timestamp": null
},
"workload_mode": "prefill_decode"
}

View File

@@ -0,0 +1,69 @@
{
"block_contract": {
"input_length_mismatches": 0,
"runtime_identity_collisions": 0,
"runtime_to_source_relation_conflicts": 0,
"source_hash_count_mismatches": 0,
"source_runtime_granularity": "one 512-token source hash to 32 consecutive 16-token identities; final partial source block may have fewer",
"source_to_runtime_relation_conflicts": 0,
"unique_runtime_identities": 2613467,
"unique_runtime_relations": 0,
"unique_source_hash_relations": 0
},
"excluded_over_max_total_tokens": 0,
"frontier_csv": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0016-v1/frontier.csv",
"frontier_csv_sha256": "d785665c86a562c9d9a7492ad710e6393bb883bf8c3ad552a34ff18f22925043",
"mapping": "real prompt tokens: BLAKE2b-128(parent runtime identity, exact 16-token block); missing prompt fallback: source hashes first define deterministic 16-token content blocks, then the same parent-sensitive BLAKE2b-128 runtime identity contract is applied",
"max_total_tokens_filter": null,
"paired_row_vector_sha256": "d3d232ea41eadb507780b4830ce3e944ac88cd997d0a4f418f86ca71de1377bf",
"parent_validation": {
"enabled": false,
"links_checked": 0,
"links_outside_selected_stream": 0,
"mean_tail_nonreused_per_link": 0.0,
"parent_prefix_common_blocks": 0,
"parent_tail_nonreused_blocks": 0,
"rule": "contiguous common prefix required; mismatch tolerated only within parent trailing partial 512-token block (<= 33 runtime blocks)"
},
"prefix_cache_blocks": "complete 16-token blocks only; final partial block excluded",
"prompt_contract": {
"input_is_pre_remapped": true,
"real_prompt_requests": 0,
"synthetic_fallback_requests": 1718,
"tokenizer": null
},
"prompt_window": null,
"prompt_window_sha256": null,
"real_requests": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0016-v1/real_requests.jsonl",
"real_requests_sha256": "3261a15be3e1f7d5ecf8a86c03a9e0ff9ec69a3502e4fbc8e8b82b18b0854e1f",
"requests": 1718,
"rho": 0.0016,
"sampling_rule": "keep iff sampling_u <= rho (SimFid convention; rho=1 keeps all rows)",
"schema": "frontier-s3-real-remap-v2",
"selected_remapped": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/full-r0p0016-v1/selected-remapped.jsonl",
"selected_remapped_sha256": "4d5c66e5cad4efa4c500009630c6ca6069fdd71c9e1a7cd446c8869d84dc70f7",
"source": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/selected-remapped.jsonl",
"source_block_size": 512,
"source_blocks": 104582,
"source_rows_scanned": 3477,
"source_sha256": "f46c7d8ddbd146bafe00fbc173bf3f29039d8b96aa611f1ae4e2a0b9eac189f1",
"synthetic_fallback_contract": {
"different_16_block_hash_different_tokens": true,
"encoding": "injective base-(vocab_size-token_offset), 16 little-endian digits",
"runtime_identity_is_parent_sensitive": true,
"same_16_block_hash_same_tokens": true,
"token_offset": 1024,
"vocab_size": 151936
},
"target_16_blocks": 3318510,
"target_block_size": 16,
"total_decode_tokens": 813493,
"total_prefill_tokens": 53108885,
"upstream_remap_manifest": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/manifest.json",
"upstream_remap_manifest_sha256": "8649b6acf10007e16a6b0eccebe95ee25a33481d6c3c0381ec8caf6dad05f12d",
"window": {
"duration_s": null,
"start_timestamp": null
},
"workload_mode": "prefill_decode"
}

View File

@@ -0,0 +1,69 @@
{
"block_contract": {
"input_length_mismatches": 0,
"runtime_identity_collisions": 0,
"runtime_to_source_relation_conflicts": 0,
"source_hash_count_mismatches": 0,
"source_runtime_granularity": "one 512-token source hash to 32 consecutive 16-token identities; final partial source block may have fewer",
"source_to_runtime_relation_conflicts": 0,
"unique_runtime_identities": 2613467,
"unique_runtime_relations": 0,
"unique_source_hash_relations": 0
},
"excluded_over_max_total_tokens": 0,
"frontier_csv": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/prefill-only-r0p0032-v1/frontier.csv",
"frontier_csv_sha256": "8eeea3f44626e30e6da6ab58950c9a7f52e6cf6eb29c6bd2e35e1c25e4a9c5ce",
"mapping": "real prompt tokens: BLAKE2b-128(parent runtime identity, exact 16-token block); missing prompt fallback: source hashes first define deterministic 16-token content blocks, then the same parent-sensitive BLAKE2b-128 runtime identity contract is applied",
"max_total_tokens_filter": null,
"paired_row_vector_sha256": "40865068e02414612ba1cd4595894e20e85e01fd34d73f8660185552d531ecea",
"parent_validation": {
"enabled": false,
"links_checked": 0,
"links_outside_selected_stream": 0,
"mean_tail_nonreused_per_link": 0.0,
"parent_prefix_common_blocks": 0,
"parent_tail_nonreused_blocks": 0,
"rule": "contiguous common prefix required; mismatch tolerated only within parent trailing partial 512-token block (<= 33 runtime blocks)"
},
"prefix_cache_blocks": "complete 16-token blocks only; final partial block excluded",
"prompt_contract": {
"input_is_pre_remapped": true,
"real_prompt_requests": 0,
"synthetic_fallback_requests": 3477,
"tokenizer": null
},
"prompt_window": null,
"prompt_window_sha256": null,
"real_requests": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/prefill-only-r0p0032-v1/real_requests.jsonl",
"real_requests_sha256": "48a9a6f5f73fe4daebff5a2fba9aec732a89219d19a00d6811cf14e0cd5afa2c",
"requests": 3477,
"rho": 0.0032,
"sampling_rule": "keep iff sampling_u <= rho (SimFid convention; rho=1 keeps all rows)",
"schema": "frontier-s3-real-remap-v2",
"selected_remapped": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/prefill-only-r0p0032-v1/selected-remapped.jsonl",
"selected_remapped_sha256": "a9c31bb600ac6b637ded1c1aa4c84df5613bc3fbdc986bfe935f4ebe9aee0aff",
"source": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/selected-remapped.jsonl",
"source_block_size": 512,
"source_blocks": 227960,
"source_rows_scanned": 3477,
"source_sha256": "f46c7d8ddbd146bafe00fbc173bf3f29039d8b96aa611f1ae4e2a0b9eac189f1",
"synthetic_fallback_contract": {
"different_16_block_hash_different_tokens": true,
"encoding": "injective base-(vocab_size-token_offset), 16 little-endian digits",
"runtime_identity_is_parent_sensitive": true,
"same_16_block_hash_same_tokens": true,
"token_offset": 1024,
"vocab_size": 151936
},
"target_16_blocks": 7237642,
"target_block_size": 16,
"total_decode_tokens": 3477,
"total_prefill_tokens": 115828371,
"upstream_remap_manifest": "/home/admin/cpfs/wjh/aituner/aituner-code-trace-fbaa909/runs/frontier-code-trace-v0/inputs/remap-cache-r0p0032-v2/manifest.json",
"upstream_remap_manifest_sha256": "8649b6acf10007e16a6b0eccebe95ee25a33481d6c3c0381ec8caf6dad05f12d",
"window": {
"duration_s": null,
"start_timestamp": null
},
"workload_mode": "prefill_only"
}

View File

@@ -0,0 +1,88 @@
#!/usr/bin/env python3
"""Compact code-trace Frontier rho calibration into a reviewable artifact."""
from __future__ import annotations
import argparse
import hashlib
import json
import re
from pathlib import Path
CELL_RE = re.compile(r"r(?P<rho>[0-9p]+)-tp(?P<tp>[24])-v3")
ATTENTION_FLAG = "--random_forrest_execution_time_predictor_config_atten_input_file"
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("--sim-root", type=Path, required=True)
parser.add_argument("--profile-manifest", type=Path, required=True)
parser.add_argument("--output", type=Path, required=True)
return parser.parse_args()
def sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as stream:
for chunk in iter(lambda: stream.read(1024 * 1024), b""):
digest.update(chunk)
return digest.hexdigest()
def main() -> None:
args = parse_args()
profile = json.loads(args.profile_manifest.read_text())
expected_profile_sha = profile["output_sha256"]
cells = []
for root in sorted(args.sim_root.iterdir()):
match = CELL_RE.fullmatch(root.name)
if match is None or not (root / "summary.json").is_file():
continue
manifest = json.loads((root / "manifest.json").read_text())
observed_profile_sha = manifest.get("attention_profile_sha256")
if observed_profile_sha is None:
argv = manifest["argv"]
profile_path = Path(argv[argv.index(ATTENTION_FLAG) + 1])
observed_profile_sha = sha256(profile_path)
if observed_profile_sha != expected_profile_sha:
raise ValueError(
f"{root}: attention profile {observed_profile_sha} "
f"!= profile-v6 {expected_profile_sha}"
)
summary = json.loads((root / "summary.json").read_text())
drain_fraction = (
summary["drain"]["tail_after_last_arrival_s"] / summary["duration_s"]
)
cells.append(
{
"topology": f"tp{match.group('tp')}_mns16",
"rho": float(match.group("rho").replace("p", ".")),
"requests": summary["requests"],
"offered_load": summary["offered_load"],
"waiting_ms": summary["latency_ms"]["waiting"],
"ttft_ms": summary["latency_ms"]["ttft"],
"tpot_ms": summary["latency_ms"]["tpot"],
"decode_batch": summary["decode_batch"],
"drain_tail_s": summary["drain"]["tail_after_last_arrival_s"],
"drain_fraction": drain_fraction,
"subcritical_gate": drain_fraction <= 0.1,
"prefix_cache_hit_ratio": summary["prefix_cache"]["hit_ratio"],
"trace_sha256": manifest["trace_sha256"],
}
)
if not cells:
raise ValueError(f"no completed v3 calibration cells below {args.sim_root}")
payload = {
"schema": "frontier-code-trace-calibration-summary-v1",
"attention_profile_sha256": expected_profile_sha,
"subcritical_rule": "drain tail <= 10% of the 3660s arrival window",
"cells": cells,
}
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n")
print(json.dumps({"cells": len(cells), "output": str(args.output)}, sort_keys=True))
if __name__ == "__main__":
main()