#!/usr/bin/env python3 """Run the community-vLLM side of the frozen Qwen235B prefill grid.""" from __future__ import annotations import argparse import hashlib import json import os import random import subprocess import time from dataclasses import asdict, dataclass from pathlib import Path from typing import Any SCHEMA = "community-vllm-qwen235b-prefill-grid-v2" MODEL = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-235B-A22B-FP8" SERVED_MODEL = "qwen3-235b-community-prefill" TRACE = ( "/home/admin/cpfs/wjh/aituner/aituner/trace_windows/traces/" "thinking_w20260327_1000.jsonl" ) WINDOWS = "/home/admin/cpfs/wjh/aituner/aituner/trace_windows/windows.json" TRACE_SHA256 = "f878e9af18f94dcfaced94a8e1e6b20a2f7d97d64aa862448025660dbbd965b2" ORDER_SEED = 20260715 CLIENT_MAX_CONCURRENCY = 256 @dataclass(frozen=True) class GridConfig: tp: int mns: int mbt: int expert_parallel: bool num_gpu_blocks: int @property def name(self) -> str: return f"tp{self.tp}_mns{self.mns}_mbt{self.mbt}" GRID = tuple( GridConfig( tp=tp, mns=mns, mbt=mbt, expert_parallel=tp == 8, num_gpu_blocks=26101 if tp == 4 else 62351, ) for tp in (4, 8) for mns in (64, 128) for mbt in (8192, 16384) ) def sha256(path: Path) -> str: digest = hashlib.sha256() with path.open("rb") as source: for chunk in iter(lambda: source.read(1 << 20), b""): digest.update(chunk) return digest.hexdigest() def write_json(path: Path, payload: Any) -> None: path.parent.mkdir(parents=True, exist_ok=True) temporary = path.with_suffix(path.suffix + ".tmp") temporary.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n") os.replace(temporary, path) def search_spec() -> dict[str, Any]: return { "low": 0.0, "high": 0.125, "tolerance": 0.001, "max_probes": 6, "sample_seed": 20260325, "inherit_incumbent_floor": False, "auto_high": { "enabled": False, "max_sampling_u": 1.0, "require_human_confirmation_beyond_trace": True, }, } def study_payload( *, tp: int, repo: Path, python: Path, vllm: Path, model: Path, trace: Path, windows: Path, port: int, ) -> dict[str, Any]: base_flags: dict[str, Any] = { "host": "127.0.0.1", "port": port, "served-model-name": SERVED_MODEL, "tensor-parallel-size": tp, "disable-custom-all-reduce": True, "quantization": "fp8", "gpu-memory-utilization": 0.80, "num-gpu-blocks-override": 26101 if tp == 4 else 62351, "kv-cache-dtype": "auto", "max-model-len": 40960, "max-num-batched-tokens": 8192, "max-num-seqs": 64, "enable-prefix-caching": False, "enable-chunked-prefill": True, "enforce-eager": True, "disable-log-requests": True, } if tp == 8: base_flags["enable-expert-parallel"] = True return { "study_id": f"community-qwen235b-prefill-tp{tp}-v2", "hardware": { "gpu_count": tp, "gpu_model": "NVIDIA H20", "host_candidates": ["dash0"], }, "model": {"model_id": str(model), "served_model_name": SERVED_MODEL}, "engine": { "engine_name": "vllm", "engine_version": "0.10.2-community", "exec_path": str(vllm), "cwd": str(repo), "host": "127.0.0.1", "port": port, "ready_timeout_s": 1800, "request_timeout_s": 1800, "healthcheck_path": "/v1/models", "launch_args": ["serve", str(model)], "base_envs": { "CUDA_VISIBLE_DEVICES": ",".join(str(index) for index in range(tp)), }, "base_flags": base_flags, "tunable_envs": [], "tunable_flags": ["max-num-seqs", "max-num-batched-tokens"], "python_executable": str(python), }, "trace": { "windows_path": str(windows), "window_id": "thinking_w20260327_1000", "trace_file_override": str(trace), "request_mode": "raw_completion", "completion_tokens_override": 1, "u_field": "sampling_u", "timestamp_field": "timestamp", # Keep the request generator above the largest server-side MNS so # MNS=128 is exercised by vLLM rather than clipped by the client. # The extra headroom also leaves an explicit engine waiting queue # under overload instead of moving that queue into the replay loop. "max_concurrency": CLIENT_MAX_CONCURRENCY, "input_length_filter": { "min_input_tokens": 0, "max_input_tokens": 32768, }, "replay_time_scale": 1.0, "early_stop_max_lag_s": 180.0, "early_stop_max_elapsed_s": 1200.0, "restart_engine_after_early_stop": False, "adaptive_stop": {"enabled": False}, }, "slo": { "target_pass_rate": 0.95, "ttft_rule": { "kind": "step_ms", "buckets": [ {"max_input_tokens": 8191, "threshold_ms": 1000}, {"max_input_tokens": 32767, "threshold_ms": 2000}, {"threshold_ms": 2000}, ], }, }, "search": search_spec(), "llm": {"use_harness": False}, } def git_fingerprint(repo: Path) -> dict[str, Any]: def run(*args: str) -> str: return subprocess.run( ["git", *args], cwd=repo, check=True, stdout=subprocess.PIPE, text=True, ).stdout.strip() return { "commit": run("rev-parse", "HEAD"), "status_porcelain": run("status", "--porcelain=v1").splitlines(), } def prepare(args: argparse.Namespace) -> None: repo = args.repo.resolve() python = args.python.resolve() vllm = args.vllm.resolve() model = args.model.resolve() trace = args.trace.resolve() windows = args.windows.resolve() for path in (repo, python, vllm, model, trace, windows): if not path.exists(): raise FileNotFoundError(path) actual_trace_sha = sha256(trace) if actual_trace_sha != args.expected_trace_sha256: raise ValueError( f"trace SHA256 mismatch: expected={args.expected_trace_sha256}, " f"actual={actual_trace_sha}" ) output = args.output_root.resolve() output.mkdir(parents=True, exist_ok=True) studies: dict[int, dict[str, str]] = {} for tp, port in ((4, args.port), (8, args.port)): study_dir = output / "studies" / f"tp{tp}" study_path = study_dir / "study.json" pointer_path = study_dir / "study_spec.source" write_json( study_path, study_payload( tp=tp, repo=repo, python=python, vllm=vllm, model=model, trace=trace, windows=windows, port=port, ), ) pointer_path.write_text(str(study_path) + "\n") studies[tp] = { "study_path": str(study_path), "study_sha256": sha256(study_path), "pointer_path": str(pointer_path), } order = list(GRID) random.Random(args.order_seed).shuffle(order) trials = [] for index, config in enumerate(order, start=1): trial_dir = output / "trials" / config.name trial_path = trial_dir / "trial_spec.json" trial = { "study_id": f"community-qwen235b-prefill-tp{config.tp}-v2", "trial_id": config.name, "config_patch": { "env_patch": {}, "flag_patch": { "max-num-seqs": config.mns, "max-num-batched-tokens": config.mbt, }, }, "search": search_spec(), "study_spec_path": studies[config.tp]["pointer_path"], "artifact_dir": str(trial_dir), "probe_log_path": str(trial_dir / "probe_history.json"), "engine_log_path": str(trial_dir / "engine.log"), "result_path": str(trial_dir / "result.json"), "search_evidence": { "enabled": False, "original_high": 0.125, "effective_high": 0.125, "trace_max_sampling_u": None, "max_sampling_u": 1.0, "require_human_confirmation_beyond_trace": True, "reason": "auto_high_disabled", }, } write_json(trial_path, trial) trials.append( { "execution_index": index, "config": asdict(config) | {"name": config.name}, "trial_spec_path": str(trial_path), "trial_spec_sha256": sha256(trial_path), } ) manifest = { "schema": SCHEMA, "created_unix_s": time.time(), "repository": git_fingerprint(repo), "runtime": {"python": str(python), "vllm": str(vllm)}, "model": { "path": str(model), "config_sha256": sha256(model / "config.json"), }, "trace": {"path": str(trace), "sha256": actual_trace_sha}, "contract": { "metric": "maximum SLO-feasible request_rate_per_gpu", "request_mode": "raw_completion", "completion_tokens_override": 1, "target_pass_rate": 0.95, "search": search_spec(), "prefix_caching": False, "chunked_prefill": True, "cuda_graphs": False, "custom_all_reduce": False, "client_max_concurrency": CLIENT_MAX_CONCURRENCY, "max_server_mns": max(config.mns for config in GRID), "kv_blocks_source": "community_vllm_measured_and_fixed_per_topology", }, "order": {"method": "python_random_shuffle", "seed": args.order_seed}, "studies": studies, "trials": trials, } write_json(output / "run_manifest.json", manifest) print(output / "run_manifest.json") def run(args: argparse.Namespace) -> None: manifest = json.loads(args.manifest.read_text()) if manifest.get("schema") != SCHEMA: raise ValueError(f"unexpected manifest schema: {manifest.get('schema')}") repo = args.repo.resolve() env = os.environ.copy() env["PYTHONPATH"] = str(repo / "src") for trial in manifest["trials"]: trial_path = Path(trial["trial_spec_path"]) trial_dir = trial_path.parent result_path = trial_dir / "result.json" if result_path.is_file(): result = json.loads(result_path.read_text()) if result.get("status") == "completed": print(json.dumps({"config": trial["config"]["name"], "skipped": True})) continue command = [ str(args.python.resolve()), "-m", "aituner.cli", "worker", "run-trial", "--trial-spec", str(trial_path), ] write_json(trial_dir / "worker_command.json", command) started = time.time() with (trial_dir / "worker.log").open("w", encoding="utf-8") as output: completed = subprocess.run( command, cwd=repo, env=env, stdout=output, stderr=subprocess.STDOUT, check=False, ) record = { "config": trial["config"]["name"], "returncode": completed.returncode, "elapsed_seconds": time.time() - started, } print(json.dumps(record), flush=True) if completed.returncode != 0: raise RuntimeError(f"community trial failed: {record}") assemble(args.manifest) def capacity_interval(probes: list[dict[str, Any]]) -> list[float]: low, high = 0.0, 0.125 for probe in probes: midpoint = float(probe["threshold"]) if probe["feasible"]: low = midpoint else: high = midpoint return [low, high] def assemble(manifest_path: Path) -> Path: manifest = json.loads(manifest_path.read_text()) records = [] for trial in manifest["trials"]: result_path = Path(trial["trial_spec_path"]).parent / "result.json" if not result_path.is_file(): raise FileNotFoundError(result_path) result = json.loads(result_path.read_text()) if result.get("status") != "completed": raise ValueError(f"trial did not complete: {result_path}") tp = int(trial["config"]["tp"]) request_rate = result.get("best_request_rate") records.append( { "config": trial["config"], "result_path": str(result_path), "result_sha256": sha256(result_path), "capacity_interval_sampling_u": capacity_interval(result["probes"]), "best_sampling_u": result.get("best_sampling_u"), "best_request_rate": request_rate, "best_request_rate_per_gpu": ( float(request_rate) / tp if request_rate is not None else None ), "best_pass_rate": result.get("best_pass_rate"), } ) records.sort( key=lambda item: ( -(item["best_request_rate_per_gpu"] or -1.0), item["config"]["name"], ) ) freeze = { "schema": SCHEMA, "run_manifest_sha256": sha256(manifest_path), "ranking": [dict(record, rank=index + 1) for index, record in enumerate(records)], } path = manifest_path.parent / "community_ranking_frozen.json" write_json(path, freeze) print(path) return path def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest="command", required=True) prepare_parser = subparsers.add_parser("prepare") prepare_parser.add_argument("--repo", type=Path, required=True) prepare_parser.add_argument("--python", type=Path, required=True) prepare_parser.add_argument("--vllm", type=Path, required=True) prepare_parser.add_argument("--model", type=Path, default=Path(MODEL)) prepare_parser.add_argument("--trace", type=Path, default=Path(TRACE)) prepare_parser.add_argument("--windows", type=Path, default=Path(WINDOWS)) prepare_parser.add_argument("--expected-trace-sha256", default=TRACE_SHA256) prepare_parser.add_argument("--output-root", type=Path, required=True) prepare_parser.add_argument("--order-seed", type=int, default=ORDER_SEED) prepare_parser.add_argument("--port", type=int, default=18918) run_parser = subparsers.add_parser("run") run_parser.add_argument("--repo", type=Path, required=True) run_parser.add_argument("--python", type=Path, required=True) run_parser.add_argument("--manifest", type=Path, required=True) assemble_parser = subparsers.add_parser("assemble") assemble_parser.add_argument("--manifest", type=Path, required=True) return parser.parse_args() def main() -> None: args = parse_args() if args.command == "prepare": prepare(args) elif args.command == "run": run(args) elif args.command == "assemble": assemble(args.manifest) else: raise AssertionError(args.command) if __name__ == "__main__": main()