diff --git a/.gitignore b/.gitignore index 646c925..4bc55b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # VBench generated videos, evaluation outputs, and logs stay on 6000D_H3. -/vbench-base/results/ +/vbench-score/vbench-base/results/ +/vbench-score/vbench-lora/results/ # SQLite analysis databases stay on 6000D_H3. **/*.sqlite diff --git a/README.md b/README.md index bb19c11..3060ff3 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,48 @@ # sskj-h3 -MiniMax-H3 在 RTX 6000D-H3 上的部署基准、性能 Profile 与 VBench Base 评测归档。 - -本目录于 2026-08-27 从 `/data/wxy` 中的已确认源路径创建。归档采用实体副本;原脚本、结果、日志和模型目录均未移动、修改或删除。第三方 VBench 源码、模型权重、Conda 环境和无关日志不纳入归档。 +MiniMax-H3 在 RTX 6000D-H3 上的吞吐、性能 Profile、成对 SSIM 与 VBench 评测归档。 ## 目录 -- `sglang-base`:SGLang TP8×1、TP4×2、TP2×4,20 steps / 5s 基准。 -- `vllm-omni-base`:vLLM-Omni 1×8、2×4、4×2,20 steps / 5s 基准。 -- `sglang-profile`:SGLang TP2、768P、FL2VA/Ref2VA 输入矩阵、Torch/Nsight/NCCL 与 SDPA kernel 分析。 -- `vbench-base`:SGLang TP2×4 生成的 944 个 VBench 视频、16 维评分、独立评分环境与兼容适配记录。 +- `throughput/`:吞吐测试、Profile 与成对 SSIM。 + - `sglang-base/`:SGLang TP8×1、TP4×2、TP2×4,20 steps / 5s 基准。 + - `sglang-base-b300/`:B300 相关 SGLang 基准。 + - `sglang-lora/`:Larry LoRA 加速基准。 + - `sglang-profile/`:Torch/Nsight/NCCL 与 SDPA kernel 分析。 + - `vllm-omni-base/`:vLLM-Omni 多实例基准。 + - `common/paired_video_ssim.py`:候选运行相对 base 的逐帧成对 SSIM。 +- `vbench-score/`:VBench 视频与 16 维评分。 + - `vbench-base/`:base 生成与评分归档。 + - `vbench-lora/`:Larry LoRA 生成与评分归档。 - `SOURCE_MAP.tsv`:源路径、归档路径、文件数和字节数。 -- `tools`:可重复执行的非破坏性归档脚本与验收脚本。 +- `tools/`:非破坏性归档与验收脚本。 -每个实验目录的 `scripts/SHA256SUMS` 可用于校验归档脚本。结果目录保留原始层级、日志、JSONL、MP4、Torch trace 和 Nsight report。 +## SSIM 与 VBench 的分工 + +成对 SSIM 用相同 prompt、seed、任务、分辨率、时长和宽高比的 base 视频作为参考,按 `request_id` 配对。视频由 FFmpeg 解码并统一为 `yuv420p`,然后逐帧计算 Y/U/V/All SSIM;主口径是 `All`。它适合测量 Cache-DiT、TeaCache、Larry 等加速方案对 base 输出的像素/结构偏移。 + +VBench 独立衡量主体一致性、运动、审美等生成质量维度。SSIM 高不等于 VBench 高,VBench 高也不保证逐样本复现,因此两者互补。 + +吞吐 runner 只有在设置 `SSIM_REFERENCE_ROOT` 时才会在每个 phase 结束、SGLang 服务完全停止后评分,不会把解码和评分时间计入吞吐: + +```bash +SSIM_REFERENCE_ROOT=/data/wxy/sskj-h3/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030 \ +SSIM_THRESHOLD=0.90 \ +bash /data/wxy/sskj-h3/throughput/sglang-lora/scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh +``` + +参考目录和候选目录都应包含 `tpN_replicasM//client_*/results.jsonl`。每个候选 phase 会新增: + +- `quality/paired_ssim.json`:总体、分辨率分组和逐视频结果。 +- `quality/paired_ssim.tsv`:逐视频表。 +- `quality/paired_ssim_frames.tsv`:逐帧表。 +- `quality/paired_ssim.log`:评分日志。 + +默认阈值为 0.90,只记录是否通过,不中止完整矩阵;需要将低于阈值视作失败时设置 `SSIM_FAIL_BELOW_THRESHOLD=true`。 ## Git 镜像边界 -服务器归档保留全部实体文件;同步到 Git 仓库时排除 `vbench-base/results/`、全部 `*.mp4`、全部 `*.sqlite`、Nsight `*.nsys-rep` 和 Torch `*.trace.json.gz` 原始采集。代码、日志、JSON/JSONL、TSV、采集脚本、结构化汇总和 Profile 分析文档正常纳入版本库。 - -## 对应飞书报告 - -- [SGLang 多实例部署测试报告](https://gcn673xpgdxn.feishu.cn/docx/Mzh4dPPQtoFdYTxHJE6cEumRnXx) -- [vLLM-Omni 多实例部署测试报告](https://gcn673xpgdxn.feishu.cn/docx/GYXwdRwOgoWuRsxrUKick2Ljn5s) -- [SGLang 6000D-H3 性能 Profile 完整分析报告](https://gcn673xpgdxn.feishu.cn/docx/UmoCdnWa2okvjSxjxK0cGnIxnqe) +服务器保留全部实体文件;同步到 Git 时排除 `vbench-score/*/results/`、全部 `*.mp4`、全部 `*.sqlite`、Nsight `*.nsys-rep` 和 Torch `*.trace.json.gz` 原始采集。代码、日志、JSON/JSONL、TSV、结构化汇总和分析文档正常纳入版本库。 ## 验证 diff --git a/SOURCE_MAP.tsv b/SOURCE_MAP.tsv index 5a21646..06c1573 100644 --- a/SOURCE_MAP.tsv +++ b/SOURCE_MAP.tsv @@ -1,14 +1,14 @@ section kind source destination files bytes -sglang-base script /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh 1 7888 -sglang-base script /data/wxy/minimax_h3_mixed_bench.py sglang-base/scripts/minimax_h3_mixed_bench.py 1 12687 -sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 sglang-base/results/mixed64-20steps-5s-20260822-100844 212 342464940 -sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030 195 268064833 -vllm-omni-base script /data/wxy/run_vllm_omni_h3_matrix_6000d.sh vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh 1 10411 -vllm-omni-base script /data/wxy/minimax_h3_vllm_bench.py vllm-omni-base/scripts/minimax_h3_vllm_bench.py 1 14589 -vllm-omni-base result /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317 271 1998342105 -sglang-profile script /data/wxy/h3_profile sglang-profile/scripts/h3_profile 15 322059 -sglang-profile result /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 sglang-profile/results/h3-quick-input-matrix-20260824-run1 71 32017378 -sglang-profile result /data/wxy/profile_results/h3-targeted-profile-20260824-run1 sglang-profile/results/h3-targeted-profile-20260824-run1 87 2124349553 -sglang-profile result /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1 43 615920 -vbench-base result /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1 1983 1982500600 -vbench-base environment /data/wxy/vbench_score_setup_logs vbench-base/environment/vbench_score_setup_logs 11 49335 +sglang-base script /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh 1 7888 +sglang-base script /data/wxy/minimax_h3_mixed_bench.py throughput/sglang-base/scripts/minimax_h3_mixed_bench.py 1 12687 +sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844 212 342464940 +sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030 195 268064833 +vllm-omni-base script /data/wxy/run_vllm_omni_h3_matrix_6000d.sh throughput/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh 1 10411 +vllm-omni-base script /data/wxy/minimax_h3_vllm_bench.py throughput/vllm-omni-base/scripts/minimax_h3_vllm_bench.py 1 14589 +vllm-omni-base result /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317 271 1998342105 +sglang-profile script /data/wxy/h3_profile throughput/sglang-profile/scripts/h3_profile 15 322059 +sglang-profile result /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1 71 32017378 +sglang-profile result /data/wxy/profile_results/h3-targeted-profile-20260824-run1 throughput/sglang-profile/results/h3-targeted-profile-20260824-run1 87 2124349553 +sglang-profile result /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1 43 615920 +vbench-base result /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 vbench-score/vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1 1983 1982500600 +vbench-base environment /data/wxy/vbench_score_setup_logs vbench-score/vbench-base/environment/vbench_score_setup_logs 11 49335 diff --git a/throughput/README.md b/throughput/README.md new file mode 100644 index 0000000..ada523e --- /dev/null +++ b/throughput/README.md @@ -0,0 +1,7 @@ +# Throughput + +MiniMax-H3 在 RTX 6000D-H3 上的 SGLang、Larry LoRA、vLLM-Omni 吞吐实验和性能 Profile。 + +吞吐与 SSIM 严格分阶段执行:客户端完成并写出吞吐结果后先停止服务,再运行 `common/paired_video_ssim.py`。因此启用 SSIM 不改变请求参数、并发方式、计时窗口或吞吐汇总。 + +SSIM 需要一个同拓扑、同任务的 base run 作为 `SSIM_REFERENCE_ROOT`。未设置时 runner 与原吞吐逻辑一致,不执行质量评分。 diff --git a/throughput/common/paired_video_ssim.py b/throughput/common/paired_video_ssim.py new file mode 100755 index 0000000..d3079d6 --- /dev/null +++ b/throughput/common/paired_video_ssim.py @@ -0,0 +1,450 @@ +#!/usr/bin/env python3 +"""Compute paired, frame-aligned YUV420 SSIM for MiniMax-H3 runs. + +The candidate and reference directories must each contain the throughput +client ``results.jsonl`` files. Rows are paired by ``request_id`` and checked +for matching prompt, seed, task, geometry, duration, and aspect ratio before +the decoded videos are compared with FFmpeg's native ``ssim`` filter. +""" + +from __future__ import annotations + +import argparse +import json +import math +import shutil +import statistics +import subprocess +import tempfile +from collections import defaultdict +from pathlib import Path +from typing import Any + + +PAIR_FIELDS = ( + "task", + "short_edge", + "prompt_index", + "prompt", + "seed", + "duration_seconds", + "aspect_ratio", +) + + +def percentile(values: list[float], q: float) -> float: + if not values: + return 0.0 + ordered = sorted(values) + pos = (len(ordered) - 1) * q + lo, hi = math.floor(pos), math.ceil(pos) + if lo == hi: + return ordered[lo] + return ordered[lo] * (hi - pos) + ordered[hi] * (pos - lo) + + +def resolve_executable(explicit: str | None, name: str) -> str: + if explicit: + path = Path(explicit) + if path.is_file(): + return str(path) + resolved = shutil.which(explicit) + if resolved: + return resolved + raise SystemExit(f"{name} executable not found: {explicit}") + + resolved = shutil.which(name) + if resolved: + return resolved + candidates = [ + Path("/root/.miniconda3/envs/deploy/bin") / name, + Path("/root/.miniconda3/envs/vllm/bin") / name, + Path("/root/.miniconda3/envs/bbj/bin") / name, + ] + for path in candidates: + if path.is_file(): + return str(path) + raise SystemExit(f"{name} is required; pass --{name} explicitly") + + +def run_checked(command: list[str]) -> subprocess.CompletedProcess[str]: + result = subprocess.run(command, text=True, capture_output=True, check=False) + if result.returncode: + rendered = " ".join(command) + raise RuntimeError( + f"command failed ({result.returncode}): {rendered}\n{result.stderr[-4000:]}" + ) + return result + + +def resolve_video_path(root: Path, raw_path: str) -> Path: + if not raw_path: + raise ValueError("file_path is empty") + path = Path(raw_path) + if path.is_file(): + return path.resolve() + matches = [candidate for candidate in root.rglob(path.name) if candidate.is_file()] + if len(matches) == 1: + return matches[0].resolve() + if not matches: + raise ValueError(f"video does not exist: {path}") + raise ValueError( + f"video path {path} is stale and filename is ambiguous under {root}: " + + ", ".join(str(match) for match in matches[:10]) + ) + + +def load_rows(root: Path) -> dict[str, dict[str, Any]]: + rows: dict[str, dict[str, Any]] = {} + files = sorted(root.glob("client_*/results.jsonl")) + if not files: + files = sorted(root.rglob("client_*/results.jsonl")) + if not files: + raise ValueError(f"no client_*/results.jsonl found under {root}") + + for path in files: + for line_number, line in enumerate( + path.read_text(encoding="utf-8").splitlines(), start=1 + ): + if not line.strip(): + continue + row = json.loads(line) + if not row.get("success"): + continue + request_id = str(row.get("request_id") or "") + if not request_id: + raise ValueError(f"missing request_id: {path}:{line_number}") + if request_id in rows: + raise ValueError( + f"duplicate request_id {request_id!r} under {root}; " + "pass one task/topology phase rather than a whole matrix" + ) + try: + video_path = resolve_video_path(root, str(row.get("file_path") or "")) + except ValueError as error: + raise ValueError(f"video for {request_id!r}: {error}") from error + row["_resolved_file_path"] = str(video_path) + rows[request_id] = row + return rows + + +def check_pair(candidate: dict[str, Any], reference: dict[str, Any]) -> None: + mismatches = [] + for field in PAIR_FIELDS: + if candidate.get(field) != reference.get(field): + mismatches.append( + f"{field}: candidate={candidate.get(field)!r} " + f"reference={reference.get(field)!r}" + ) + if mismatches: + raise ValueError("pair metadata mismatch: " + "; ".join(mismatches)) + + +def probe_video(ffprobe: str, path: Path) -> dict[str, Any]: + result = run_checked( + [ + ffprobe, + "-v", + "error", + "-select_streams", + "v:0", + "-count_frames", + "-show_entries", + "stream=width,height,pix_fmt,r_frame_rate,avg_frame_rate,nb_frames,nb_read_frames", + "-of", + "json", + str(path), + ] + ) + payload = json.loads(result.stdout) + streams = payload.get("streams") or [] + if len(streams) != 1: + raise ValueError(f"expected one video stream in {path}, got {len(streams)}") + stream = streams[0] + frame_text = stream.get("nb_read_frames") or stream.get("nb_frames") + if frame_text in (None, "N/A"): + raise ValueError(f"could not determine decoded frame count for {path}") + return { + "width": int(stream["width"]), + "height": int(stream["height"]), + "pix_fmt": stream.get("pix_fmt"), + "r_frame_rate": stream.get("r_frame_rate"), + "avg_frame_rate": stream.get("avg_frame_rate"), + "frames": int(frame_text), + } + + +def check_video_contract(candidate: dict[str, Any], reference: dict[str, Any]) -> None: + fields = ("width", "height", "r_frame_rate", "frames") + mismatches = [ + f"{field}: candidate={candidate[field]!r} reference={reference[field]!r}" + for field in fields + if candidate[field] != reference[field] + ] + if mismatches: + raise ValueError("decoded video mismatch: " + "; ".join(mismatches)) + + +def parse_ffmpeg_stats(path: Path) -> list[dict[str, float | int]]: + frames: list[dict[str, float | int]] = [] + for line in path.read_text(encoding="utf-8").splitlines(): + values: dict[str, str] = {} + for token in line.split(): + if ":" in token: + key, value = token.split(":", 1) + values[key] = value + if not {"n", "Y", "U", "V", "All"}.issubset(values): + continue + frames.append( + { + "frame": int(values["n"]), + "y": float(values["Y"]), + "u": float(values["U"]), + "v": float(values["V"]), + "all": float(values["All"]), + } + ) + if not frames: + raise ValueError(f"FFmpeg emitted no per-frame SSIM metrics: {path}") + return frames + + +def compare_video_pair( + ffmpeg: str, + ffprobe: str, + candidate_path: Path, + reference_path: Path, + stats_path: Path, +) -> tuple[dict[str, Any], list[dict[str, float | int]]]: + candidate_probe = probe_video(ffprobe, candidate_path) + reference_probe = probe_video(ffprobe, reference_path) + check_video_contract(candidate_probe, reference_probe) + + filter_graph = ( + "[0:v]setpts=PTS-STARTPTS,format=yuv420p[candidate];" + "[1:v]setpts=PTS-STARTPTS,format=yuv420p[reference];" + f"[candidate][reference]ssim=stats_file={stats_path}" + ) + run_checked( + [ + ffmpeg, + "-hide_banner", + "-nostdin", + "-loglevel", + "error", + "-i", + str(candidate_path), + "-i", + str(reference_path), + "-filter_complex", + filter_graph, + "-an", + "-f", + "null", + "-", + ] + ) + frames = parse_ffmpeg_stats(stats_path) + if len(frames) != candidate_probe["frames"]: + raise ValueError( + f"SSIM frame count mismatch: metrics={len(frames)} " + f"decoded={candidate_probe['frames']}" + ) + return candidate_probe, frames + + +def metric_summary(values: list[float]) -> dict[str, float]: + return { + "mean": statistics.fmean(values), + "p10": percentile(values, 0.10), + "min": min(values), + "max": max(values), + } + + +def compare_command(args: argparse.Namespace) -> int: + if not 0.0 <= args.threshold <= 1.0: + raise SystemExit("--threshold must be between 0 and 1") + ffmpeg = resolve_executable(args.ffmpeg, "ffmpeg") + ffprobe = resolve_executable(args.ffprobe, "ffprobe") + candidates = load_rows(args.candidate_dir) + references = load_rows(args.reference_dir) + + candidate_ids = set(candidates) + reference_ids = set(references) + if candidate_ids != reference_ids: + missing_reference = sorted(candidate_ids - reference_ids) + missing_candidate = sorted(reference_ids - candidate_ids) + raise SystemExit( + "request sets do not match: " + f"missing_reference={missing_reference[:20]} " + f"missing_candidate={missing_candidate[:20]}" + ) + + selected_ids = sorted(candidate_ids) + if args.limit is not None: + if args.limit < 1: + raise SystemExit("--limit must be at least 1") + selected_ids = selected_ids[: args.limit] + + args.output_dir.mkdir(parents=True, exist_ok=True) + pair_rows: list[dict[str, Any]] = [] + all_frame_rows: list[dict[str, Any]] = [] + with tempfile.TemporaryDirectory(prefix="h3-paired-ssim-") as temporary: + temporary_root = Path(temporary) + for index, request_id in enumerate(selected_ids, start=1): + candidate = candidates[request_id] + reference = references[request_id] + check_pair(candidate, reference) + probe, frames = compare_video_pair( + ffmpeg, + ffprobe, + Path(candidate["_resolved_file_path"]), + Path(reference["_resolved_file_path"]), + temporary_root / f"{index:05d}.stats", + ) + all_values = [float(frame["all"]) for frame in frames] + y_values = [float(frame["y"]) for frame in frames] + u_values = [float(frame["u"]) for frame in frames] + v_values = [float(frame["v"]) for frame in frames] + all_summary = metric_summary(all_values) + pair = { + "request_id": request_id, + "task": candidate["task"], + "short_edge": candidate["short_edge"], + "prompt_index": candidate["prompt_index"], + "prompt": candidate["prompt"], + "seed": candidate["seed"], + "candidate_file": candidate["_resolved_file_path"], + "reference_file": reference["_resolved_file_path"], + "candidate_num_inference_steps": candidate.get("num_inference_steps"), + "reference_num_inference_steps": reference.get("num_inference_steps"), + "width": probe["width"], + "height": probe["height"], + "fps": probe["r_frame_rate"], + "frames": len(frames), + "ssim_all_mean": all_summary["mean"], + "ssim_all_p10": all_summary["p10"], + "ssim_all_min": all_summary["min"], + "ssim_y_mean": statistics.fmean(y_values), + "ssim_u_mean": statistics.fmean(u_values), + "ssim_v_mean": statistics.fmean(v_values), + "threshold": args.threshold, + "passed": all_summary["mean"] >= args.threshold, + } + pair_rows.append(pair) + for frame in frames: + all_frame_rows.append({"request_id": request_id, **frame}) + print( + f"[{index}/{len(selected_ids)}] {request_id} " + f"mean={all_summary['mean']:.6f} p10={all_summary['p10']:.6f} " + f"min={all_summary['min']:.6f}", + flush=True, + ) + + all_values = [float(row["all"]) for row in all_frame_rows] + video_means = [float(row["ssim_all_mean"]) for row in pair_rows] + by_short_edge: dict[str, dict[str, Any]] = {} + grouped: dict[int, list[float]] = defaultdict(list) + for row in pair_rows: + grouped[int(row["short_edge"])].append(float(row["ssim_all_mean"])) + for short_edge, values in sorted(grouped.items()): + by_short_edge[str(short_edge)] = { + "videos": len(values), + "mean_video_ssim": statistics.fmean(values), + "min_video_ssim": min(values), + } + + frame_summary = metric_summary(all_values) + summary = { + "metric": "FFmpeg decoded YUV420 SSIM All", + "aggregation": { + "mean_video_ssim": statistics.fmean(video_means), + "frame_weighted_mean_ssim": frame_summary["mean"], + "frame_p10_ssim": frame_summary["p10"], + "min_frame_ssim": frame_summary["min"], + }, + "candidate_dir": str(args.candidate_dir.resolve()), + "reference_dir": str(args.reference_dir.resolve()), + "ffmpeg": ffmpeg, + "ffprobe": ffprobe, + "threshold": args.threshold, + "overall_passed": statistics.fmean(video_means) >= args.threshold, + "videos": len(pair_rows), + "videos_passed": sum(bool(row["passed"]) for row in pair_rows), + "frames": len(all_frame_rows), + "by_short_edge": by_short_edge, + "pairs": pair_rows, + } + (args.output_dir / "paired_ssim.json").write_text( + json.dumps(summary, ensure_ascii=False, indent=2) + "\n", encoding="utf-8" + ) + + pair_columns = [ + "request_id", + "task", + "short_edge", + "prompt_index", + "seed", + "width", + "height", + "fps", + "frames", + "ssim_all_mean", + "ssim_all_p10", + "ssim_all_min", + "ssim_y_mean", + "ssim_u_mean", + "ssim_v_mean", + "threshold", + "passed", + "candidate_file", + "reference_file", + ] + with (args.output_dir / "paired_ssim.tsv").open("w", encoding="utf-8") as handle: + handle.write("\t".join(pair_columns) + "\n") + for row in pair_rows: + handle.write("\t".join(str(row[column]) for column in pair_columns) + "\n") + + frame_columns = ("request_id", "frame", "y", "u", "v", "all") + with (args.output_dir / "paired_ssim_frames.tsv").open( + "w", encoding="utf-8" + ) as handle: + handle.write("\t".join(frame_columns) + "\n") + for row in all_frame_rows: + handle.write("\t".join(str(row[column]) for column in frame_columns) + "\n") + + print(json.dumps(summary["aggregation"], ensure_ascii=False), flush=True) + if args.fail_below_threshold and not summary["overall_passed"]: + return 2 + return 0 + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="command", required=True) + compare = subparsers.add_parser("compare") + compare.add_argument("--candidate-dir", type=Path, required=True) + compare.add_argument("--reference-dir", type=Path, required=True) + compare.add_argument("--output-dir", type=Path, required=True) + compare.add_argument("--threshold", type=float, default=0.90) + compare.add_argument( + "--limit", + type=int, + help="compare only the first N matched requests (intended for smoke tests)", + ) + compare.add_argument("--ffmpeg") + compare.add_argument("--ffprobe") + compare.add_argument("--fail-below-threshold", action="store_true") + return parser.parse_args() + + +def main() -> int: + args = parse_args() + if args.command == "compare": + return compare_command(args) + raise AssertionError(args.command) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/throughput/common/summarize_ssim_comparison.py b/throughput/common/summarize_ssim_comparison.py new file mode 100755 index 0000000..93a05a6 --- /dev/null +++ b/throughput/common/summarize_ssim_comparison.py @@ -0,0 +1,167 @@ +#!/usr/bin/env python3 +"""Aggregate paired-video SSIM JSON files into a comparison report.""" + +from __future__ import annotations + +import argparse +import json +import math +import statistics +from collections import defaultdict +from pathlib import Path +from typing import Any + + +def percentile(values: list[float], q: float) -> float: + ordered = sorted(values) + position = (len(ordered) - 1) * q + lower, upper = math.floor(position), math.ceil(position) + if lower == upper: + return ordered[lower] + return ordered[lower] * (upper - position) + ordered[upper] * (position - lower) + + +def summarize(pairs: list[dict[str, Any]], threshold: float) -> dict[str, Any]: + values = [float(pair["ssim_all_mean"]) for pair in pairs] + return { + "videos": len(values), + "mean_video_ssim": statistics.fmean(values), + "median_video_ssim": statistics.median(values), + "p10_video_ssim": percentile(values, 0.10), + "min_video_ssim": min(values), + "videos_at_or_above_threshold": sum(value >= threshold for value in values), + "pass_rate": sum(value >= threshold for value in values) / len(values), + } + + +def parse_series(text: str) -> tuple[str, str, Path]: + try: + scheme, task, path = text.split("=", 2) + except ValueError as error: + raise argparse.ArgumentTypeError("series must be SCHEME=TASK=PATH") from error + return scheme, task, Path(path) + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--series", action="append", type=parse_series, required=True) + parser.add_argument("--output-dir", type=Path, required=True) + parser.add_argument("--threshold", type=float, default=0.90) + parser.add_argument("--reference", required=True) + args = parser.parse_args() + + by_scheme: dict[str, list[dict[str, Any]]] = defaultdict(list) + sources = [] + for scheme, task, path in args.series: + payload = json.loads(path.read_text(encoding="utf-8")) + pairs = payload["pairs"] + if not pairs or {pair["task"] for pair in pairs} != {task}: + raise SystemExit(f"task mismatch for {path}: expected {task}") + by_scheme[scheme].extend(pairs) + sources.append({"scheme": scheme, "task": task, "path": str(path.resolve())}) + + video_counts = {scheme: len(pairs) for scheme, pairs in by_scheme.items()} + if len(set(video_counts.values())) != 1: + raise SystemExit(f"schemes have different video counts: {video_counts}") + base_videos = next(iter(video_counts.values())) + report: dict[str, Any] = { + "metric": "FFmpeg decoded YUV420 SSIM All; base self-comparison = 1.0", + "threshold": args.threshold, + "reference": args.reference, + "sources": sources, + "schemes": { + "base": { + "overall": { + "videos": base_videos, + "mean_video_ssim": 1.0, + "median_video_ssim": 1.0, + "p10_video_ssim": 1.0, + "min_video_ssim": 1.0, + "videos_at_or_above_threshold": base_videos, + "pass_rate": 1.0, + } + } + }, + } + table_rows = [] + for scheme, pairs in sorted(by_scheme.items()): + task_groups: dict[str, list[dict[str, Any]]] = defaultdict(list) + resolution_groups: dict[int, list[dict[str, Any]]] = defaultdict(list) + for pair in pairs: + task_groups[str(pair["task"])].append(pair) + resolution_groups[int(pair["short_edge"])].append(pair) + scheme_result = { + "overall": summarize(pairs, args.threshold), + "by_task": { + task: summarize(group, args.threshold) + for task, group in sorted(task_groups.items()) + }, + "by_resolution": { + str(resolution): summarize(group, args.threshold) + for resolution, group in sorted(resolution_groups.items()) + }, + } + report["schemes"][scheme] = scheme_result + for group_type, groups in ( + ("overall", {"all": pairs}), + ("task", task_groups), + ("resolution", resolution_groups), + ): + for group, members in groups.items(): + table_rows.append( + {"scheme": scheme, "group_type": group_type, "group": group, **summarize(members, args.threshold)} + ) + + args.output_dir.mkdir(parents=True, exist_ok=True) + (args.output_dir / "comparison.json").write_text( + json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8" + ) + columns = ( + "scheme", "group_type", "group", "videos", "mean_video_ssim", + "median_video_ssim", "p10_video_ssim", "min_video_ssim", + "videos_at_or_above_threshold", "pass_rate", + ) + with (args.output_dir / "comparison.tsv").open("w", encoding="utf-8") as handle: + handle.write("\t".join(columns) + "\n") + for row in table_rows: + handle.write("\t".join(str(row[column]) for column in columns) + "\n") + + lines = [ + "# MiniMax-H3 paired SSIM: base vs Cache-DiT vs Larry LoRA", + "", + f"Reference: `{args.reference}`", + "", + "Metric: FFmpeg-decoded YUV420 `SSIM All`, paired by request_id after exact prompt/seed/task/resolution/duration/aspect-ratio checks. Base self-comparison is 1.0.", + "", + "| Scheme | Videos | Mean | Median | Video P10 | Worst video | >= 0.90 |", + "|---|---:|---:|---:|---:|---:|---:|", + f"| base | {base_videos} | 1.000000 | 1.000000 | 1.000000 | 1.000000 | {base_videos}/{base_videos} |", + ] + for scheme in sorted(by_scheme): + value = report["schemes"][scheme]["overall"] + lines.append( + f"| {scheme} | {value['videos']} | {value['mean_video_ssim']:.6f} | " + f"{value['median_video_ssim']:.6f} | {value['p10_video_ssim']:.6f} | " + f"{value['min_video_ssim']:.6f} | {value['videos_at_or_above_threshold']}/{value['videos']} |" + ) + lines.extend(["", "## By task", ""]) + for scheme in sorted(by_scheme): + for task, value in report["schemes"][scheme]["by_task"].items(): + lines.append( + f"- {scheme} / {task}: mean={value['mean_video_ssim']:.6f}, " + f">=0.90={value['videos_at_or_above_threshold']}/{value['videos']}" + ) + lines.extend(["", "## By resolution", ""]) + for scheme in sorted(by_scheme): + values = report["schemes"][scheme]["by_resolution"] + rendered = ", ".join( + f"{resolution}p={value['mean_video_ssim']:.6f}" + for resolution, value in values.items() + ) + lines.append(f"- {scheme}: {rendered}") + (args.output_dir / "README.md").write_text("\n".join(lines) + "\n", encoding="utf-8") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/throughput/sglang-base-b300/README.md b/throughput/sglang-base-b300/README.md new file mode 100644 index 0000000..9a823ed --- /dev/null +++ b/throughput/sglang-base-b300/README.md @@ -0,0 +1,71 @@ +# SGLang B300 原生拓扑矩阵(部署方案一) + +对应调研文档(本地仓库 `sskj/docs/MINIMAX_H3_B300_PLAN1_NATIVE_TOPO.md`): +**原生 sglang、无 lossy 优化**,只调 tp / ulysses / 实例数 / 实例内批并发 / 精度档,目标节点级最高吞吐与 GPU 利用率。 + +## 口径(与 6000D 报告完全对齐,结果可直接对比) + +- 框架/环境:SGLang(6000D 机 conda env `sglang`,sglang 0.5.17;B300 上机后按实际环境覆盖 `PYTHON`/`SGLANG_BIN`)。 +- 生成规格:20 inference steps、5 秒、16:9、`flow_shift=12.0`、`audio_flow_shift=3.0`。 +- 任务:FL2VA、Ref2VA;分辨率:480、720、768、1080;每任务每档 8 条,总量 32 条。 +- 样本按 prompt 分片均分到每个实例;实例间并行,实例内并发由 `--in-flight` 控制。 + +## 与 6000D 矩阵的差异(B300 新增轴) + +| 轴 | 6000D(sglang-base) | B300(本目录) | +|---|---|---| +| 拓扑 | TP8×1 / TP4×2 / TP2×4(`--ulysses-degree 1`) | Ulysses-8×1、Ulysses-4×2、tp1×8、单卡双实例×8 | +| 批并发 | 固定 `--batching-max-size 1` | `--batching-max-size {1,2,4}`(原生吞吐主杠杆) | +| 精度 | BF16 | BF16 / FP8(`--quantization fp8`) | +| 失败处理 | 严格 die | `SKIP_ON_FAIL=1` 记录后继续(探索期) | + +## 默认矩阵(TOPO_LIST,`name|replicas|tp|ulysses|batching`) + +| topo | 说明 | 依据 | +|---|---|---| +| `u8x1` | Ulysses-8 × 1 实例,batch1 | 官方 8×B300 验证拓扑(19.04s@BF16) | +| `u8x1_b2` / `u8x1_b4` | 单实例批 2 / 批 4 | 官方吞吐档:`--encoder-parallel dp --batching-max-size N` | +| `u4x2` / `u4x2_b2` | 2 实例 × Ulysses-4(批 1 / 2) | 折中拓扑 | +| `tp1x8` / `tp1x8_b2` | 8 实例 × 单卡驻留(批 1 / 2) | 6000D「多实例并行」结论直译(B300 单卡 288GB 可整模型驻留) | +| `share2x8` | 单卡双实例 × 8 卡 = 16 实例(实验项) | 用户点名方向;仅 FP8 档可行 | + +- `GPU_MODE=partition`(默认):实例 i 用卡 `[i*K, (i+1)*K)`,K = tp×ulysses。 +- `GPU_MODE=share`(share2x8 用):每实例 1 卡,实例 i 用卡 `i % TOTAL_GPUS`(同卡多实例)。 +- `--encoder-parallel dp` 仅在 batching>1 时追加;batch=1 用默认 `auto`。 + +## 用法 + +```bash +# dry-run:只打印矩阵计划 +DRY_RUN=1 bash scripts/run_sglang_h3_b300_matrix.sh + +# 冒烟:单 topo、单精度、单任务、少请求 +TOPO_LIST="u8x1" QUANT_LIST="bf16" TASKS="fl2va" REQUESTS_PER_RESOLUTION=1 \ + RUN_ID=smoke bash scripts/run_sglang_h3_b300_matrix.sh + +# 正式跑(放 tmux;默认全矩阵 = 8 topo × 2 精度 × 2 任务) +tmux new-session -d -s b300-matrix "bash scripts/run_sglang_h3_b300_matrix.sh" +``` + +常用覆盖变量:`TOTAL_GPUS NUM_INFERENCE_STEPS DURATION_SECONDS TOPO_LIST QUANT_LIST TASKS RESOLUTIONS REQUESTS_PER_RESOLUTION BASE_PORT MODEL REFERENCE_IMAGE PROMPT_FILE PYTHON SGLANG_BIN CLIENT_SCRIPT RUN_ID RESULT_ROOT SKIP_ON_FAIL GPU_MODE`。 + +## 结果目录 + +``` +results// +├── summary.tsv # 全矩阵一行一 phase(可贴进飞书多维表格) +├── orchestrator.log / orchestrator.pid +└── _/ + └── / + ├── server__port

/ # server.log / cuda_visible_devices.txt / outputs/ + ├── client__port

/ # client.log / results.jsonl + └── summary.json # 该 phase 汇总 +``` + +summary.tsv 列:`topo prec replicas tp ulysses batching inflight task expected recorded completed failed machine_qps latency_mean_s latency_p95_s machine_wall_s`。 + +## 备注 + +- 20 步/5s 为 6000D 对比口径;B300 官方 50 步数据见调研文档(u8x1 BF16 19.04s/请求、83.6GB/卡;FP8 18.03s、51.9GB/卡)。 +- 长片(10/15s)批容量按 token 数等比缩水,另跑专项。 +- 方案二(Turbo LoRA / SubBlock / Cache-DiT / AdaLN 缓存等优化策略)另行编排,不动本目录口径。 diff --git a/throughput/sglang-base-b300/REPORT_TEMPLATE.md b/throughput/sglang-base-b300/REPORT_TEMPLATE.md new file mode 100644 index 0000000..db501ba --- /dev/null +++ b/throughput/sglang-base-b300/REPORT_TEMPLATE.md @@ -0,0 +1,191 @@ +# MiniMax-H3 在 NVIDIA B300 上的 SGLang 部署测试报告(方案一:原生拓扑矩阵) + +> 模板说明:结构完全对齐《MiniMax-H3 在 RTX 6000D 上的 SGLang 多实例部署测试报告》(飞书 wiki ZPtMwtunEiOb39kfV6ocGhp3nLf)。 +> 所有【待填】处由实验结果填入;数据来源:`/data/wxy/results/minimax_h3_b300_matrix//summary.tsv`(每 phase 一行)与各 `summary.json`。 +> 6000D 对照基线(同口径 20 步/5s/16:9/480-1080×8/seed=1101+prompt_index)已在各节标注。 + +## 1. 结论摘要 + +本轮在单台 8×NVIDIA B300 SXM6 服务器上,对 MiniMax-H3 的原生 SGLang 部署进行了等总量、等任务、等分辨率的 serving 测试,覆盖拓扑 × 批并发 × 精度三个轴: +- 拓扑:Ulysses-8×1、Ulysses-4×2、tp1×8、单卡双实例×8(16 实例); +- 实例内批并发:`--batching-max-size` = 1 / 2 / 4; +- 精度:BF16 / FP8。 + +每种部署均执行 64 条正式请求(FL2VA 与 Ref2VA 各 32 条;480P/720P/768P/1080P 各 8 条;20 steps、5 秒、16:9)。 + +【待填】结论要点: +- 吞吐优先的最优拓扑:______(预期候选:u8x1_b2/b4 或 tp1x8_b2;判定依据:machine_qps 与打包率) +- 单请求时延最优:______(预期:u8x1 batch1) +- FP8 相对 BF16 的吞吐/显存收益:______ +- 相对 6000D 基线(TP2×4:FL2VA 0.010769 QPS / Ref2VA 0.006234 QPS)的整机提升:______ + +## 2. 实验环境与设计 + +| 项目 | 固定配置 | +|---|---| +| 服务器 | Host B300,8×NVIDIA B300 SXM6,单卡 288 GB HBM3e | +| 模型 | /data/hf_models/MiniMax-H3 | +| 框架与环境 | SGLang;【待填】环境路径(6000D 对照为 /root/.miniconda3/envs/sglang,sglang 0.5.17) | +| 任务 | FL2VA、Ref2VA;两个 variant 分阶段启动并顺序测试 | +| Prompt | /root/.cache/sglang/vbench_subject_consistency.txt,取 8 条 VBench subject-consistency prompt | +| 参考图 | /data/wxy/sskj-MiniMax-H3/assets/reference_images/landscape_mountain_lake.jpg | +| 正式生成参数 | 20 inference steps;5 秒;16:9;flow_shift=12.0;audio_flow_shift=3.0;seed=1101+prompt_index | +| 分辨率 | short edge 480、720、768、1080;每个任务每档 8 条 | +| 预热 | 每实例 1 条、5 steps;预热不计入正式结果 | +| 服务并发 | `--batching-max-size` 1/2/4(客户端 in-flight 与服务端同值);不同实例并行 | + +### 2.1 部署方案矩阵(与 6000D 报告的对应关系) + +6000D 报告以"每实例 GPU 数"定义方案(TP8×1 / TP4×2 / TP2×4);B300 单卡 288GB 可整模型驻留, +以**同语义的并行档位**对应:8 卡并 = Ulysses-8,4 卡并 = Ulysses-4,单卡 = tp1(Ulysses-1)。 + +| 方案 | 实例数 | 每实例 GPU | 并行形态 | 批并发 | 服务端口 | +|---|---|---|---|---|---| +| u8x1 | 1 | 8 | Ulysses-8(对应 6000D TP8×1) | 1 | 30010 | +| u8x1_b2 / u8x1_b4 | 1 | 8 | Ulysses-8 + `--encoder-parallel dp` | 2 / 4 | 30010 | +| u4x2 / u4x2_b2 | 2 | 4 | Ulysses-4(对应 6000D TP4×2) | 1 / 2 | 30010、30020 | +| tp1x8 / tp1x8_b2 | 8 | 1 | tp1(对应 6000D TP2×4 的"多实例"结构) | 1 / 2 | 30010–30080 | +| share2x8 | 16 | 1(单卡双实例) | tp1 × 共享卡(实验项) | 1 | 30010–30160 | + +每方案 × BF16 / FP8 两档;FP8 档追加 `--quantization fp8`。 + +### 2.2 样本总量与均衡分配 + +同 6000D 口径:每种部署正式总量恒定为 64 条,每任务 32 条(4 分辨率 × 8 prompt);分片按 `prompt_index % num_replicas`, +保证每个实例拿到相同数量的 480/720/768/1080 样本。 + +### 2.3 指标口径 + +- `machine_wall_s`:同任务最早正式请求开始到最晚正式请求结束的整机墙钟时间; +- `machine_qps`:成功请求数 ÷ machine_wall_s; +- `latency_mean_s / latency_p95_s`:单请求端到端时延(提交→服务端生成→轮询完成),不含 server 启动与预热; +- 分辨率级 QPS(对照 4.3/4.4 口径):并发副本数 ÷ 该分辨率平均时延; +- 综合 QPS(FL2VA/Ref2VA 各半):`2 × 并发副本数 / (FL2VA 平均延迟 + Ref2VA 平均延迟)`。 + +## 3. 启动与测试脚本 + +编排脚本:`/data/wxy/sskj-h3/throughput/sglang-base-b300/scripts/run_sglang_h3_b300_matrix.sh` +客户端与汇总:`/data/wxy/sskj-h3/throughput/sglang-base-b300/scripts/minimax_h3_b300_bench.py` + +```bash +ssh B300 +cd /data/wxy/sskj-h3/throughput/sglang-base-b300 + +DRY_RUN=1 bash scripts/run_sglang_h3_b300_matrix.sh # 打印 32 phase 计划 + +RUN_ID="b300-20steps-5s-$(date +%Y%m%d-%H%M%S)" \ +setsid bash scripts/run_sglang_h3_b300_matrix.sh \ + >/data/wxy/sglang_b300_matrix.log 2>&1 & + +tail -f /data/wxy/sglang_b300_matrix.log +``` + +编排脚本对每个 topo 自动计算 replicas、分配连续 GPU(`GPU_MODE=partition`;`share2x8` 需 `GPU_MODE=share`), +独立端口,等待 `/health` 后启动同数量 client;FL2VA 完成后释放服务再切 Ref2VA。 +不可行组合(如 BF16 单卡双实例)在 `SKIP_ON_FAIL=1` 下记录后跳过。核心服务启动参数(u8x1 示例): + +```bash +CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \ +sglang serve \ + --model-path /data/hf_models/MiniMax-H3 \ + --model-variant "$variant" \ + --backend sglang \ + --performance-mode speed \ + --num-gpus 8 --tp-size 1 --ulysses-degree 8 \ + --use-fsdp-inference false \ + --enable-torch-compile false \ + --batching-max-size 1 --batching-delay-ms 0 \ + --warmup-resolutions 1344x768 \ + --host 0.0.0.0 --port "$port" +``` + +客户端通过 SGLang 异步 `POST /v1/videos` 提交、`GET /v1/videos/{id}` 轮询;每条请求写入 JSONL, +阶段结束后聚合为 summary.json 与 summary.tsv(列:topo prec replicas tp ulysses batching inflight task expected recorded completed failed machine_qps latency_mean_s latency_p95_s machine_wall_s)。 + +## 4. 测试结果 + +### 4.1 整机吞吐与端到端时延(对照 6000D 报告 4.1) + +| 方案 | 任务 | 成功/总数 | machine QPS | 平均时延(s) | P95(s) | 墙钟(s) | +|---|---|---|---|---|---|---| +| u8x1 BF16 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| u8x1 BF16 | Ref2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| u8x1_b2 BF16 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| u8x1_b4 FP8 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| u4x2 BF16 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| tp1x8 BF16 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| tp1x8_b2 FP8 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| share2x8 FP8 | FL2VA | 【待填】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| ...(其余 phase 同构) | | | | | | | + +6000D 对照(同口径):TP8×1 FL2VA 0.007646(130.79s)/ Ref2VA 0.004580;TP4×2 0.009723;TP2×4 0.010769 / 0.006234。 + +### 4.2 分辨率平均时延 + +| 任务 | 方案 | 480 | 720 | 768 | 1080 | +|---|---|---|---|---|---| +| FL2VA | u8x1 BF16 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| FL2VA | u8x1_b4 FP8 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| FL2VA | tp1x8 BF16 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | +| FL2VA | ... | | | | | +| Ref2VA | ... | | | | | + +(数据取 summary.json 的 `by_short_edge.latency_mean_s`。) + +### 4.3 / 4.4 分辨率整机 QPS(FL2VA / Ref2VA) + +| SGLang 配置 | 480p | 720p | 768p | 1080p | +|---|---|---|---|---| +| 【方案】 | 【待填】 | 【待填】 | 【待填】 | 【待填】 | + +### 4.5 FL2VA 和 Ref2VA 各占 50% 时的综合 QPS + +公式同 6000D 报告(2 × 并发副本数 / 时延和)。表:【待填】。 +预期观察点:1080 档是否再次成为长尾主因、批并发(batching>1)是否改变 1080 的相对惩罚。 + +## 5. 拓扑比较与建议(分析框架,结论待测) + +| 维度 | 6000D 结论(TP8/TP4/TP2 序列) | B300 预期/待测 | +|---|---|---| +| 吞吐最优 | TP2×4(多实例) | 【待测】候选 u8x1_b2/b4、tp1x8_b2 | +| 时延最优 | TP8×1 | 【待测】候选 u8x1 batch1 | +| FP8 | 未测 | 【待测】显存 -38% → 批容量翻倍 | +| 1080p 惩罚 | 拆分越细惩罚越明显 | 【待测】批并发是否能摊薄 | + +建议框架(沿用 6000D 报告): +- 若以"每台机器每天完成条数"为核心 → 选吞吐最优档;若兼顾等待时间 → 折中档(u4x2 或 u8x1_b2); +- 1080 与低分辨率拆池,避免 head-of-line blocking; +- 按真实流量比例做并发队列测试后再定最终档位。 + +## 6. 与 6000D / vLLM-Omni 的同口径对照 + +### 6.1 与 6000D(RTX 6000D 8 卡)横向对照 + +同任务/prompt/分辨率/steps/时长/种子、按整机口径: + +| 部署 | 任务 | 6000D QPS | B300 QPS | B300 相对 | +|---|---|---|---|---| +| 8×1 卡实例(6000D TP8×1 ↔ B300 u8x1) | FL2VA | 0.007646 | 【待填】 | | +| 8×1 卡实例 | Ref2VA | 0.004580 | 【待填】 | | +| 4×2 卡实例(TP4×2 ↔ u4x2) | FL2VA | 0.009723 | 【待填】 | | +| 2×1 卡实例 ×4(TP2×4 ↔ tp1x8) | FL2VA | 0.010769 | 【待填】 | | + +### 6.2 与 vLLM-Omni 对照 + +【待填】B300 上 vLLM-Omni 同口径结果(6000D 上 vLLM-Omni 内部为 DiT TP2×USP4/2/1,多数格子快于 SGLang +25.68%/+47.59%/+24.91%/+22.09%)。 +注意两套 API/编码链路不同(SGLang 异步 job 轮询 vs vLLM-Omni 同步 MP4),仅用于整机容量判断;视频质量需另行盲评/VBench。 + +## 7. 优化策略对齐(方案二占位) + +6000D 报告 Cache-DiT 对照(同请求同 seed,TP2×4 上叠加): +- 配置:RDT=0.1 / MC=4 / Fn=2 / Bn=0 / W=2 / SCM=dynamic + h3_cache_patch; +- 效果:整机 QPS +95.3%(FL2VA)/ +121.1%(Ref2VA);相对 TP8×1 基线达 2.75× / 3.01×;各分辨率一致受益(1.97×–2.39×),1080p 无长尾恶化。 + +B300 待跑:在 B300 最优拓扑上叠加同类 Cache-DiT / Turbo LoRA / SubBlock 等优化,对齐 6000D 表格结构出"表格 1~6"。 +(优化策略参考与最终档位待定,本报告先以原生拓扑矩阵收口。) + +## 8. 结果与审计文件 + +- 本轮结果根目录:`/data/wxy/results/minimax_h3_b300_matrix//` +- 汇总文件:各 run 根目录 `summary.tsv`;每个 phase 目录 `summary.json`;每个 client 目录逐请求 `results.jsonl` 与日志;每个 server 目录 `server.log`、`cuda_visible_devices.txt`、`outputs/` +- 完整脚本:`/data/wxy/sskj-h3/throughput/sglang-base-b300/scripts/run_sglang_h3_b300_matrix.sh`、`.../minimax_h3_b300_bench.py` diff --git a/throughput/sglang-base-b300/scripts/__pycache__/minimax_h3_b300_bench.cpython-312.pyc b/throughput/sglang-base-b300/scripts/__pycache__/minimax_h3_b300_bench.cpython-312.pyc new file mode 100644 index 0000000..7114a2e Binary files /dev/null and b/throughput/sglang-base-b300/scripts/__pycache__/minimax_h3_b300_bench.cpython-312.pyc differ diff --git a/throughput/sglang-base-b300/scripts/minimax_h3_b300_bench.py b/throughput/sglang-base-b300/scripts/minimax_h3_b300_bench.py new file mode 100755 index 0000000..71d5f9a --- /dev/null +++ b/throughput/sglang-base-b300/scripts/minimax_h3_b300_bench.py @@ -0,0 +1,374 @@ +#!/usr/bin/env python3 +"""Run or summarize a stratified MiniMax-H3 FL2VA/Ref2VA serving workload. + +B300 variant: adds per-instance in-flight concurrency (--in-flight) so the +server-side --batching-max-size can be exercised, and extends the summary +with topo/precision/batching columns. In-flight=1 reproduces the 6000D +serial-per-instance behaviour exactly. +""" + +from __future__ import annotations + +import argparse +import json +import math +import queue +import statistics +import threading +import time +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path +from typing import Any + +import requests + + +DEFAULT_PROMPT = "A cinematic landscape with natural motion and realistic lighting." + + +def percentile(values: list[float], q: float) -> float: + if not values: + return 0.0 + values = sorted(values) + pos = (len(values) - 1) * q + lo, hi = math.floor(pos), math.ceil(pos) + if lo == hi: + return values[lo] + return values[lo] * (hi - pos) + values[hi] * (pos - lo) + + +def load_prompts(path: Path, count: int) -> list[str]: + prompts: list[str] = [] + if path.is_file(): + prompts = [line.strip() for line in path.read_text(encoding="utf-8").splitlines() if line.strip()] + if not prompts: + prompts = [DEFAULT_PROMPT] + repeats = (count + len(prompts) - 1) // len(prompts) + return (prompts * repeats)[:count] + + +def build_plan(args: argparse.Namespace) -> list[dict[str, Any]]: + resolutions = [int(item) for item in args.resolutions.split(",") if item.strip()] + prompts = load_prompts(args.prompt_file, args.requests_per_resolution) + plan: list[dict[str, Any]] = [] + # Interleave resolutions so any slow drift affects every bucket similarly. + for prompt_index, prompt in enumerate(prompts): + for short_edge in resolutions: + plan.append( + { + "request_id": f"{args.task}-r{short_edge}-p{prompt_index:02d}", + "task": args.task, + "short_edge": short_edge, + "prompt_index": prompt_index, + "prompt": prompt, + "seed": args.seed + prompt_index, + } + ) + return plan + + +def make_payload(args: argparse.Namespace, item: dict[str, Any], steps: int) -> dict[str, Any]: + condition: dict[str, Any] = { + "type": "image", + "uri": str(args.reference_image), + "role": "keyframe" if args.task == "fl2va" else "reference", + } + if args.task == "fl2va": + condition["frame_index"] = 0 + return { + "model": args.model, + "prompt": item["prompt"], + "num_outputs_per_prompt": 1, + "num_inference_steps": steps, + "flow_shift": args.flow_shift, + "audio_flow_shift": args.audio_flow_shift, + "seed": item["seed"], + "task": args.task, + "conditions": [condition], + "target": { + "short_edge": item["short_edge"], + "aspect_ratio": args.aspect_ratio, + "duration_seconds": args.duration_seconds, + }, + } + + +def run_one( + session: requests.Session, + args: argparse.Namespace, + item: dict[str, Any], + steps: int, +) -> dict[str, Any]: + started_epoch = time.time() + started = time.monotonic() + result: dict[str, Any] = { + **item, + "replica_index": args.replica_index, + "port": args.port, + "num_inference_steps": steps, + "duration_seconds": args.duration_seconds, + "aspect_ratio": args.aspect_ratio, + "started_at_epoch": started_epoch, + "success": False, + "error": None, + } + try: + response = session.post( + f"http://{args.host}:{args.port}/v1/videos", + json=make_payload(args, item, steps), + timeout=args.submit_timeout, + ) + if response.status_code != 200: + raise RuntimeError(f"submit HTTP {response.status_code}: {response.text[:1000]}") + status = response.json() + video_id = status.get("id") + if not video_id: + raise RuntimeError(f"submit response has no id: {status}") + result["video_id"] = video_id + deadline = time.monotonic() + args.request_timeout + while status.get("status") not in {"completed", "failed"}: + if time.monotonic() >= deadline: + raise TimeoutError(f"video job {video_id} exceeded {args.request_timeout}s") + time.sleep(args.poll_interval) + poll = session.get( + f"http://{args.host}:{args.port}/v1/videos/{video_id}", + timeout=args.poll_timeout, + ) + if poll.status_code != 200: + raise RuntimeError(f"poll HTTP {poll.status_code}: {poll.text[:1000]}") + status = poll.json() + if status.get("status") != "completed": + raise RuntimeError(f"job failed: {status.get('error') or status}") + result["success"] = True + result["inference_time_s"] = status.get("inference_time_s") + result["peak_memory_mb"] = status.get("peak_memory_mb") + result["file_path"] = status.get("file_path") + except Exception as exc: # Keep the rest of the matrix running and record the cell failure. + result["error"] = f"{type(exc).__name__}: {exc}" + result["latency_s"] = time.monotonic() - started + result["finished_at_epoch"] = time.time() + return result + + +def run_command(args: argparse.Namespace) -> int: + if not args.reference_image.is_file(): + raise SystemExit(f"reference image not found: {args.reference_image}") + full_plan = build_plan(args) + # Stratify by prompt index so every replica receives the same number of + # samples from every resolution. This avoids assigning an entire slow + # resolution bucket (for example 1080p) to only one replica. + shard = [ + item + for item in full_plan + if item["prompt_index"] % args.num_replicas == args.replica_index + ] + args.output.parent.mkdir(parents=True, exist_ok=True) + completed_ids: set[str] = set() + if args.output.is_file(): + for line in args.output.read_text(encoding="utf-8").splitlines(): + try: + completed_ids.add(json.loads(line)["request_id"]) + except (json.JSONDecodeError, KeyError): + continue + shard = [item for item in shard if item["request_id"] not in completed_ids] + print( + f"task={args.task} replica={args.replica_index}/{args.num_replicas} " + f"requests={len(shard)} port={args.port} in_flight={args.in_flight}", + flush=True, + ) + failures = 0 + write_lock = threading.Lock() + + + with requests.Session() as session: + # Warmup stays serial so a slow first request cannot stall concurrency probes. + for warmup_index in range(args.warmup_requests): + warmup_item = (shard or full_plan)[warmup_index % len(shard or full_plan)].copy() + warmup_item["request_id"] = f"warmup-{warmup_index}-{warmup_item['request_id']}" + warmup = run_one(session, args, warmup_item, args.warmup_inference_steps) + print( + f"warmup {warmup_index + 1}/{args.warmup_requests}: " + f"success={warmup['success']} latency={warmup['latency_s']:.2f}s " + f"error={warmup['error']}", + flush=True, + ) + if not warmup["success"]: + raise SystemExit("warmup failed") + with write_lock, args.output.open("a", encoding="utf-8") as _out: + _out.write(json.dumps(warmup, ensure_ascii=False) + "\n") + if not shard: + return int(failures > 0) + if args.in_flight <= 1: + with args.output.open("a", encoding="utf-8", buffering=1) as output: + for index, item in enumerate(shard, start=1): + result = run_one(session, args, item, args.num_inference_steps) + output.write(json.dumps(result, ensure_ascii=False) + "\n") + failures += int(not result["success"]) + print( + f"request {index}/{len(shard)} id={item['request_id']} " + f"success={result['success']} latency={result['latency_s']:.2f}s " + f"error={result['error']}", + flush=True, + ) + return int(failures > 0) + + # Concurrent: fixed in-flight window over a worker pool. + task_queue: queue.Queue[dict[str, Any] | None] = queue.Queue() + for item in shard: + task_queue.put(item) + for _ in range(args.in_flight): + task_queue.put(None) # sentinel + + completed = 0 + + def worker() -> None: + nonlocal completed + with args.output.open("a", encoding="utf-8", buffering=1) as output: + while True: + item = task_queue.get() + if item is None: + task_queue.task_done() + return + result = run_one(session, args, item, args.num_inference_steps) + with write_lock: + output.write(json.dumps(result, ensure_ascii=False) + "\n") + completed += 1 + failures += int(not result["success"]) + print( + f"request {completed}/{len(shard)} id={item['request_id']} " + f"success={result['success']} latency={result['latency_s']:.2f}s " + f"error={result['error']}", + flush=True, + ) + task_queue.task_done() + + with ThreadPoolExecutor(max_workers=args.in_flight) as pool: + futures = [pool.submit(worker) for _ in range(args.in_flight)] + for future in futures: + future.result() + return int(failures > 0) + + +def summarize_command(args: argparse.Namespace) -> int: + rows: list[dict[str, Any]] = [] + for path in sorted(args.input_dir.glob("client_*/results.jsonl")): + for line in path.read_text(encoding="utf-8").splitlines(): + if line.strip(): + rows.append(json.loads(line)) + successful = [row for row in rows if row.get("success")] + latencies = [float(row["latency_s"]) for row in successful] + started = [float(row["started_at_epoch"]) for row in rows] + finished = [float(row["finished_at_epoch"]) for row in rows] + wall_s = max(finished) - min(started) if started and finished else 0.0 + buckets: dict[str, dict[str, Any]] = {} + for short_edge in sorted({int(row["short_edge"]) for row in rows}): + bucket_rows = [row for row in rows if int(row["short_edge"]) == short_edge] + bucket_success = [row for row in bucket_rows if row.get("success")] + bucket_latencies = [float(row["latency_s"]) for row in bucket_success] + buckets[str(short_edge)] = { + "requests": len(bucket_rows), + "completed": len(bucket_success), + "failed": len(bucket_rows) - len(bucket_success), + "latency_mean_s": statistics.fmean(bucket_latencies) if bucket_latencies else 0.0, + "latency_p95_s": percentile(bucket_latencies, 0.95), + } + summary = { + "topo": args.topo, + "prec": args.prec, + "replicas": args.replicas, + "tp": args.tp, + "ulysses": args.ulysses, + "batching": args.batching, + "in_flight": args.in_flight, + "task": args.task, + "expected_requests": args.expected_requests, + "requests_recorded": len(rows), + "completed": len(successful), + "failed": len(rows) - len(successful), + "machine_wall_s": wall_s, + "machine_qps": len(successful) / wall_s if wall_s else 0.0, + "latency_mean_s": statistics.fmean(latencies) if latencies else 0.0, + "latency_p50_s": percentile(latencies, 0.50), + "latency_p95_s": percentile(latencies, 0.95), + "by_short_edge": buckets, + } + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8") + print( + "\t".join( + [ + str(args.topo), + str(args.prec), + str(args.replicas), + str(args.tp), + str(args.ulysses), + str(args.batching), + str(args.in_flight), + args.task, + str(args.expected_requests), + str(len(rows)), + str(len(successful)), + str(len(rows) - len(successful)), + f"{summary['machine_qps']:.8f}", + f"{summary['latency_mean_s']:.6f}", + f"{summary['latency_p95_s']:.6f}", + f"{wall_s:.3f}", + ] + ) + ) + return int(len(rows) != args.expected_requests or len(successful) != len(rows)) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="command", required=True) + run = subparsers.add_parser("run") + run.add_argument("--host", default="127.0.0.1") + run.add_argument("--port", type=int, required=True) + run.add_argument("--model", default="/data/hf_models/MiniMax-H3") + run.add_argument("--task", choices=["fl2va", "ref2va"], required=True) + run.add_argument("--reference-image", type=Path, required=True) + run.add_argument("--prompt-file", type=Path, default=Path.home() / ".cache/sglang/vbench_subject_consistency.txt") + run.add_argument("--resolutions", default="480,720,768,1080") + run.add_argument("--requests-per-resolution", type=int, default=8) + run.add_argument("--replica-index", type=int, required=True) + run.add_argument("--num-replicas", type=int, required=True) + run.add_argument("--in-flight", type=int, default=1) + run.add_argument("--num-inference-steps", type=int, default=20) + run.add_argument("--warmup-requests", type=int, default=1) + run.add_argument("--warmup-inference-steps", type=int, default=5) + run.add_argument("--duration-seconds", type=float, default=5.0) + run.add_argument("--aspect-ratio", default="16:9") + run.add_argument("--flow-shift", type=float, default=12.0) + run.add_argument("--audio-flow-shift", type=float, default=3.0) + run.add_argument("--seed", type=int, default=1101) + run.add_argument("--submit-timeout", type=float, default=120.0) + run.add_argument("--poll-timeout", type=float, default=30.0) + run.add_argument("--poll-interval", type=float, default=1.0) + run.add_argument("--request-timeout", type=float, default=3600.0) + run.add_argument("--output", type=Path, required=True) + run.set_defaults(func=run_command) + + summarize = subparsers.add_parser("summarize") + summarize.add_argument("--input-dir", type=Path, required=True) + summarize.add_argument("--output", type=Path, required=True) + summarize.add_argument("--task", required=True) + summarize.add_argument("--topo", required=True) + summarize.add_argument("--prec", default="bf16") + summarize.add_argument("--tp", type=int, required=True) + summarize.add_argument("--ulysses", type=int, required=True) + summarize.add_argument("--replicas", type=int, required=True) + summarize.add_argument("--batching", type=int, required=True) + summarize.add_argument("--in-flight", type=int, required=True) + summarize.add_argument("--expected-requests", type=int, required=True) + summarize.set_defaults(func=summarize_command) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + return args.func(args) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/throughput/sglang-base-b300/scripts/run_sglang_h3_b300_matrix.sh b/throughput/sglang-base-b300/scripts/run_sglang_h3_b300_matrix.sh new file mode 100755 index 0000000..b05db48 --- /dev/null +++ b/throughput/sglang-base-b300/scripts/run_sglang_h3_b300_matrix.sh @@ -0,0 +1,232 @@ +#!/usr/bin/env bash +# B300 native-topology matrix: topo x precision x task. +# Topology axes: tp / ulysses / replicas / instance batching / quantization. +# 32 requests per task: 2 tasks x 4 short-edge resolutions x 8 prompts (same gauge as 6000D). +set -Eeuo pipefail + +TOTAL_GPUS=${TOTAL_GPUS:-8} +NUM_INFERENCE_STEPS=${NUM_INFERENCE_STEPS:-20} +DURATION_SECONDS=${DURATION_SECONDS:-5} +# name|replicas|tp|ulysses|batching +TOPO_LIST=${TOPO_LIST:-"u8x1|1|1|8|1 u8x1_b2|1|1|8|2 u8x1_b4|1|1|8|4 u4x2|2|1|4|1 u4x2_b2|2|1|4|2 tp1x8|8|1|1|1 tp1x8_b2|8|1|1|2 share2x8|16|1|1|1"} +QUANT_LIST=${QUANT_LIST:-"bf16 fp8"} +TASKS=${TASKS:-"fl2va ref2va"} +RESOLUTIONS=${RESOLUTIONS:-"480,720,768,1080"} +REQUESTS_PER_RESOLUTION=${REQUESTS_PER_RESOLUTION:-8} +REQUESTS_PER_TASK=$((REQUESTS_PER_RESOLUTION * 4)) +GPU_MODE=${GPU_MODE:-partition} # partition | share (share requires tp*ulysses==1) +SKIP_ON_FAIL=${SKIP_ON_FAIL:-1} # 1: record phase failure and continue (exploration mode) + +BASE_PORT=${BASE_PORT:-30010} +PORT_STRIDE=${PORT_STRIDE:-10} +MASTER_PORT_BASE=${MASTER_PORT_BASE:-31000} +SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-32000} +HOST=${HOST:-127.0.0.1} +MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +REFERENCE_IMAGE=${REFERENCE_IMAGE:-/data/wxy/sskj-MiniMax-H3/assets/reference_images/landscape_mountain_lake.jpg} +PROMPT_FILE=${PROMPT_FILE:-/root/.cache/sglang/vbench_subject_consistency.txt} +PYTHON=${PYTHON:-/root/.miniconda3/envs/sglang/bin/python} +SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang/bin/sglang} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-/data/wxy/sskj-h3/throughput/sglang-base-b300/scripts/minimax_h3_b300_bench.py} +SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} +RUN_ID=${RUN_ID:-b300-matrix-$(date '+%Y%m%d-%H%M%S')} +RESULT_ROOT=${RESULT_ROOT:-/data/wxy/results/minimax_h3_b300_matrix/$RUN_ID} + +declare -a SERVER_PIDS=() +declare -a CLIENT_PIDS=() + +log() { printf '[%s] %s\n' "$(date '+%F %T')" "$*"; } +die() { log "ERROR: $*" >&2; exit 1; } + +[[ -x "$PYTHON" ]] || die "python not executable: $PYTHON" +[[ -x "$SGLANG_BIN" ]] || die "sglang not executable: $SGLANG_BIN" +[[ -f "$CLIENT_SCRIPT" ]] || die "client script missing: $CLIENT_SCRIPT" +[[ -f "$REFERENCE_IMAGE" ]] || die "reference image missing: $REFERENCE_IMAGE" +mkdir -p "$RESULT_ROOT" +SUMMARY_TSV="$RESULT_ROOT/summary.tsv" +printf 'topo\tprec\treplicas\ttp\tulysses\tbatching\tinflight\ttask\texpected\trecorded\tcompleted\tfailed\tmachine_qps\tlatency_mean_s\tlatency_p95_s\tmachine_wall_s\n' > "$SUMMARY_TSV" + +port_is_open() { + "$PYTHON" - "$HOST" "$1" <<'PY' +import socket, sys +s = socket.socket(); s.settimeout(0.5) +try: s.connect((sys.argv[1], int(sys.argv[2]))) +except OSError: raise SystemExit(1) +else: raise SystemExit(0) +finally: s.close() +PY +} + +stop_servers() { + local pid alive deadline + ((${#SERVER_PIDS[@]})) || return 0 + log "gracefully stopping ${#SERVER_PIDS[@]} server(s)" + for pid in "${SERVER_PIDS[@]}"; do kill -INT "$pid" 2>/dev/null || true; done + deadline=$((SECONDS + 120)) + while ((SECONDS < deadline)); do + alive=0 + for pid in "${SERVER_PIDS[@]}"; do kill -0 "$pid" 2>/dev/null && alive=1; done + ((alive == 0)) && break + sleep 2 + done + for pid in "${SERVER_PIDS[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + log "server pid=$pid did not exit after SIGINT; terminating process group" + kill -TERM -- "-$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + sleep 5 + kill -KILL -- "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + done + SERVER_PIDS=() +} + +cleanup() { + local rc=$? pid + trap - EXIT INT TERM + for pid in "${CLIENT_PIDS[@]}"; do kill -TERM "$pid" 2>/dev/null || true; done + stop_servers + exit "$rc" +} +trap cleanup EXIT INT TERM + +wait_healthy() { + local port=$1 pid=$2 log_file=$3 deadline=$((SECONDS + SERVER_START_TIMEOUT)) + while ((SECONDS < deadline)); do + curl -fsS --max-time 5 "http://${HOST}:${port}/health" >/dev/null 2>&1 && return 0 + if ! kill -0 "$pid" 2>/dev/null; then tail -100 "$log_file" >&2 || true; return 1; fi + sleep 5 + done + tail -100 "$log_file" >&2 || true + return 1 +} + +gpu_csv_for() { + # $1=replica_index $2=replicas $3=gpus_per_instance -> prints CUDA_VISIBLE_DEVICES csv + local replica=$1 replicas=$2 k=$3 gpu_csv="" offset gpu + if [[ "$GPU_MODE" == share ]]; then + printf '%s' "$((replica % TOTAL_GPUS))" + return 0 + fi + for ((offset=0; offset "$server_dir/cuda_visible_devices.txt" + log "starting topo=$topo prec=$prec variant=$variant replica=$replica GPUs=$gpu_csv port=$port batching=$batching$([[ -n "$enc_flag" ]] && echo " [encoder-dp]")" + CUDA_VISIBLE_DEVICES="$gpu_csv" PYTHONUNBUFFERED=1 TOKENIZERS_PARALLELISM=false \ + SGLANG_USE_RUNAI_MODEL_STREAMER=false setsid "$SGLANG_BIN" serve \ + --model-path "$MODEL" --model-variant "$variant" --backend sglang --performance-mode speed \ + --num-gpus "$k" --tp-size "$tp" --ulysses-degree "$ulysses" --use-fsdp-inference false \ + --enable-torch-compile false --batching-max-size "$batching" --batching-delay-ms 0 \ + $([[ "$prec" == fp8 ]] && echo --quantization fp8) $enc_flag \ + --warmup-resolutions 1344x768 \ + --host 0.0.0.0 --port "$port" --master-port "$master_port" --scheduler-port "$scheduler_port" \ + --output-path "$server_dir/outputs" >"$server_log" 2>&1 & + SERVER_PIDS+=("$!") + done + for ((replica=0; replica"$client_dir/client.log" 2>&1 & + CLIENT_PIDS+=("$!") + log "started task=$task client=$replica port=$port requests=$((REQUESTS_PER_TASK / replicas)) in_flight=$in_flight" + done + for ((replica=0; replica> "$SUMMARY_TSV" || failed=1 + return "$failed" +} + +if [[ "${DRY_RUN:-0}" == 1 ]]; then + echo "===== B300 matrix plan (DRY_RUN) =====" + for topo_spec in $TOPO_LIST; do + IFS='|' read -r name replicas tp ulysses batching <<< "$topo_spec" + for prec in $QUANT_LIST; do + for task in $TASKS; do + echo " topo=$name prec=$prec task=$task replicas=$replicas tp=$tp ulysses=$ulysses batching=$batching gpu_mode=$GPU_MODE" + done + done + done + echo "RESULT_ROOT=$RESULT_ROOT" + exit 0 +fi + +for topo_spec in $TOPO_LIST; do + IFS='|' read -r name replicas tp ulysses batching <<< "$topo_spec" + k=$((tp * ulysses)) + topo_skip=0 + if [[ "$GPU_MODE" == share ]]; then + ((k == 1)) || { log "WARN: skip topo $name: GPU_MODE=share requires tp*ulysses==1"; topo_skip=1; } + ((replicas % TOTAL_GPUS == 0)) || { log "WARN: skip topo $name: replicas=$replicas not multiple of TOTAL_GPUS=$TOTAL_GPUS"; topo_skip=1; } + else + ((replicas * k == TOTAL_GPUS)) || { log "WARN: skip topo $name: replicas*K=$((replicas*k)) != TOTAL_GPUS=$TOTAL_GPUS (multi-instance-per-GPU topo needs GPU_MODE=share)"; topo_skip=1; } + fi + ((REQUESTS_PER_TASK % replicas == 0)) || { log "WARN: skip topo $name: requests/task not divisible by replicas=$replicas"; topo_skip=1; } + ((topo_skip == 1)) && continue + for prec in $QUANT_LIST; do + for task in $TASKS; do + [[ "$task" == fl2va ]] && variant=FL2VA || variant=Ref2VA + phase_dir="$RESULT_ROOT/${name}_${prec}/${task}"; mkdir -p "$phase_dir" + log "===== topo=$name prec=$prec task=$task replicas=$replicas tp=$tp ulysses=$ulysses batching=$batching =====" + phase_failed=0 + if start_servers "$name" "$prec" "$replicas" "$tp" "$ulysses" "$batching" "$variant" "$phase_dir"; then + run_clients "$name" "$prec" "$replicas" "$tp" "$ulysses" "$batching" "$task" "$phase_dir" || phase_failed=1 + else + phase_failed=1 + fi + stop_servers + if ((phase_failed == 1)); then + if [[ "$SKIP_ON_FAIL" == 1 ]]; then + log "WARN: phase failed (topo=$name prec=$prec task=$task); skipping and continuing" + else + die "phase failed: topo=$name prec=$prec task=$task; inspect $phase_dir" + fi + fi + done + done +done + +trap - EXIT INT TERM +log "b300 matrix complete: $SUMMARY_TSV" diff --git a/sglang-base/README.md b/throughput/sglang-base/README.md similarity index 85% rename from sglang-base/README.md rename to throughput/sglang-base/README.md index b880aa9..e37c67a 100644 --- a/sglang-base/README.md +++ b/throughput/sglang-base/README.md @@ -19,3 +19,5 @@ - `results/balanced-tp4-tp2-20steps-5s-20260822-175030`:均衡分片后的 TP4/TP2 最终结果。 报告结论:整机吞吐以 TP2×4 最优;单请求时延以 TP8×1 最优。原始源路径见根目录 `SOURCE_MAP.tsv`。 + +runner 可通过 `SSIM_REFERENCE_ROOT` 对新生成视频进行成对 SSIM。评分发生在吞吐请求结束且服务停止之后,不进入吞吐计时;具体口径和输出见 `../README.md`。 diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3 new file mode 100644 index 0000000..a452053 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png new file mode 100644 index 0000000..eba2df1 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg new file mode 100644 index 0000000..d6d8b0e Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp new file mode 100644 index 0000000..8fe1e69 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp new file mode 100644 index 0000000..e93ec01 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png new file mode 100644 index 0000000..ce181fe Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp new file mode 100644 index 0000000..8fe1e69 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3 new file mode 100644 index 0000000..a452053 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp new file mode 100644 index 0000000..57fc800 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3 new file mode 100644 index 0000000..4e96dd5 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp new file mode 100644 index 0000000..e6791e5 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp new file mode 100644 index 0000000..df92402 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp new file mode 100644 index 0000000..8fe1e69 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3 new file mode 100644 index 0000000..a452053 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg new file mode 100644 index 0000000..f0b5b5a Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg new file mode 100644 index 0000000..96af433 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp new file mode 100644 index 0000000..8fe1e69 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png new file mode 100644 index 0000000..5c5066a Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3 new file mode 100644 index 0000000..a452053 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/场景.jpg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/场景.jpg new file mode 100644 index 0000000..7737aa1 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/场景.jpg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.mp3 new file mode 100644 index 0000000..a6c5f93 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.png new file mode 100644 index 0000000..588afd2 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦.webp b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦.webp new file mode 100644 index 0000000..57fc800 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦.webp differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦服装.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦服装.png new file mode 100644 index 0000000..dfaa93c Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦服装.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐.png new file mode 100644 index 0000000..5d5d0ed Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐音色.mp3 new file mode 100644 index 0000000..0b405cb Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽.jpg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽.jpg new file mode 100644 index 0000000..36d0298 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽.jpg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽音色.mp3 new file mode 100644 index 0000000..5047755 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪.png new file mode 100644 index 0000000..748feea Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪音色.mp3 new file mode 100644 index 0000000..e454117 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐.png new file mode 100644 index 0000000..9b9654a Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐音色.mp3 new file mode 100644 index 0000000..0b405cb Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽.jpg b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽.jpg new file mode 100644 index 0000000..36d0298 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽.jpg differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽音色.mp3 new file mode 100644 index 0000000..5047755 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐.png new file mode 100644 index 0000000..5d5d0ed Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐音色.mp3 new file mode 100644 index 0000000..0b405cb Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/场景图.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/场景图.png new file mode 100644 index 0000000..4663741 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/场景图.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽.png new file mode 100644 index 0000000..0624af0 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽音色.mp3 b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽音色.mp3 new file mode 100644 index 0000000..5047755 Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽音色.mp3 differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/王刚.png b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/王刚.png new file mode 100644 index 0000000..95fe60a Binary files /dev/null and b/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/王刚.png differ diff --git a/throughput/sglang-base/inputs/ref2va-feishu-20260831/records.json b/throughput/sglang-base/inputs/ref2va-feishu-20260831/records.json new file mode 100644 index 0000000..716b6b7 --- /dev/null +++ b/throughput/sglang-base/inputs/ref2va-feishu-20260831/records.json @@ -0,0 +1,296 @@ +{ + "ok": true, + "identity": "user", + "data": { + "data": [ + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.png(服装),图三=楚晨.jpg(楚晨形象),音色一=女生音色.mp3(声音)\n时辰:夜晚\n色调:暖色调\n色温:12000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,声音参考 音色一,服装参考 图二,楚晨形象参考 图三\n镜头1(00-03s):\n景别:近景\n运镜:轻微手持前推\n镜头角度:平视偏仰\n前景:被夜风吹动的帐帘边角、火把虚焦\n画面内容:江岁欢猛地停住,隔着半掀帐帘看见楚晨立在夜色里,人物被帐帘切割成框中框构图,第一眼就建立“熟人重逢”的冲击。\n人物动作:江岁欢脚步顿住,肩背绷紧,唇微张\n表情/情绪:震惊失神,眼睛瞬间睁大,眉毛猛地抬起,嘴唇发颤,情绪从不敢置信迅速滑向酸涩\n光线光影:冷色月光打在脸侧,另一侧被火把暖光擦亮,冷暖撕裂感明显,暗部压低。\n台词/OS:江岁欢(声音发颤):“师……师父?!”\n衔接:台词落下后不切空,直接切楚晨反应,形成对视钩子\n镜头2(03-06s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢肩部虚焦遮挡\n画面内容:楚晨站在帐外半明半暗处,身后夜色沉,人物略偏画面一侧,留出另一侧空白,强化身份落差与信息冲击。\n人物动作:他轻轻点头,没有上前,只稳稳看着她\n表情/情绪:克制温和,眼神放松下来,眼尾微弯,嘴角极轻地提起,情绪从确认过渡到安抚\n光线光影:侧后方冷月勾出轮廓光,火把暖光落在眼底,形成一线笑意高光。\n台词/OS:楚晨:“我也穿过来了。比你早几年。现在,我叫楚晨,东宸王。”\n衔接:身份信息说完留0.5秒停顿,切江岁欢特写接情绪余韵\n镜头3(06-08s):\n景别:特写\n运镜:静止微呼吸感\n镜头角度:平视\n前景:无\n画面内容:江岁欢脸部占满竖屏中上区域,背景帐外火光虚化\n人物动作:她一动不动,只是呼吸微乱\n表情/情绪:怔住发酸,眼神停住,睫毛轻颤,眼眶一点点泛红,嘴唇抿紧又松开,情绪从震惊过渡到终于确认\n光线光影:冷光为主,眼底被暖火映出一点湿润亮点,细节压住不过分煽情。\n台词/OS:无\n衔接:切回双人问答,承接她恢复思考\n镜头4(08-10s):\n景别:双人中景\n运镜:稳镜,小幅横移调整站位\n镜头角度:平视\n前景:帐绳、旗角\n画面内容:两人相对而立,江岁欢在前景偏左,楚晨在后景偏右,先清楚交代距离与朝向,方便后续对话承接。\n人物动作:江岁欢微微上前半步\n表情/情绪:试探迟疑,眉心轻收,眼神紧盯对方,像怕一眨眼人就消失\n光线光影:月光压主色,火把在衣边形成局部暖边\n台词/OS:江岁欢:“你怎么认出我的?”\n衔接:按视线方向切楚晨回答\n镜头5(10-13s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢发丝虚焦扫过画面边缘\n画面内容:楚晨目光落在她身上,背景彻底虚化,突出“认出她”的答案。\n人物动作:他视线下落一瞬,像是回忆她处理伤口时的手法\n表情/情绪:笃定温柔,眼神沉稳,眉头舒展,嘴角有淡淡笑意,情绪从理性判断过渡到熟稔亲近\n光线光影:侧光刻出鼻梁与颧骨,眼神光干净,暗部保留层次。\n台词/OS:楚晨:“你给人缝伤口的针法,全世界独一份。看一眼就知道。”\n衔接:回答结束切江岁欢反应,再以行动收段\n镜头6(13-15s):\n景别:中近景\n运镜:轻微跟拍起势\n镜头角度:平视\n前景:帐帘掀动\n画面内容:楚晨转身朝帐内方向示意,江岁欢站位顺势跟上,完成从重逢到办正事的节奏切换\n人物动作:楚晨侧身抬手示意入帐,江岁欢立刻跟步\n表情/情绪:楚晨沉稳收束,江岁欢迅速压下情绪,转为专注\n光线光影:帐外冷光,帐内透出暖黄光,门口形成明显冷暖分界。\n台词/OS:楚晨:“走吧,先救人。”\n衔接:下一段单独转场,承接两人入帐动作\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "IhtLb1Sm2oAt2ZxCEMHc5Gvqndf", + "name": "女生音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "RsW0bqhb5oiR6sx5lkUcAZ2lndc", + "name": "服装.png", + "size": 2270190 + }, + { + "file_token": "D0sObtnsnomffExy7EscGLcsn4g", + "name": "楚晨.jpg", + "size": 413454 + }, + { + "file_token": "GemJbvmjkopxN2xlWGxcsZyWnab", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.webp(场景),图二=江岁欢.webp(江岁欢形象),图三=服装.png(服装),图四=顾锦.webp(顾锦人脸),音色一=江岁欢声音.mp3(江岁欢声音),音色二=顾锦声音.MP3(顾锦声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n场景参考 图一\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图二,声音参考 音色一,江岁欢服装参考 图三,顾锦人脸参考 图四,顾锦声音参考 音色二\n镜头1(00-02s):\n景别:中近景双人\n运镜:轻微推近\n镜头角度:平视偏侧\n前景:半掩床幔、烛火虚化\n画面内容:江岁欢坐在床边或榻边,顾锦站在她身前一步距离,二人同处狭窄夜室,位置关系先交代清楚\n人物动作:江岁欢抬眼看向顾锦,压低声音说出关键词\n表情/情绪:江岁欢克制紧张,眼神迟疑后定住,睫毛轻颤,嘴唇微启又收;顾锦原本压着情绪,听到关键字前神色冷沉\n光线光影:冷色月光从侧后打入,烛火暖光落在下半张脸,形成冷暖对抗与半边阴影\n台词/OS:江岁欢:“……他们提到‘毒蝎’。”\n衔接:台词落下立刻切顾锦动作爆发特写,前3秒直接抓人,符合短剧“情绪钩子”策略。\n镜头2(02-04s):\n景别:手部特写\n运镜:瞬间切入,轻微手持感\n镜头角度:斜侧近距\n前景:江岁欢衣袖边缘\n画面内容:顾锦的手猛地扣住江岁欢手腕,指节发白,力道骤紧\n人物动作:顾锦骤然发力攥紧;江岁欢手腕被拽得偏过去\n表情/情绪:动作镜头,以力道和急促感传达失控杀意\n光线光影:一束冷光打在手背与腕骨上,暗部压低,肤色与阴影反差明显\n台词/OS:无\n衔接:动作接动作,下一镜头切顾锦面部近景承接失控反应。\n镜头3(04-07s):\n景别:近景\n运镜:快速推近后微停\n镜头角度:微仰拍\n前景:虚化的顾锦肩线占据画面下缘\n画面内容:顾锦逼近画面,眼底寒意陡然翻起,压迫感直冲镜头\n人物动作:顾锦抓着江岁欢手腕不放,喉结轻滚,几乎是一字一顿地逼问\n表情/情绪:压抑暴怒,眼神发冷,眉心骤然收紧,牙关轻咬,嘴角绷直,情绪从克制过渡到近乎失控的杀意\n光线光影:侧后主光削出下颌线与鼻梁高光,另一侧陷入深影,形成强烈明暗对照\n台词/OS:顾锦:“你确定是……毒蝎?”\n衔接:台词末尾停0.3秒,切江岁欢吃痛反应特写。\n镜头4(07-09s):\n景别:近景\n运镜:轻微后撤\n镜头角度:平视\n前景:顾锦袖口虚化压前景\n画面内容:江岁欢被他的力道带得微微偏身,手腕发红\n人物动作:她下意识抽气,另一只手轻扶被抓住的手腕\n表情/情绪:吃痛隐忍,眉尖轻蹙,眼尾微红,嘴唇抿紧后松开,情绪从忍痛过渡到确认\n光线光影:暖烛光打在脸侧,冷月光勾出发丝边缘,痛感更清晰\n台词/OS:江岁欢:“是,我没有听错。”\n衔接:接顾锦松手动作,切回双人中景显示关系变化。3811\n镜头5(09-11s):\n景别:中近景双人\n运镜:定镜后轻微焦点转移\n镜头角度:平视\n前景:床幔边缘形成框中框\n画面内容:顾锦猛地松手退半步,江岁欢留在前景,顾锦落入后景阴影,权力重心瞬间转移\n人物动作:顾锦手指骤松,垂在身侧;江岁欢收回手腕,微微揉按\n表情/情绪:顾锦意识到失态后更冷,眼神阴鸷沉下去,呼吸压得很低;江岁欢警惕又不敢追问\n光线光影:前景暖、后景冷,顾锦半张脸没入阴影,形成心理隔绝\n台词/OS:无\n衔接:通过焦点从前景江岁欢转到后景顾锦,下一镜头进入顾锦内在信息抛出。\n镜头6(11-15s):\n景别:近景\n运镜:缓慢推近\n镜头角度:微侧\n前景:一缕虚化烛火\n画面内容:顾锦立在桌边阴影里,侧脸冷硬,像是在迅速拼合线索\n人物动作:他缓慢抬眼,视线越过江岁欢落向虚空\n表情/情绪:阴沉克制,眼神停住,睫毛下压,嘴角绷紧,情绪从失态回收成可怕的冷静\n光线光影:冷月光扫过眼睛,留下短促寒光;背景暖烛微颤\n台词/OS:顾锦:“毒蝎……就是我一直在查的人。”\n衔接:台词说完留0.5秒余韵,下一段承接他情绪爆发砸桌动作。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C6iEbjhRqoyvRwx7UyNcPGiTndn", + "name": "江岁欢声音.mp3", + "size": 116033 + }, + { + "file_token": "LV5MbbntTogizrxYR7OcG2NLnod", + "name": "顾锦声音.MP3", + "size": 57728 + } + ], + [ + { + "file_token": "DEGrbMr3foZ7SOxWYsEcW834nvd", + "name": "服装.png", + "size": 2231656 + }, + { + "file_token": "RjffbIAVcoogcWxLNPxcsarBnnd", + "name": "顾锦.webp", + "size": 9286 + }, + { + "file_token": "Tupibsh5OoYfCZxSr0ScIsMKnZd", + "name": "场景.webp", + "size": 10964 + }, + { + "file_token": "RrLdbdEbWoyZRdxoUjEcuTK6nXK", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.webp(服装),图三=惠通法师.webp(慧通法师形象),音色一=音色.mp3(江岁欢声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,服装参考 图二,声音参考 音色一,慧通法师形象参考 图三\n生成段落1:宝华殿法事,时长约0-15s\n镜头1(00-03s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:虚化香烟、僧袍下摆\n画面内容:宝华殿内法事进行,文武百官及家眷跪满殿中,江岁欢独自跪在角落,和整片肃穆人群形成轻微孤立感,不对称构图突出她的心理抽离。\n人物动作:江岁欢低头跪着,手指轻轻攥住膝上衣料。\n表情/情绪:冷静压抑,眼神微沉,眉心轻蹙,嘴唇抿紧后缓缓松开,情绪从观察过渡到失望。\n光线光影:殿内低调照明,暖色烛火混合冷色天光,脸侧有细窄高光,暗部压低增强肃杀感。\n台词/OS:江岁欢OS:这么多人,竟没一个真难过。\n衔接:台词不断,直接接背后法师靠近,开头即进情绪钩子。\n镜头2(03-05s):\n景别:中景\n运镜:肩后轻移\n镜头角度:微俯\n前景:前排跪着的官眷、蒲团边角\n画面内容:慧通法师从后方走近,停在江岁欢身后半步,先清楚交代站跪位置关系。\n人物动作:法师抬手,在她肩上轻拍三下。\n表情/情绪:江岁欢先是一顿,睫毛轻颤,呼吸停住,情绪从失神过渡到警觉;法师神情平和。\n光线光影:袈裟边缘被侧后方烛光勾亮,江岁欢肩头有一线暖光。\n台词/OS:无\n衔接:第三下拍肩完成后切法师转身背影,动作接动作。\n镜头3(05-07s):\n景别:特写\n运镜:定镜\n镜头角度:平视\n前景:半虚化念珠\n画面内容:慧通法师双手合十,一言不发转身离开,只留给她一个背影。\n人物动作:法师平稳离去,江岁欢视线跟过去。\n表情/情绪:江岁欢眼神停住,眉尾微抬,嘴角轻绷,情绪从疑惑过渡到若有所思。\n光线光影:背影落在冷暖交界处,脸侧有一点冷光。\n台词/OS:无\n衔接:切旁边女眷低声耳语,补充信息。\n镜头4(07-10s):\n景别:近景\n运镜:小幅推近\n镜头角度:平视\n前景:女眷衣袖、垂落发簪\n画面内容:女眷A微侧过身,压低声音对江岁欢耳语,眼睛瞪大。\n人物动作:女眷A朝法师背影轻轻示意。\n表情/情绪:惊喜激动,眼睛睁圆,眉毛高挑,嘴角压着兴奋,情绪从震惊过渡到笃定。\n光线光影:烛火暖光扫过眼周,发簪闪出细碎亮点。\n台词/OS:女眷A:天呐,那是慧通法师!明安寺住持,能看人一生!定是与你有缘!\n衔接:耳语结束切江岁欢反应特写,保留半秒余韵。\n镜头5(10-12s):\n景别:特写\n运镜:缓慢推近\n镜头角度:平视\n前景:飘过的香烟\n画面内容:江岁欢望着慧通法师离开的方向,背景人影虚化,强制锁定她的面部变化。\n人物动作:她微微抬眼,袖中手指收紧。\n表情/情绪:心中一动,眼神短暂停住,睫毛轻颤,嘴唇轻轻分开又收回,情绪从疑惑过渡到心生波澜。\n光线光影:冷光落进眼底,脸下半部有烛火暖影。\n台词/OS:无\n衔接:用钟声做听觉转场,切法事结束。\n镜头6(12-15s):\n景别:中景\n运镜:平稳横移\n镜头角度:平视\n前景:起身的人群、晃动袍袖\n画面内容:钟声响起,法事结束,众人纷纷起身,江岁欢也准备离开,一名僧人上前拦住她。人物站位清晰。\n人物动作:江岁欢刚起身迈步,僧人合十挡在她前方。\n表情/情绪:江岁欢短暂戒备,眼神一凝,嘴角绷住;僧人恭敬平稳。\n光线光影:殿门方向较亮,殿内依旧偏暗,边缘轮廓光明显。\n台词/OS:僧人:江施主留步,住持想见您。\n衔接:下一段单独转场,不在本段硬切新场景。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "SCHJbmbBCoj52mxhyURc4nhfnQb", + "name": "音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "Y6U0b9mAcoGJ4Dx1wBxcNx3HnEf", + "name": "江岁欢.webp", + "size": 11222 + }, + { + "file_token": "DMTcbXafDoICwDx4p4tcXgXUnod", + "name": "服装.webp", + "size": 8484 + }, + { + "file_token": "TDLdba2mtoIVBCxNhexcbjaUn6b", + "name": "惠通法师.webp", + "size": 12780 + } + ] + ], + [ + "参考对应:图一=场景图.jpg(场景),图二=江岁欢.webp(人脸),图三=江岁欢服装参考.png(服装),图四=李公公.jpeg(人物形象),音色一=江岁欢音色.mp3(声音)\n时辰:正午\n色调:暖色调\n色温:8000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢人脸参考 图二,服装参考 图三,李公公人物形象参考 图四,声音参考 音色一\n镜头1(00-02s):\n景别:中近景\n运镜:轻微推近\n镜头角度:平视\n前景:药柜边缘、垂下的药签\n画面内容:医馆内,江岁欢正俯身为病人针灸,莹陶在一旁药案前抓药,空间关系清楚,前后层次分明\n人物动作:江岁欢稳稳落下最后一针,莹陶低头称药\n表情/情绪:江岁欢神情专注,眼神沉静,眉心微收后松开;莹陶神色认真,动作利落\n光线光影:白日柔和窗光洒入,木格窗投下浅浅光影,药柜暗部压低,脸侧有柔和侧光\n台词/OS:无\n衔接:医馆门口传来脚步声,下一镜头切门口来人\n镜头2(02-04s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:门框、半掀的布帘\n画面内容:李公公带着两个小太监走进医馆,停在门内打量四周,气场压住屋内日常感\n人物动作:李公公缓步入内,抬眼环视一圈,微微点头;两个小太监分立身后\n表情/情绪:李公公神色审视,眼神细细扫过,嘴角平直后略微一沉,带着宫里人的压迫感\n光线光影:门外亮光从背后压进来,形成轻微逆光轮廓,室内暖木色与门口冷亮形成对比\n台词/OS:李公公:哪位是江大夫?\n衔接:问话落下,切回江岁欢反应\n镜头3(04-06s):\n景别:中近景\n运镜:先稳后轻推\n镜头角度:平视\n前景:病人肩侧虚化、针包边角\n画面内容:江岁欢收针起身,转向李公公,身后病人与药案仍在画面里,人物位置关系明确\n人物动作:她收回银针,直起身,抬眸应声\n表情/情绪:神色平静,眼神清明,嘴唇轻抿后自然松开,情绪从专注过渡到沉着应对\n光线光影:窗侧柔光照亮半张脸,发丝有细微轮廓光,背景略暗突出人物\n台词/OS:江岁欢:我是。公公有何事?\n衔接:接对方来意说明,切李公公中近景\n镜头4(06-09s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:微仰\n前景:小太监肩侧虚焦\n画面内容:李公公站定,对着江岁欢宣旨般说明来意,两个小太监在后形成宫廷压迫感\n人物动作:李公公略抬下巴,抬手示意请人\n表情/情绪:神情克制,眼神带审度,语气不容推辞,面部松弛却自带威压\n光线光影:门口逆光勾出衣袍边缘,脸上是偏冷的正侧光,人物层次清晰\n台词/OS:李公公:皇上龙体欠安,特来请江大夫入宫诊治。\n衔接:来意说完,切莹陶受惊反应和袖口动作\n镜头5(09-11s):\n景别:近景\n运镜:轻微下摇到手部\n镜头角度:平视\n前景:药包、散落药材\n画面内容:莹陶站在药案旁,明显被“入宫诊治”吓到,伸手拉住江岁欢袖子\n人物动作:莹陶手一抖,药材微散,立刻扯住江岁欢袖口,小幅度靠近她\n表情/情绪:惊慌失措,眼睛睁大,眉毛扬起后拧紧,嘴巴微张,情绪从愣住过渡到担忧\n光线光影:案上暖光映亮手部,人物脸侧是柔和侧光,袖口布料有微弱高光\n台词/OS:莹陶:小姐,治不好可是要杀头的……\n衔接:袖口被拉住,下一镜头切江岁欢安抚特写\n镜头6(11-14s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:莹陶手指攥着的袖口虚化在下方\n画面内容:江岁欢微侧脸看向莹陶,语气压低安抚,随即抬眼恢复从容\n人物动作:她轻轻按了按莹陶的手,示意松开\n表情/情绪:沉稳克制,眼神柔和却坚定,睫毛轻颤后定住,嘴角极轻地安抚性放松\n光线光影:侧窗冷白光打在眼睛和鼻梁,脸侧明暗过渡柔和,发丝边缘有细光\n台词/OS:江岁欢(低声):没事的。\n衔接:安抚后自然转向李公公,下一段承接她应下并去收拾药箱\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C58DbNENYo853HxyINVc4ZIunAb", + "name": "江岁欢音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "ZRXUbIaicojWxWx7PaEcXhg7nJg", + "name": "江岁欢服装参考.png", + "size": 9371990 + }, + { + "file_token": "BoeGbYmysomJFXxkrM6cQHjun2e", + "name": "李公公.jpeg", + "size": 9901740 + }, + { + "file_token": "Ub5VbGteiovPjmxED9jcOp7an4F", + "name": "场景图.jpg", + "size": 806053 + }, + { + "file_token": "CLB4btXmdodQRQxDgxCccNPpnIg", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.jpg(场景),图二=谢宁.png(江岁欢形象),图三=顾锦.webp(顾锦人脸),图四=顾锦服装.png(顾锦服装),音色一=谢宁.mp3(江岁欢声音)\n时辰:正午\n色调:暖色调\n色温:5000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢形象参考 图二,声音参考 音色一,顾锦人脸参考 图三,顾锦声音参考(本 case 无匹配音频,未绑定),服装参考 图四\n镜头1(00-02s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:宫门铜钉、门框阴影\n画面内容:江岁欢走出宫门,顾锦靠在宫墙边,二人一左一右,距离约两步,位置关系清晰\n人物动作:江岁欢脚步刚出门便停住,顾锦侧头看她\n表情/情绪:江岁欢先是意外,眼神微怔后迅速稳住;顾锦神色淡淡,像等了很久却不显露\n光线光影:外景日光偏亮,宫墙阴影压低,人物脸侧有清晰自然侧光\n台词/OS:顾锦:“听说有人进宫看病,来看看,是不是被砍头了。”\n衔接:用台词直接抓人,下一镜切江岁欢反应\n镜头2(02-04s):\n景别:近景\n运镜:轻微推近\n镜头角度:平视\n前景:无\n画面内容:江岁欢转头看向顾锦,宫门红墙虚化在后\n人物动作:她抬眉,带一点不服气地回看过去\n表情/情绪:先惊后嗔,眼睛微睁,眉尾轻挑,嘴角压着笑意,情绪从意外过渡到回怼\n光线光影:日光打亮眼睛,睫毛和鼻梁有自然高光\n台词/OS:江岁欢:“你怎么在这儿?”\n衔接:下一镜接她顺势回怼\n镜头3(04-07s):\n景别:双人中近景\n运镜:轻微横移\n镜头角度:平视\n前景:宫墙边飘动的树影\n画面内容:江岁欢与顾锦同框站立,顾锦仍靠墙,江岁欢微偏身面对他\n人物动作:江岁欢白他一眼,抬手晃了晃新得的腰牌\n表情/情绪:带点得意和松快,眼神明亮,嘴角上扬;顾锦表面淡然,眼底却微有波动\n光线光影:自然光下人物面部通透,腰牌上反出一线亮光\n台词/OS:江岁欢:“让你失望了。没砍成,还升官了。”\n衔接:动作带出腰牌,下一镜切顾锦看牌反应特写\n镜头4(07-10s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:银牌虚化在画面前侧\n画面内容:顾锦的视线落在腰牌上,再缓缓抬到江岁欢脸上\n人物动作:他站直离开宫墙,目光停留片刻\n表情/情绪:冷淡外壳微微松动,眼神柔和一瞬,嘴角极轻地动了动又压住,情绪从试探过渡到认可\n光线光影:侧光勾出轮廓,眼下和唇线有细微亮面,背景宫墙压暗\n台词/OS:顾锦:“御医……不错。以后进宫,能光明正大了。”\n衔接:高光反应后切江岁欢接话\n镜头5(10-12s):\n景别:近景\n运镜:定镜\n镜头角度:平视\n前景:无\n画面内容:江岁欢侧身看他,眉眼带一点探究\n人物动作:她收回腰牌,向前一步逼近半步\n表情/情绪:半真半试探,眼神停住,唇角轻翘,像看穿又不完全点破\n光线光影:脸侧受光清晰,发丝有微弱亮边\n台词/OS:江岁欢:“你是替我高兴,还是替你眼线高兴?”\n衔接:下一镜切顾锦转身离开,形成轻拉扯\n镜头6(12-15s):\n景别:中景\n运镜:跟拍起步\n镜头角度:平视\n前景:宫门石阶、路边树影\n画面内容:顾锦转身往前走,江岁欢愣了一瞬后跟上,两人背影前后形成层次\n人物动作:顾锦淡淡丢下一句便迈步,江岁欢停半拍再追上\n表情/情绪:顾锦语气平静却不回避,江岁欢先怔住,随即眼神一松\n光线光影:午后自然光铺在石阶上,人物背侧有清晰边缘光\n台词/OS:顾锦:“都有。”\n衔接:动作闭合,下一段切入新场景王府内室\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失", + [ + { + "file_token": "J8d4bLe74o4Kacxv4qdc9JzDn0d", + "name": "谢宁.mp3", + "size": 135462 + } + ], + [ + { + "file_token": "QmnUbwLm4otsfqxEbysctJrZnAb", + "name": "顾锦服装.png", + "size": 9105217 + }, + { + "file_token": "LsFVbBSH1oZWjlx17oIcXKjZnnf", + "name": "谢宁.png", + "size": 3071862 + }, + { + "file_token": "FsfmbexjgoiFNKx0IkRc8rijnIe", + "name": "场景.jpg", + "size": 1732210 + }, + { + "file_token": "Urm4b5ZrroF9m8x9g70cOh1XnLc", + "name": "顾锦.webp", + "size": 9286 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐),图二=白雪.png(白雪),图三=沙丽丽.jpg(沙丽丽),音色一=吴耐音色.mp3(吴耐声音),音色二=白雪音色.mp3(白雪声音),音色三=沙丽丽音色.mp3(沙丽丽声音)\n【合规要求】:全文无水印、无字幕、无画面文字、无LOGO,无杂乱背景;无穿模,五官清晰,人体结构正常,无多余杂物。面部稳定,五官清晰,动作自然,人体结构正常,无穿模无变形,无水印,无字幕。\n场景参考,吴耐参考 图一,吴耐声音参考 音色一,白雪参考 图二,白雪声音参考 音色二,沙丽丽参考 图三,沙丽丽声音参考 音色三。\n镜号1:\n时间: 0—4秒\n景别: 主观镜头\n机位: 竖屏固定仰拍\n生成提示词:竖屏固定主观视角。仰拍。从左侧靠窗病床往上看。百叶窗透进阳光。穿着护士服的白雪和沙丽丽站在床边低头看,白雪满脸惊喜。电影级写实。\n台词/音效:【吴耐】(呼吸声/微微睁眼)\n【白雪】(惊喜):大爷你醒了!\n镜号2:\n时间: 0—4秒\n景别: 中景\n机位: 竖屏固定平视\n生成提示词:竖屏固定中景。左侧靠窗病床旁。白雪转头,严厉地责问旁边的沙丽丽。沙丽丽拍了拍胸口松了口气,随后心虚地低下头。背景有蓝色的隔断帘。电影级写实。\n台词/音效:【沙丽丽】(松口气声)\n【白雪】:沙丽丽!你到底对大爷做了什么!\n【沙丽丽】(内疚):我...\n镜号3:\n时间: 0—6秒\n景别: 近景\n机位: 竖屏固定俯拍\n生成提示词:竖屏固定近景。左侧靠窗病床上。白雪一边帮吴耐整理蓝白条纹的被子,一边语重心长地劝说。百叶窗的光条打在她身上。电影级写实。\n台词/音效:【白雪】:大爷,你以后还是离沙丽丽远一点吧,说不定哪天就被她送走了。", + [ + { + "file_token": "SK5GbFkZHojYvbx8c6CcIkEGnud", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "K8x4bb80yocfpRxjmBZcskVYnqe", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "GKgJb1LYOoVeWpxLhDPcckcInxe", + "name": "白雪音色.mp3", + "size": 112272 + } + ], + [ + { + "file_token": "UQpvbESyJoy4yBxVG6PcyOqOnsd", + "name": "白雪.png", + "size": 4557283 + }, + { + "file_token": "VnCMbvlIUoiiPPxCSf2cxgxQnKn", + "name": "吴耐.png", + "size": 1234901 + }, + { + "file_token": "ZPhbbQZqGoKm6rxaf0vcWKWan8c", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=沙丽丽.jpg(沙丽丽),图二=吴耐.png(吴耐),音色一=沙丽丽音色.mp3(沙丽丽声音),音色二=吴耐音色.mp3(吴耐声音)\n沙丽丽参考 图一,吴耐参考 图二,站在画面左侧看着,吴耐站在画面右侧看着,两人中间隔着一步距离。音色参考:沙丽丽 音色一,吴耐 音色二。\n00:00-00:04 甩袖走人\n动作设计:吴耐被笑得更挂不住脸,没好气地甩了下胳膊,转身往单元门走;脚步迈得又快又急,背挺得笔直,一副 “不跟你一般见识” 的赌气模样。\n镜头设计:中景跟拍半步,完整拍下他转身甩手的动作;背影带着点气呼呼的劲儿,脚步匆匆,颇有几分落荒而逃的味道。\n表演设计:典型的嘴硬好面子,被逗得下不来台,只能撂挑子走人;脚步都带着点赌气的急促,却又没真的生气,就是老头式的别扭。\n台词:\n吴耐(硬邦邦撂话,头也不回):行了,我走了!\n00:04-00:08 补刀拆台\n动作设计:沙丽丽在他身后扬着声音喊,身子微微前倾,嘴角还带着没消的笑意,故意戳破他溜之大吉的借口。\n镜头设计:切沙丽丽正面近景,她对着吴耐的背影喊话,眼底全是了然的调侃;画面边缘带过吴耐远去的背影。\n表演设计:语气带着了然的戏谑,明知道他是找借口躲清净,故意拆台逗他;声音扬得刚好,既能让吴耐听见,又不显得吵闹。\n台词:\n沙丽丽(扬着声,带着笑意拆台):上哪去啊,不回家洗澡了?\n00:08-00:13嘴硬跑路\n动作设计:吴耐脚步猛地一顿,像是被戳中了心事,随即走得更快了;他头也不回地喊出一句话,脚步迈得更大,直奔小区门口而去。\n镜头设计:远景固定机位,拍吴耐越走越快的背影,朝着小区外的方向渐渐远去;画面留足空白,留下轻松的余韵。\n表演设计:被拆穿后的嘴硬,声音都带着点心虚的急促;嘴上硬气,脚步却很诚实,生怕再被调侃两句,落荒而逃的样子藏着可爱的反差。\n台词:\n吴耐(头也不回,气急败坏的硬气):我网吧去!", + [ + { + "file_token": "GmpAbEi3eooffExSt4XcjXtwnIg", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "CRdObHeOBonZ8NxYlLlc9puYnsb", + "name": "吴耐音色.mp3", + "size": 75909 + } + ], + [ + { + "file_token": "CnlIb4vNaoJvfJxfAD1cvlmyn7O", + "name": "吴耐.png", + "size": 4237071 + }, + { + "file_token": "ZndcbquaMoPYkwxLuOvcDKPHnEg", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐大爷),图二=场景图.png(服装店场景),图三=王刚.png(王刚),图四=沙丽丽.png(沙丽丽),音色一=吴耐音色.mp3(吴耐),音色二=沙丽丽音色.mp3(沙丽丽)\n参考 图一 吴耐大爷,图二 服装店场景,图三 王刚,图四 沙丽丽帮我生成:\n服装店内:\n▲ 沙丽丽说着冲上前要打人。\n▲ 吴耐眯着眼睛拦住沙丽丽。\n吴耐:丫头你做什么?\n沙丽丽:这种渣男该打!\n吴耐(正气凌然):这种人渣,交给我对付。\n沙丽丽(惊):死老头你想干嘛?\n15s", + [ + { + "file_token": "CDQkbfDXvojkvDxpIVLcNnN2nNb", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "UHambcEh7oroqkxBjE9c4sNsncG", + "name": "沙丽丽音色.mp3", + "size": 124810 + } + ], + [ + { + "file_token": "N4vnbjqTAozMG3xRMEYcHbeEnns", + "name": "王刚.png", + "size": 2378894 + }, + { + "file_token": "FQo3bSaF0oz9n2x8MndcFsJxnfc", + "name": "沙丽丽.png", + "size": 1700396 + }, + { + "file_token": "VX8QbMXQ5on0O6xokoZcyBajnVg", + "name": "场景图.png", + "size": 2156951 + }, + { + "file_token": "KdGwbcoN3oyHaexcGvTcedCDnWg", + "name": "吴耐.png", + "size": 1234901 + } + ] + ] + ], + "field_id_list": [ + "fld6Pha6qB", + "fldoUHTCOk", + "fldwA3ytWr" + ], + "field_type_list": [ + "text", + "attachment", + "attachment" + ], + "fields": [ + "提示词", + "参考音频", + "参考图像" + ], + "has_more": false, + "query_context": { + "field_scope": "all_fields", + "record_scope": "all_records" + }, + "record_id_list": [ + "recvtQUD5nFMf0", + "recvtQUD5nyYxg", + "recvtQUD5nP5Ip", + "recvtQW6hmRkEt", + "recvtQWnsZrwQR", + "recvtQWnV7K4fX", + "recvtQXV4n4LMP", + "recvtQXV4n8MZ1" + ], + "rev": 36, + "timezone": "Asia/Shanghai" + } +} diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.pid b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.pid similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.pid rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/orchestrator.pid diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/summary.tsv b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/summary.tsv similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/summary.tsv rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/summary.tsv diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_2_port30030/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/client_3_port30040/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_0_port30010/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_1_port30020/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_2_port30030/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/server_3_port30040/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/summary.json b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/summary.json similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/summary.json rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/fl2va/summary.json diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_2_port30030/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/client_3_port30040/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_0_port30010/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_1_port30020/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_2_port30030/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/server_3_port30040/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/summary.json b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/summary.json similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/summary.json rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp2_replicas4/ref2va/summary.json diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_0_port30010/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/server_1_port30020/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/summary.json b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/summary.json similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/summary.json rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/fl2va/summary.json diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/client.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/client.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/client.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_0_port30010/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/server.log b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/server.log rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/server_1_port30020/server.log diff --git a/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/summary.json b/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/summary.json similarity index 100% rename from sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/summary.json rename to throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030/tp4_replicas2/ref2va/summary.json diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.pid b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.pid similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.pid rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/orchestrator.pid diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/summary.tsv b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/summary.tsv similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/summary.tsv rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/summary.tsv diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_2_port30030/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/client_3_port30040/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_0_port30010/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_1_port30020/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_2_port30030/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp2_replicas4/fl2va/server_3_port30040/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_0_port30010/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/server_1_port30020/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/summary.json b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/summary.json similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/summary.json rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/fl2va/summary.json diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/client_1_port30020/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_0_port30010/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/server_1_port30020/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/summary.json b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/summary.json similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/summary.json rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp4_replicas2/ref2va/summary.json diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/server_0_port30010/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/summary.json b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/summary.json similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/summary.json rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/fl2va/summary.json diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/client.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/client.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/client.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/client.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/results.jsonl b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/results.jsonl rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/client_0_port30010/results.jsonl diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/server.log b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/server.log similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/server.log rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/server_0_port30010/server.log diff --git a/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/summary.json b/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/summary.json similarity index 100% rename from sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/summary.json rename to throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844/tp8_replicas1/ref2va/summary.json diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/client.log new file mode 100644 index 0000000..6b58504 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/client.log @@ -0,0 +1 @@ +warmup case=case01_recvtQUD5nFMf0 success=False latency=27.81s error=RuntimeError: submit HTTP 400: {"detail":"MiniMax H3 media material is invalid"} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/result.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/result.json new file mode 100644 index 0000000..a3fbc2d --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_0_case01_port34010/result.json @@ -0,0 +1,57 @@ +{ + "warmup": { + "case_number": 1, + "case_id": "case01_recvtQUD5nFMf0", + "record_id": "recvtQUD5nFMf0", + "seed": 1101, + "port": 34010, + "replica_index": 0, + "num_inference_steps": 5, + "short_edge": 768, + "aspect_ratio": "9:16", + "duration_seconds": 15.0, + "references": [ + { + "label": "图一", + "type": "image", + "name": "江岁欢.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp", + "file_token": "GemJbvmjkopxN2xlWGxcsZyWnab", + "size": 11222, + "sha256": "28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d" + }, + { + "label": "图二", + "type": "image", + "name": "服装.png", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png", + "file_token": "RsW0bqhb5oiR6sx5lkUcAZ2lndc", + "size": 2270190, + "sha256": "89b591ad3312c821dd897f9c93c3ae88cdcf63cce37aea15d818932ae4552c65" + }, + { + "label": "图三", + "type": "image", + "name": "楚晨.jpg", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg", + "file_token": "D0sObtnsnomffExy7EscGLcsn4g", + "size": 413454, + "sha256": "7c208c7a449e1d361631b52af9a085cbbd83bce50d0b1e6777bc88d95c2d7321" + }, + { + "label": "音色一", + "type": "audio", + "name": "女生音色.mp3", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3", + "file_token": "IhtLb1Sm2oAt2ZxCEMHc5Gvqndf", + "size": 116033, + "sha256": "926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9" + } + ], + "started_at_epoch": 1788159887.585388, + "success": false, + "error": "RuntimeError: submit HTTP 400: {\"detail\":\"MiniMax H3 media material is invalid\"}", + "latency_s": 27.809362105093896, + "finished_at_epoch": 1788159915.394753 + } +} \ No newline at end of file diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/client.log new file mode 100644 index 0000000..7f48c96 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/client.log @@ -0,0 +1 @@ +warmup case=case02_recvtQUD5nyYxg success=False latency=27.73s error=RuntimeError: submit HTTP 400: {"detail":"MiniMax H3 media material is invalid"} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/result.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/result.json new file mode 100644 index 0000000..87c6420 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_1_case02_port34020/result.json @@ -0,0 +1,75 @@ +{ + "warmup": { + "case_number": 2, + "case_id": "case02_recvtQUD5nyYxg", + "record_id": "recvtQUD5nyYxg", + "seed": 1102, + "port": 34020, + "replica_index": 1, + "num_inference_steps": 5, + "short_edge": 768, + "aspect_ratio": "9:16", + "duration_seconds": 15.0, + "references": [ + { + "label": "图一", + "type": "image", + "name": "场景.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp", + "file_token": "Tupibsh5OoYfCZxSr0ScIsMKnZd", + "size": 10964, + "sha256": "86c354f77ae02914539b67d43cd86e1921c0ad803f910c87193d90f5ad1c9889" + }, + { + "label": "图二", + "type": "image", + "name": "江岁欢.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp", + "file_token": "RrLdbdEbWoyZRdxoUjEcuTK6nXK", + "size": 11222, + "sha256": "28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d" + }, + { + "label": "图三", + "type": "image", + "name": "服装.png", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png", + "file_token": "DEGrbMr3foZ7SOxWYsEcW834nvd", + "size": 2231656, + "sha256": "fb969a36612fb37407aaa2f9a49cecce5dac8c11ccbeef500a8a602048798d0e" + }, + { + "label": "图四", + "type": "image", + "name": "顾锦.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp", + "file_token": "RjffbIAVcoogcWxLNPxcsarBnnd", + "size": 9286, + "sha256": "30acde11d4ee1b645ad28de19ce1e21ff2feb9015102ef995d2b51e20740230d" + }, + { + "label": "音色一", + "type": "audio", + "name": "江岁欢声音.mp3", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3", + "file_token": "C6iEbjhRqoyvRwx7UyNcPGiTndn", + "size": 116033, + "sha256": "926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9" + }, + { + "label": "音色二", + "type": "audio", + "name": "顾锦声音.MP3", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3", + "file_token": "LV5MbbntTogizrxYR7OcG2NLnod", + "size": 57728, + "sha256": "a17932e57ff71a22e55f8f8f10c3dc8b92a49ef299ca236cc08981ebd477a0f0" + } + ], + "started_at_epoch": 1788159887.590002, + "success": false, + "error": "RuntimeError: submit HTTP 400: {\"detail\":\"MiniMax H3 media material is invalid\"}", + "latency_s": 27.732282903045416, + "finished_at_epoch": 1788159915.322288 + } +} \ No newline at end of file diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/client.log new file mode 100644 index 0000000..0112557 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/client.log @@ -0,0 +1 @@ +warmup case=case03_recvtQUD5nP5Ip success=False latency=27.66s error=RuntimeError: submit HTTP 400: {"detail":"MiniMax H3 media material is invalid"} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/result.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/result.json new file mode 100644 index 0000000..3408245 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_2_case03_port34030/result.json @@ -0,0 +1,57 @@ +{ + "warmup": { + "case_number": 3, + "case_id": "case03_recvtQUD5nP5Ip", + "record_id": "recvtQUD5nP5Ip", + "seed": 1103, + "port": 34030, + "replica_index": 2, + "num_inference_steps": 5, + "short_edge": 768, + "aspect_ratio": "9:16", + "duration_seconds": 15.0, + "references": [ + { + "label": "图一", + "type": "image", + "name": "江岁欢.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp", + "file_token": "Y6U0b9mAcoGJ4Dx1wBxcNx3HnEf", + "size": 11222, + "sha256": "28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d" + }, + { + "label": "图二", + "type": "image", + "name": "服装.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp", + "file_token": "DMTcbXafDoICwDx4p4tcXgXUnod", + "size": 8484, + "sha256": "196b1d6b102437c7c4d5fc46a16c687875e2f3b636dd372a30a74d6dbf6f14ee" + }, + { + "label": "图三", + "type": "image", + "name": "惠通法师.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp", + "file_token": "TDLdba2mtoIVBCxNhexcbjaUn6b", + "size": 12780, + "sha256": "92c6128fba4dd106f472634f0807f86a10b8067f953a94c86a6f4eb7903e9e61" + }, + { + "label": "音色一", + "type": "audio", + "name": "音色.mp3", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3", + "file_token": "SCHJbmbBCoj52mxhyURc4nhfnQb", + "size": 116033, + "sha256": "926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9" + } + ], + "started_at_epoch": 1788159887.6131072, + "success": false, + "error": "RuntimeError: submit HTTP 400: {\"detail\":\"MiniMax H3 media material is invalid\"}", + "latency_s": 27.657761075068265, + "finished_at_epoch": 1788159915.270871 + } +} \ No newline at end of file diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/client.log new file mode 100644 index 0000000..c9d577b --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/client.log @@ -0,0 +1 @@ +warmup case=case04_recvtQW6hmRkEt success=False latency=28.29s error=RuntimeError: submit HTTP 400: {"detail":"MiniMax H3 media material is invalid"} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/result.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/result.json new file mode 100644 index 0000000..29b05de --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/batch_01/client_3_case04_port34040/result.json @@ -0,0 +1,66 @@ +{ + "warmup": { + "case_number": 4, + "case_id": "case04_recvtQW6hmRkEt", + "record_id": "recvtQW6hmRkEt", + "seed": 1104, + "port": 34040, + "replica_index": 3, + "num_inference_steps": 5, + "short_edge": 768, + "aspect_ratio": "9:16", + "duration_seconds": 15.0, + "references": [ + { + "label": "图一", + "type": "image", + "name": "场景图.jpg", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg", + "file_token": "Ub5VbGteiovPjmxED9jcOp7an4F", + "size": 806053, + "sha256": "858a1a1e4a1b714eadedec14f3d792e1d22948aacef834f2f551c434c8daf9fb" + }, + { + "label": "图二", + "type": "image", + "name": "江岁欢.webp", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp", + "file_token": "CLB4btXmdodQRQxDgxCccNPpnIg", + "size": 11222, + "sha256": "28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d" + }, + { + "label": "图三", + "type": "image", + "name": "江岁欢服装参考.png", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png", + "file_token": "ZRXUbIaicojWxWx7PaEcXhg7nJg", + "size": 9371990, + "sha256": "999617a42377a8c79c2f68fe2f203272fd2f037a32de694c17d55ebefea5d19f" + }, + { + "label": "图四", + "type": "image", + "name": "李公公.jpeg", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg", + "file_token": "BoeGbYmysomJFXxkrM6cQHjun2e", + "size": 9901740, + "sha256": "b34c386142933e792e3bd0ff427e3cc4671c44add7e0e847a61c96ef2735ce62" + }, + { + "label": "音色一", + "type": "audio", + "name": "江岁欢音色.mp3", + "path": "/data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3", + "file_token": "C58DbNENYo853HxyINVc4ZIunAb", + "size": 116033, + "sha256": "926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9" + } + ], + "started_at_epoch": 1788159887.601088, + "success": false, + "error": "RuntimeError: submit HTTP 400: {\"detail\":\"MiniMax H3 media material is invalid\"}", + "latency_s": 28.294797965791076, + "finished_at_epoch": 1788159915.895889 + } +} \ No newline at end of file diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_after.csv b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_after.csv new file mode 100644 index 0000000..5aa1b4c --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_after.csv @@ -0,0 +1,8 @@ +0, P0, 0 MiB, 0 % +1, P0, 0 MiB, 0 % +2, P0, 0 MiB, 0 % +3, P0, 0 MiB, 0 % +4, P0, 0 MiB, 0 % +5, P0, 0 MiB, 0 % +6, P0, 0 MiB, 0 % +7, P0, 0 MiB, 0 % diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_before.csv b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_before.csv new file mode 100644 index 0000000..98768dc --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/gpu_before.csv @@ -0,0 +1,8 @@ +0, P8, 0 MiB, 0 % +1, P8, 0 MiB, 0 % +2, P8, 0 MiB, 0 % +3, P8, 0 MiB, 0 % +4, P8, 0 MiB, 0 % +5, P8, 0 MiB, 0 % +6, P8, 0 MiB, 0 % +7, P8, 0 MiB, 0 % diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_assets_sha256.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_assets_sha256.txt new file mode 100644 index 0000000..5d59133 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_assets_sha256.txt @@ -0,0 +1,40 @@ +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3 +89b591ad3312c821dd897f9c93c3ae88cdcf63cce37aea15d818932ae4552c65 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png +7c208c7a449e1d361631b52af9a085cbbd83bce50d0b1e6777bc88d95c2d7321 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp +86c354f77ae02914539b67d43cd86e1921c0ad803f910c87193d90f5ad1c9889 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp +fb969a36612fb37407aaa2f9a49cecce5dac8c11ccbeef500a8a602048798d0e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3 +30acde11d4ee1b645ad28de19ce1e21ff2feb9015102ef995d2b51e20740230d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp +a17932e57ff71a22e55f8f8f10c3dc8b92a49ef299ca236cc08981ebd477a0f0 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3 +92c6128fba4dd106f472634f0807f86a10b8067f953a94c86a6f4eb7903e9e61 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp +196b1d6b102437c7c4d5fc46a16c687875e2f3b636dd372a30a74d6dbf6f14ee /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3 +858a1a1e4a1b714eadedec14f3d792e1d22948aacef834f2f551c434c8daf9fb /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg +b34c386142933e792e3bd0ff427e3cc4671c44add7e0e847a61c96ef2735ce62 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp +999617a42377a8c79c2f68fe2f203272fd2f037a32de694c17d55ebefea5d19f /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3 +b59c69c49a9c1c91bca2bfb85a39db39264b51e2e9108438fd466c010d271adc /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/场景.jpg +84813966d8e94d4ae03b14775f5bfcd0cf1f7baf16205dcd56f90eb111fa2307 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.mp3 +f62a5513f47a1d2b4c2b980ed8852c634d2c26aafdd7d4da0dccff1224cb132c /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.png +30acde11d4ee1b645ad28de19ce1e21ff2feb9015102ef995d2b51e20740230d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦.webp +4c4d19ac7c259a028f014db52252240a0eda2bc81b56c30b1da48e2013439cfd /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦服装.png +3fb96c81d592a5b92c3414e43e96b090049a9c038c11b39d26ceefac8c2d1f2e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐音色.mp3 +a2379f9be2a421130aa10e473c3ba7394428d068cbf258796f259de948ce77de /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽.jpg +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽音色.mp3 +4d4686fbdaa53a0507e9a82840a2676631412d899631d2270c7d839cabb3ea1c /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪.png +4a4460eb9661ee88c162ebf1d3711c13ff7423ffaab1405b702231b63320308e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪音色.mp3 +851b1a0fbf5a30dda81ef572dea6c7392839e1730761772d57898fb504b6a88a /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐音色.mp3 +a2379f9be2a421130aa10e473c3ba7394428d068cbf258796f259de948ce77de /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽.jpg +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽音色.mp3 +3fb96c81d592a5b92c3414e43e96b090049a9c038c11b39d26ceefac8c2d1f2e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐音色.mp3 +7b558e5897509b0dbf464d61671d1255b1c90c69d0f8355f2c56eb24246de666 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/场景图.png +92c2300888162c422b623ce895dfdbd8c7020ef686ce2f1d3d2aa59d5a32652f /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽.png +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽音色.mp3 +1d446df46ebef4ee697d29cef5b0f0ce85d5778992bd8885fa1c96e82fc95ef4 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/王刚.png diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_records.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_records.json new file mode 100644 index 0000000..716b6b7 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/input_records.json @@ -0,0 +1,296 @@ +{ + "ok": true, + "identity": "user", + "data": { + "data": [ + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.png(服装),图三=楚晨.jpg(楚晨形象),音色一=女生音色.mp3(声音)\n时辰:夜晚\n色调:暖色调\n色温:12000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,声音参考 音色一,服装参考 图二,楚晨形象参考 图三\n镜头1(00-03s):\n景别:近景\n运镜:轻微手持前推\n镜头角度:平视偏仰\n前景:被夜风吹动的帐帘边角、火把虚焦\n画面内容:江岁欢猛地停住,隔着半掀帐帘看见楚晨立在夜色里,人物被帐帘切割成框中框构图,第一眼就建立“熟人重逢”的冲击。\n人物动作:江岁欢脚步顿住,肩背绷紧,唇微张\n表情/情绪:震惊失神,眼睛瞬间睁大,眉毛猛地抬起,嘴唇发颤,情绪从不敢置信迅速滑向酸涩\n光线光影:冷色月光打在脸侧,另一侧被火把暖光擦亮,冷暖撕裂感明显,暗部压低。\n台词/OS:江岁欢(声音发颤):“师……师父?!”\n衔接:台词落下后不切空,直接切楚晨反应,形成对视钩子\n镜头2(03-06s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢肩部虚焦遮挡\n画面内容:楚晨站在帐外半明半暗处,身后夜色沉,人物略偏画面一侧,留出另一侧空白,强化身份落差与信息冲击。\n人物动作:他轻轻点头,没有上前,只稳稳看着她\n表情/情绪:克制温和,眼神放松下来,眼尾微弯,嘴角极轻地提起,情绪从确认过渡到安抚\n光线光影:侧后方冷月勾出轮廓光,火把暖光落在眼底,形成一线笑意高光。\n台词/OS:楚晨:“我也穿过来了。比你早几年。现在,我叫楚晨,东宸王。”\n衔接:身份信息说完留0.5秒停顿,切江岁欢特写接情绪余韵\n镜头3(06-08s):\n景别:特写\n运镜:静止微呼吸感\n镜头角度:平视\n前景:无\n画面内容:江岁欢脸部占满竖屏中上区域,背景帐外火光虚化\n人物动作:她一动不动,只是呼吸微乱\n表情/情绪:怔住发酸,眼神停住,睫毛轻颤,眼眶一点点泛红,嘴唇抿紧又松开,情绪从震惊过渡到终于确认\n光线光影:冷光为主,眼底被暖火映出一点湿润亮点,细节压住不过分煽情。\n台词/OS:无\n衔接:切回双人问答,承接她恢复思考\n镜头4(08-10s):\n景别:双人中景\n运镜:稳镜,小幅横移调整站位\n镜头角度:平视\n前景:帐绳、旗角\n画面内容:两人相对而立,江岁欢在前景偏左,楚晨在后景偏右,先清楚交代距离与朝向,方便后续对话承接。\n人物动作:江岁欢微微上前半步\n表情/情绪:试探迟疑,眉心轻收,眼神紧盯对方,像怕一眨眼人就消失\n光线光影:月光压主色,火把在衣边形成局部暖边\n台词/OS:江岁欢:“你怎么认出我的?”\n衔接:按视线方向切楚晨回答\n镜头5(10-13s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢发丝虚焦扫过画面边缘\n画面内容:楚晨目光落在她身上,背景彻底虚化,突出“认出她”的答案。\n人物动作:他视线下落一瞬,像是回忆她处理伤口时的手法\n表情/情绪:笃定温柔,眼神沉稳,眉头舒展,嘴角有淡淡笑意,情绪从理性判断过渡到熟稔亲近\n光线光影:侧光刻出鼻梁与颧骨,眼神光干净,暗部保留层次。\n台词/OS:楚晨:“你给人缝伤口的针法,全世界独一份。看一眼就知道。”\n衔接:回答结束切江岁欢反应,再以行动收段\n镜头6(13-15s):\n景别:中近景\n运镜:轻微跟拍起势\n镜头角度:平视\n前景:帐帘掀动\n画面内容:楚晨转身朝帐内方向示意,江岁欢站位顺势跟上,完成从重逢到办正事的节奏切换\n人物动作:楚晨侧身抬手示意入帐,江岁欢立刻跟步\n表情/情绪:楚晨沉稳收束,江岁欢迅速压下情绪,转为专注\n光线光影:帐外冷光,帐内透出暖黄光,门口形成明显冷暖分界。\n台词/OS:楚晨:“走吧,先救人。”\n衔接:下一段单独转场,承接两人入帐动作\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "IhtLb1Sm2oAt2ZxCEMHc5Gvqndf", + "name": "女生音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "RsW0bqhb5oiR6sx5lkUcAZ2lndc", + "name": "服装.png", + "size": 2270190 + }, + { + "file_token": "D0sObtnsnomffExy7EscGLcsn4g", + "name": "楚晨.jpg", + "size": 413454 + }, + { + "file_token": "GemJbvmjkopxN2xlWGxcsZyWnab", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.webp(场景),图二=江岁欢.webp(江岁欢形象),图三=服装.png(服装),图四=顾锦.webp(顾锦人脸),音色一=江岁欢声音.mp3(江岁欢声音),音色二=顾锦声音.MP3(顾锦声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n场景参考 图一\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图二,声音参考 音色一,江岁欢服装参考 图三,顾锦人脸参考 图四,顾锦声音参考 音色二\n镜头1(00-02s):\n景别:中近景双人\n运镜:轻微推近\n镜头角度:平视偏侧\n前景:半掩床幔、烛火虚化\n画面内容:江岁欢坐在床边或榻边,顾锦站在她身前一步距离,二人同处狭窄夜室,位置关系先交代清楚\n人物动作:江岁欢抬眼看向顾锦,压低声音说出关键词\n表情/情绪:江岁欢克制紧张,眼神迟疑后定住,睫毛轻颤,嘴唇微启又收;顾锦原本压着情绪,听到关键字前神色冷沉\n光线光影:冷色月光从侧后打入,烛火暖光落在下半张脸,形成冷暖对抗与半边阴影\n台词/OS:江岁欢:“……他们提到‘毒蝎’。”\n衔接:台词落下立刻切顾锦动作爆发特写,前3秒直接抓人,符合短剧“情绪钩子”策略。\n镜头2(02-04s):\n景别:手部特写\n运镜:瞬间切入,轻微手持感\n镜头角度:斜侧近距\n前景:江岁欢衣袖边缘\n画面内容:顾锦的手猛地扣住江岁欢手腕,指节发白,力道骤紧\n人物动作:顾锦骤然发力攥紧;江岁欢手腕被拽得偏过去\n表情/情绪:动作镜头,以力道和急促感传达失控杀意\n光线光影:一束冷光打在手背与腕骨上,暗部压低,肤色与阴影反差明显\n台词/OS:无\n衔接:动作接动作,下一镜头切顾锦面部近景承接失控反应。\n镜头3(04-07s):\n景别:近景\n运镜:快速推近后微停\n镜头角度:微仰拍\n前景:虚化的顾锦肩线占据画面下缘\n画面内容:顾锦逼近画面,眼底寒意陡然翻起,压迫感直冲镜头\n人物动作:顾锦抓着江岁欢手腕不放,喉结轻滚,几乎是一字一顿地逼问\n表情/情绪:压抑暴怒,眼神发冷,眉心骤然收紧,牙关轻咬,嘴角绷直,情绪从克制过渡到近乎失控的杀意\n光线光影:侧后主光削出下颌线与鼻梁高光,另一侧陷入深影,形成强烈明暗对照\n台词/OS:顾锦:“你确定是……毒蝎?”\n衔接:台词末尾停0.3秒,切江岁欢吃痛反应特写。\n镜头4(07-09s):\n景别:近景\n运镜:轻微后撤\n镜头角度:平视\n前景:顾锦袖口虚化压前景\n画面内容:江岁欢被他的力道带得微微偏身,手腕发红\n人物动作:她下意识抽气,另一只手轻扶被抓住的手腕\n表情/情绪:吃痛隐忍,眉尖轻蹙,眼尾微红,嘴唇抿紧后松开,情绪从忍痛过渡到确认\n光线光影:暖烛光打在脸侧,冷月光勾出发丝边缘,痛感更清晰\n台词/OS:江岁欢:“是,我没有听错。”\n衔接:接顾锦松手动作,切回双人中景显示关系变化。3811\n镜头5(09-11s):\n景别:中近景双人\n运镜:定镜后轻微焦点转移\n镜头角度:平视\n前景:床幔边缘形成框中框\n画面内容:顾锦猛地松手退半步,江岁欢留在前景,顾锦落入后景阴影,权力重心瞬间转移\n人物动作:顾锦手指骤松,垂在身侧;江岁欢收回手腕,微微揉按\n表情/情绪:顾锦意识到失态后更冷,眼神阴鸷沉下去,呼吸压得很低;江岁欢警惕又不敢追问\n光线光影:前景暖、后景冷,顾锦半张脸没入阴影,形成心理隔绝\n台词/OS:无\n衔接:通过焦点从前景江岁欢转到后景顾锦,下一镜头进入顾锦内在信息抛出。\n镜头6(11-15s):\n景别:近景\n运镜:缓慢推近\n镜头角度:微侧\n前景:一缕虚化烛火\n画面内容:顾锦立在桌边阴影里,侧脸冷硬,像是在迅速拼合线索\n人物动作:他缓慢抬眼,视线越过江岁欢落向虚空\n表情/情绪:阴沉克制,眼神停住,睫毛下压,嘴角绷紧,情绪从失态回收成可怕的冷静\n光线光影:冷月光扫过眼睛,留下短促寒光;背景暖烛微颤\n台词/OS:顾锦:“毒蝎……就是我一直在查的人。”\n衔接:台词说完留0.5秒余韵,下一段承接他情绪爆发砸桌动作。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C6iEbjhRqoyvRwx7UyNcPGiTndn", + "name": "江岁欢声音.mp3", + "size": 116033 + }, + { + "file_token": "LV5MbbntTogizrxYR7OcG2NLnod", + "name": "顾锦声音.MP3", + "size": 57728 + } + ], + [ + { + "file_token": "DEGrbMr3foZ7SOxWYsEcW834nvd", + "name": "服装.png", + "size": 2231656 + }, + { + "file_token": "RjffbIAVcoogcWxLNPxcsarBnnd", + "name": "顾锦.webp", + "size": 9286 + }, + { + "file_token": "Tupibsh5OoYfCZxSr0ScIsMKnZd", + "name": "场景.webp", + "size": 10964 + }, + { + "file_token": "RrLdbdEbWoyZRdxoUjEcuTK6nXK", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.webp(服装),图三=惠通法师.webp(慧通法师形象),音色一=音色.mp3(江岁欢声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,服装参考 图二,声音参考 音色一,慧通法师形象参考 图三\n生成段落1:宝华殿法事,时长约0-15s\n镜头1(00-03s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:虚化香烟、僧袍下摆\n画面内容:宝华殿内法事进行,文武百官及家眷跪满殿中,江岁欢独自跪在角落,和整片肃穆人群形成轻微孤立感,不对称构图突出她的心理抽离。\n人物动作:江岁欢低头跪着,手指轻轻攥住膝上衣料。\n表情/情绪:冷静压抑,眼神微沉,眉心轻蹙,嘴唇抿紧后缓缓松开,情绪从观察过渡到失望。\n光线光影:殿内低调照明,暖色烛火混合冷色天光,脸侧有细窄高光,暗部压低增强肃杀感。\n台词/OS:江岁欢OS:这么多人,竟没一个真难过。\n衔接:台词不断,直接接背后法师靠近,开头即进情绪钩子。\n镜头2(03-05s):\n景别:中景\n运镜:肩后轻移\n镜头角度:微俯\n前景:前排跪着的官眷、蒲团边角\n画面内容:慧通法师从后方走近,停在江岁欢身后半步,先清楚交代站跪位置关系。\n人物动作:法师抬手,在她肩上轻拍三下。\n表情/情绪:江岁欢先是一顿,睫毛轻颤,呼吸停住,情绪从失神过渡到警觉;法师神情平和。\n光线光影:袈裟边缘被侧后方烛光勾亮,江岁欢肩头有一线暖光。\n台词/OS:无\n衔接:第三下拍肩完成后切法师转身背影,动作接动作。\n镜头3(05-07s):\n景别:特写\n运镜:定镜\n镜头角度:平视\n前景:半虚化念珠\n画面内容:慧通法师双手合十,一言不发转身离开,只留给她一个背影。\n人物动作:法师平稳离去,江岁欢视线跟过去。\n表情/情绪:江岁欢眼神停住,眉尾微抬,嘴角轻绷,情绪从疑惑过渡到若有所思。\n光线光影:背影落在冷暖交界处,脸侧有一点冷光。\n台词/OS:无\n衔接:切旁边女眷低声耳语,补充信息。\n镜头4(07-10s):\n景别:近景\n运镜:小幅推近\n镜头角度:平视\n前景:女眷衣袖、垂落发簪\n画面内容:女眷A微侧过身,压低声音对江岁欢耳语,眼睛瞪大。\n人物动作:女眷A朝法师背影轻轻示意。\n表情/情绪:惊喜激动,眼睛睁圆,眉毛高挑,嘴角压着兴奋,情绪从震惊过渡到笃定。\n光线光影:烛火暖光扫过眼周,发簪闪出细碎亮点。\n台词/OS:女眷A:天呐,那是慧通法师!明安寺住持,能看人一生!定是与你有缘!\n衔接:耳语结束切江岁欢反应特写,保留半秒余韵。\n镜头5(10-12s):\n景别:特写\n运镜:缓慢推近\n镜头角度:平视\n前景:飘过的香烟\n画面内容:江岁欢望着慧通法师离开的方向,背景人影虚化,强制锁定她的面部变化。\n人物动作:她微微抬眼,袖中手指收紧。\n表情/情绪:心中一动,眼神短暂停住,睫毛轻颤,嘴唇轻轻分开又收回,情绪从疑惑过渡到心生波澜。\n光线光影:冷光落进眼底,脸下半部有烛火暖影。\n台词/OS:无\n衔接:用钟声做听觉转场,切法事结束。\n镜头6(12-15s):\n景别:中景\n运镜:平稳横移\n镜头角度:平视\n前景:起身的人群、晃动袍袖\n画面内容:钟声响起,法事结束,众人纷纷起身,江岁欢也准备离开,一名僧人上前拦住她。人物站位清晰。\n人物动作:江岁欢刚起身迈步,僧人合十挡在她前方。\n表情/情绪:江岁欢短暂戒备,眼神一凝,嘴角绷住;僧人恭敬平稳。\n光线光影:殿门方向较亮,殿内依旧偏暗,边缘轮廓光明显。\n台词/OS:僧人:江施主留步,住持想见您。\n衔接:下一段单独转场,不在本段硬切新场景。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "SCHJbmbBCoj52mxhyURc4nhfnQb", + "name": "音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "Y6U0b9mAcoGJ4Dx1wBxcNx3HnEf", + "name": "江岁欢.webp", + "size": 11222 + }, + { + "file_token": "DMTcbXafDoICwDx4p4tcXgXUnod", + "name": "服装.webp", + "size": 8484 + }, + { + "file_token": "TDLdba2mtoIVBCxNhexcbjaUn6b", + "name": "惠通法师.webp", + "size": 12780 + } + ] + ], + [ + "参考对应:图一=场景图.jpg(场景),图二=江岁欢.webp(人脸),图三=江岁欢服装参考.png(服装),图四=李公公.jpeg(人物形象),音色一=江岁欢音色.mp3(声音)\n时辰:正午\n色调:暖色调\n色温:8000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢人脸参考 图二,服装参考 图三,李公公人物形象参考 图四,声音参考 音色一\n镜头1(00-02s):\n景别:中近景\n运镜:轻微推近\n镜头角度:平视\n前景:药柜边缘、垂下的药签\n画面内容:医馆内,江岁欢正俯身为病人针灸,莹陶在一旁药案前抓药,空间关系清楚,前后层次分明\n人物动作:江岁欢稳稳落下最后一针,莹陶低头称药\n表情/情绪:江岁欢神情专注,眼神沉静,眉心微收后松开;莹陶神色认真,动作利落\n光线光影:白日柔和窗光洒入,木格窗投下浅浅光影,药柜暗部压低,脸侧有柔和侧光\n台词/OS:无\n衔接:医馆门口传来脚步声,下一镜头切门口来人\n镜头2(02-04s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:门框、半掀的布帘\n画面内容:李公公带着两个小太监走进医馆,停在门内打量四周,气场压住屋内日常感\n人物动作:李公公缓步入内,抬眼环视一圈,微微点头;两个小太监分立身后\n表情/情绪:李公公神色审视,眼神细细扫过,嘴角平直后略微一沉,带着宫里人的压迫感\n光线光影:门外亮光从背后压进来,形成轻微逆光轮廓,室内暖木色与门口冷亮形成对比\n台词/OS:李公公:哪位是江大夫?\n衔接:问话落下,切回江岁欢反应\n镜头3(04-06s):\n景别:中近景\n运镜:先稳后轻推\n镜头角度:平视\n前景:病人肩侧虚化、针包边角\n画面内容:江岁欢收针起身,转向李公公,身后病人与药案仍在画面里,人物位置关系明确\n人物动作:她收回银针,直起身,抬眸应声\n表情/情绪:神色平静,眼神清明,嘴唇轻抿后自然松开,情绪从专注过渡到沉着应对\n光线光影:窗侧柔光照亮半张脸,发丝有细微轮廓光,背景略暗突出人物\n台词/OS:江岁欢:我是。公公有何事?\n衔接:接对方来意说明,切李公公中近景\n镜头4(06-09s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:微仰\n前景:小太监肩侧虚焦\n画面内容:李公公站定,对着江岁欢宣旨般说明来意,两个小太监在后形成宫廷压迫感\n人物动作:李公公略抬下巴,抬手示意请人\n表情/情绪:神情克制,眼神带审度,语气不容推辞,面部松弛却自带威压\n光线光影:门口逆光勾出衣袍边缘,脸上是偏冷的正侧光,人物层次清晰\n台词/OS:李公公:皇上龙体欠安,特来请江大夫入宫诊治。\n衔接:来意说完,切莹陶受惊反应和袖口动作\n镜头5(09-11s):\n景别:近景\n运镜:轻微下摇到手部\n镜头角度:平视\n前景:药包、散落药材\n画面内容:莹陶站在药案旁,明显被“入宫诊治”吓到,伸手拉住江岁欢袖子\n人物动作:莹陶手一抖,药材微散,立刻扯住江岁欢袖口,小幅度靠近她\n表情/情绪:惊慌失措,眼睛睁大,眉毛扬起后拧紧,嘴巴微张,情绪从愣住过渡到担忧\n光线光影:案上暖光映亮手部,人物脸侧是柔和侧光,袖口布料有微弱高光\n台词/OS:莹陶:小姐,治不好可是要杀头的……\n衔接:袖口被拉住,下一镜头切江岁欢安抚特写\n镜头6(11-14s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:莹陶手指攥着的袖口虚化在下方\n画面内容:江岁欢微侧脸看向莹陶,语气压低安抚,随即抬眼恢复从容\n人物动作:她轻轻按了按莹陶的手,示意松开\n表情/情绪:沉稳克制,眼神柔和却坚定,睫毛轻颤后定住,嘴角极轻地安抚性放松\n光线光影:侧窗冷白光打在眼睛和鼻梁,脸侧明暗过渡柔和,发丝边缘有细光\n台词/OS:江岁欢(低声):没事的。\n衔接:安抚后自然转向李公公,下一段承接她应下并去收拾药箱\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C58DbNENYo853HxyINVc4ZIunAb", + "name": "江岁欢音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "ZRXUbIaicojWxWx7PaEcXhg7nJg", + "name": "江岁欢服装参考.png", + "size": 9371990 + }, + { + "file_token": "BoeGbYmysomJFXxkrM6cQHjun2e", + "name": "李公公.jpeg", + "size": 9901740 + }, + { + "file_token": "Ub5VbGteiovPjmxED9jcOp7an4F", + "name": "场景图.jpg", + "size": 806053 + }, + { + "file_token": "CLB4btXmdodQRQxDgxCccNPpnIg", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.jpg(场景),图二=谢宁.png(江岁欢形象),图三=顾锦.webp(顾锦人脸),图四=顾锦服装.png(顾锦服装),音色一=谢宁.mp3(江岁欢声音)\n时辰:正午\n色调:暖色调\n色温:5000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢形象参考 图二,声音参考 音色一,顾锦人脸参考 图三,顾锦声音参考(本 case 无匹配音频,未绑定),服装参考 图四\n镜头1(00-02s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:宫门铜钉、门框阴影\n画面内容:江岁欢走出宫门,顾锦靠在宫墙边,二人一左一右,距离约两步,位置关系清晰\n人物动作:江岁欢脚步刚出门便停住,顾锦侧头看她\n表情/情绪:江岁欢先是意外,眼神微怔后迅速稳住;顾锦神色淡淡,像等了很久却不显露\n光线光影:外景日光偏亮,宫墙阴影压低,人物脸侧有清晰自然侧光\n台词/OS:顾锦:“听说有人进宫看病,来看看,是不是被砍头了。”\n衔接:用台词直接抓人,下一镜切江岁欢反应\n镜头2(02-04s):\n景别:近景\n运镜:轻微推近\n镜头角度:平视\n前景:无\n画面内容:江岁欢转头看向顾锦,宫门红墙虚化在后\n人物动作:她抬眉,带一点不服气地回看过去\n表情/情绪:先惊后嗔,眼睛微睁,眉尾轻挑,嘴角压着笑意,情绪从意外过渡到回怼\n光线光影:日光打亮眼睛,睫毛和鼻梁有自然高光\n台词/OS:江岁欢:“你怎么在这儿?”\n衔接:下一镜接她顺势回怼\n镜头3(04-07s):\n景别:双人中近景\n运镜:轻微横移\n镜头角度:平视\n前景:宫墙边飘动的树影\n画面内容:江岁欢与顾锦同框站立,顾锦仍靠墙,江岁欢微偏身面对他\n人物动作:江岁欢白他一眼,抬手晃了晃新得的腰牌\n表情/情绪:带点得意和松快,眼神明亮,嘴角上扬;顾锦表面淡然,眼底却微有波动\n光线光影:自然光下人物面部通透,腰牌上反出一线亮光\n台词/OS:江岁欢:“让你失望了。没砍成,还升官了。”\n衔接:动作带出腰牌,下一镜切顾锦看牌反应特写\n镜头4(07-10s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:银牌虚化在画面前侧\n画面内容:顾锦的视线落在腰牌上,再缓缓抬到江岁欢脸上\n人物动作:他站直离开宫墙,目光停留片刻\n表情/情绪:冷淡外壳微微松动,眼神柔和一瞬,嘴角极轻地动了动又压住,情绪从试探过渡到认可\n光线光影:侧光勾出轮廓,眼下和唇线有细微亮面,背景宫墙压暗\n台词/OS:顾锦:“御医……不错。以后进宫,能光明正大了。”\n衔接:高光反应后切江岁欢接话\n镜头5(10-12s):\n景别:近景\n运镜:定镜\n镜头角度:平视\n前景:无\n画面内容:江岁欢侧身看他,眉眼带一点探究\n人物动作:她收回腰牌,向前一步逼近半步\n表情/情绪:半真半试探,眼神停住,唇角轻翘,像看穿又不完全点破\n光线光影:脸侧受光清晰,发丝有微弱亮边\n台词/OS:江岁欢:“你是替我高兴,还是替你眼线高兴?”\n衔接:下一镜切顾锦转身离开,形成轻拉扯\n镜头6(12-15s):\n景别:中景\n运镜:跟拍起步\n镜头角度:平视\n前景:宫门石阶、路边树影\n画面内容:顾锦转身往前走,江岁欢愣了一瞬后跟上,两人背影前后形成层次\n人物动作:顾锦淡淡丢下一句便迈步,江岁欢停半拍再追上\n表情/情绪:顾锦语气平静却不回避,江岁欢先怔住,随即眼神一松\n光线光影:午后自然光铺在石阶上,人物背侧有清晰边缘光\n台词/OS:顾锦:“都有。”\n衔接:动作闭合,下一段切入新场景王府内室\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失", + [ + { + "file_token": "J8d4bLe74o4Kacxv4qdc9JzDn0d", + "name": "谢宁.mp3", + "size": 135462 + } + ], + [ + { + "file_token": "QmnUbwLm4otsfqxEbysctJrZnAb", + "name": "顾锦服装.png", + "size": 9105217 + }, + { + "file_token": "LsFVbBSH1oZWjlx17oIcXKjZnnf", + "name": "谢宁.png", + "size": 3071862 + }, + { + "file_token": "FsfmbexjgoiFNKx0IkRc8rijnIe", + "name": "场景.jpg", + "size": 1732210 + }, + { + "file_token": "Urm4b5ZrroF9m8x9g70cOh1XnLc", + "name": "顾锦.webp", + "size": 9286 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐),图二=白雪.png(白雪),图三=沙丽丽.jpg(沙丽丽),音色一=吴耐音色.mp3(吴耐声音),音色二=白雪音色.mp3(白雪声音),音色三=沙丽丽音色.mp3(沙丽丽声音)\n【合规要求】:全文无水印、无字幕、无画面文字、无LOGO,无杂乱背景;无穿模,五官清晰,人体结构正常,无多余杂物。面部稳定,五官清晰,动作自然,人体结构正常,无穿模无变形,无水印,无字幕。\n场景参考,吴耐参考 图一,吴耐声音参考 音色一,白雪参考 图二,白雪声音参考 音色二,沙丽丽参考 图三,沙丽丽声音参考 音色三。\n镜号1:\n时间: 0—4秒\n景别: 主观镜头\n机位: 竖屏固定仰拍\n生成提示词:竖屏固定主观视角。仰拍。从左侧靠窗病床往上看。百叶窗透进阳光。穿着护士服的白雪和沙丽丽站在床边低头看,白雪满脸惊喜。电影级写实。\n台词/音效:【吴耐】(呼吸声/微微睁眼)\n【白雪】(惊喜):大爷你醒了!\n镜号2:\n时间: 0—4秒\n景别: 中景\n机位: 竖屏固定平视\n生成提示词:竖屏固定中景。左侧靠窗病床旁。白雪转头,严厉地责问旁边的沙丽丽。沙丽丽拍了拍胸口松了口气,随后心虚地低下头。背景有蓝色的隔断帘。电影级写实。\n台词/音效:【沙丽丽】(松口气声)\n【白雪】:沙丽丽!你到底对大爷做了什么!\n【沙丽丽】(内疚):我...\n镜号3:\n时间: 0—6秒\n景别: 近景\n机位: 竖屏固定俯拍\n生成提示词:竖屏固定近景。左侧靠窗病床上。白雪一边帮吴耐整理蓝白条纹的被子,一边语重心长地劝说。百叶窗的光条打在她身上。电影级写实。\n台词/音效:【白雪】:大爷,你以后还是离沙丽丽远一点吧,说不定哪天就被她送走了。", + [ + { + "file_token": "SK5GbFkZHojYvbx8c6CcIkEGnud", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "K8x4bb80yocfpRxjmBZcskVYnqe", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "GKgJb1LYOoVeWpxLhDPcckcInxe", + "name": "白雪音色.mp3", + "size": 112272 + } + ], + [ + { + "file_token": "UQpvbESyJoy4yBxVG6PcyOqOnsd", + "name": "白雪.png", + "size": 4557283 + }, + { + "file_token": "VnCMbvlIUoiiPPxCSf2cxgxQnKn", + "name": "吴耐.png", + "size": 1234901 + }, + { + "file_token": "ZPhbbQZqGoKm6rxaf0vcWKWan8c", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=沙丽丽.jpg(沙丽丽),图二=吴耐.png(吴耐),音色一=沙丽丽音色.mp3(沙丽丽声音),音色二=吴耐音色.mp3(吴耐声音)\n沙丽丽参考 图一,吴耐参考 图二,站在画面左侧看着,吴耐站在画面右侧看着,两人中间隔着一步距离。音色参考:沙丽丽 音色一,吴耐 音色二。\n00:00-00:04 甩袖走人\n动作设计:吴耐被笑得更挂不住脸,没好气地甩了下胳膊,转身往单元门走;脚步迈得又快又急,背挺得笔直,一副 “不跟你一般见识” 的赌气模样。\n镜头设计:中景跟拍半步,完整拍下他转身甩手的动作;背影带着点气呼呼的劲儿,脚步匆匆,颇有几分落荒而逃的味道。\n表演设计:典型的嘴硬好面子,被逗得下不来台,只能撂挑子走人;脚步都带着点赌气的急促,却又没真的生气,就是老头式的别扭。\n台词:\n吴耐(硬邦邦撂话,头也不回):行了,我走了!\n00:04-00:08 补刀拆台\n动作设计:沙丽丽在他身后扬着声音喊,身子微微前倾,嘴角还带着没消的笑意,故意戳破他溜之大吉的借口。\n镜头设计:切沙丽丽正面近景,她对着吴耐的背影喊话,眼底全是了然的调侃;画面边缘带过吴耐远去的背影。\n表演设计:语气带着了然的戏谑,明知道他是找借口躲清净,故意拆台逗他;声音扬得刚好,既能让吴耐听见,又不显得吵闹。\n台词:\n沙丽丽(扬着声,带着笑意拆台):上哪去啊,不回家洗澡了?\n00:08-00:13嘴硬跑路\n动作设计:吴耐脚步猛地一顿,像是被戳中了心事,随即走得更快了;他头也不回地喊出一句话,脚步迈得更大,直奔小区门口而去。\n镜头设计:远景固定机位,拍吴耐越走越快的背影,朝着小区外的方向渐渐远去;画面留足空白,留下轻松的余韵。\n表演设计:被拆穿后的嘴硬,声音都带着点心虚的急促;嘴上硬气,脚步却很诚实,生怕再被调侃两句,落荒而逃的样子藏着可爱的反差。\n台词:\n吴耐(头也不回,气急败坏的硬气):我网吧去!", + [ + { + "file_token": "GmpAbEi3eooffExSt4XcjXtwnIg", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "CRdObHeOBonZ8NxYlLlc9puYnsb", + "name": "吴耐音色.mp3", + "size": 75909 + } + ], + [ + { + "file_token": "CnlIb4vNaoJvfJxfAD1cvlmyn7O", + "name": "吴耐.png", + "size": 4237071 + }, + { + "file_token": "ZndcbquaMoPYkwxLuOvcDKPHnEg", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐大爷),图二=场景图.png(服装店场景),图三=王刚.png(王刚),图四=沙丽丽.png(沙丽丽),音色一=吴耐音色.mp3(吴耐),音色二=沙丽丽音色.mp3(沙丽丽)\n参考 图一 吴耐大爷,图二 服装店场景,图三 王刚,图四 沙丽丽帮我生成:\n服装店内:\n▲ 沙丽丽说着冲上前要打人。\n▲ 吴耐眯着眼睛拦住沙丽丽。\n吴耐:丫头你做什么?\n沙丽丽:这种渣男该打!\n吴耐(正气凌然):这种人渣,交给我对付。\n沙丽丽(惊):死老头你想干嘛?\n15s", + [ + { + "file_token": "CDQkbfDXvojkvDxpIVLcNnN2nNb", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "UHambcEh7oroqkxBjE9c4sNsncG", + "name": "沙丽丽音色.mp3", + "size": 124810 + } + ], + [ + { + "file_token": "N4vnbjqTAozMG3xRMEYcHbeEnns", + "name": "王刚.png", + "size": 2378894 + }, + { + "file_token": "FQo3bSaF0oz9n2x8MndcFsJxnfc", + "name": "沙丽丽.png", + "size": 1700396 + }, + { + "file_token": "VX8QbMXQ5on0O6xokoZcyBajnVg", + "name": "场景图.png", + "size": 2156951 + }, + { + "file_token": "KdGwbcoN3oyHaexcGvTcedCDnWg", + "name": "吴耐.png", + "size": 1234901 + } + ] + ] + ], + "field_id_list": [ + "fld6Pha6qB", + "fldoUHTCOk", + "fldwA3ytWr" + ], + "field_type_list": [ + "text", + "attachment", + "attachment" + ], + "fields": [ + "提示词", + "参考音频", + "参考图像" + ], + "has_more": false, + "query_context": { + "field_scope": "all_fields", + "record_scope": "all_records" + }, + "record_id_list": [ + "recvtQUD5nFMf0", + "recvtQUD5nyYxg", + "recvtQUD5nP5Ip", + "recvtQW6hmRkEt", + "recvtQWnsZrwQR", + "recvtQWnV7K4fX", + "recvtQXV4n4LMP", + "recvtQXV4n8MZ1" + ], + "rev": 36, + "timezone": "Asia/Shanghai" + } +} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/nvidia_smi_before.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/nvidia_smi_before.txt new file mode 100644 index 0000000..f9b01f8 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/nvidia_smi_before.txt @@ -0,0 +1,48 @@ +Mon Aug 31 15:03:19 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA RTX 6000D On | 00000000:19:00.0 Off | 0 | +| N/A 27C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 1 NVIDIA RTX 6000D On | 00000000:1A:00.0 Off | 0 | +| N/A 28C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 2 NVIDIA RTX 6000D On | 00000000:1B:00.0 Off | 0 | +| N/A 28C P8 30W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 3 NVIDIA RTX 6000D On | 00000000:1D:00.0 Off | 0 | +| N/A 27C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 4 NVIDIA RTX 6000D On | 00000000:AA:00.0 Off | 0 | +| N/A 25C P8 28W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 5 NVIDIA RTX 6000D On | 00000000:AB:00.0 Off | 0 | +| N/A 26C P8 30W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 6 NVIDIA RTX 6000D On | 00000000:AE:00.0 Off | 0 | +| N/A 25C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 7 NVIDIA RTX 6000D On | 00000000:AF:00.0 Off | 0 | +| N/A 25C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| No running processes found | ++-----------------------------------------------------------------------------------------+ diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/pip_freeze.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/pip_freeze.txt new file mode 100644 index 0000000..b7f020b --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/pip_freeze.txt @@ -0,0 +1,244 @@ +addict==2.4.0 +aiohappyeyeballs==2.7.1 +aiohttp==3.14.3 +aiosignal==1.4.0 +airportsdata==20260803 +annotated-doc==0.0.5 +annotated-types==0.8.0 +anthropic==0.125.0 +anyio==4.14.2 +apache-tvm-ffi==0.1.11 +asttokens==3.0.2 +attrs==26.1.0 +av==16.1.0 +blobfile==3.0.0 +build==1.5.0 +cache_dit==1.3.0 +certifi==2026.7.22 +cffi==2.1.1 +charset-normalizer==3.5.1 +click==8.4.2 +cloudpickle==3.1.2 +compressed-tensors==0.18.1a20260818 +cuda-bindings==13.3.1 +cuda-core==1.0.1 +cuda-pathfinder==1.6.1 +cuda-python==13.3.1 +cuda-tile==1.6.0rc7 +cuda-toolkit==13.0.2 +datasets==5.0.1 +decorator==5.3.1 +diffusers==0.37.0 +dill==0.4.1 +diskcache==5.6.3 +distro==1.9.0 +docstring_parser==0.18.0 +easydict==1.13 +einops==0.9.0.dev0 +executing==2.2.1 +fastapi==0.141.1 +filecheck==1.0.3 +filelock==3.32.3 +flash-attn-4==4.0.0b19 +flashinfer-python==0.6.15.post1 +frozenlist==1.8.0 +fsspec==2026.6.0 +ftfy==6.3.1 +gguf==0.19.0 +grpcio==1.83.0 +grpcio-health-checking==1.82.0rc2 +grpcio-reflection==1.82.0rc2 +h11==0.16.0 +helion==1.4.0 +hf-xet==1.6.1a0 +httpcore==1.0.9 +httpx==0.28.1 +huggingface_hub==1.28.0 +humanize==4.16.0 +humming-kernels==0.1.10 +idna==3.19 +imageio==2.36.0 +imageio-ffmpeg==0.5.1 +importlib_metadata==9.0.0 +iniconfig==2.3.0 +interegular==0.3.3 +ipython==9.16.1 +ipython_pygments_lexers==1.1.1 +jedi==0.20.0 +Jinja2==3.1.6 +jiter==0.16.0 +joblib==1.5.3 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +kernels==0.14.1 +kernels-data==0.16.0 +lark==1.3.1 +lazy-loader==0.5 +lightning-utilities==0.15.3 +llguidance==1.8.0 +llvmlite==0.47.0 +loguru==0.7.3 +lpips==0.1.4 +lxml==7.0.0a3 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mistral_common==1.11.7 +ml_dtypes==0.6.0 +modelscope==1.39.1 +modelscope-hub==0.2.0 +moviepy==2.2.1 +mpmath==1.3.0 +msgpack==1.2.1 +msgspec==0.21.1 +multidict==6.7.1 +multiprocess==0.70.19 +narwhals==2.24.0 +nccl4py==0.4.1 +nest-asyncio==1.6.0 +networkx==3.6.1 +ninja==1.13.0 +numba==0.65.1 +numpy==2.3.5 +nvidia-cublas==13.1.0.3 +nvidia-cuda-cccl==13.3.4.1.2rc1 +nvidia-cuda-crt==13.4.46rc1 +nvidia-cuda-cupti==13.0.85 +nvidia-cuda-nvcc==13.4.46rc1 +nvidia-cuda-nvdisasm==13.4.46rc1 +nvidia-cuda-nvrtc==13.0.88 +nvidia-cuda-runtime==13.0.96 +nvidia-cudnn-cu13==9.19.0.56 +nvidia-cudnn-frontend==1.27.0 +nvidia-cufft==12.0.0.61 +nvidia-cufile==1.15.1.6 +nvidia-curand==10.4.0.35 +nvidia-cusolver==12.0.4.66 +nvidia-cusparse==12.6.3.3 +nvidia-cusparselt-cu13==0.8.0 +nvidia-cutlass-dsl==4.6.0 +nvidia-cutlass-dsl-libs-base==4.6.0 +nvidia-cutlass-dsl-libs-core==4.6.0 +nvidia-cutlass-dsl-libs-cu12==4.6.0 +nvidia-cutlass-dsl-libs-cu13==4.6.0 +nvidia-mathdx==25.6.0 +nvidia-ml-py==13.610.43 +nvidia-modelopt==0.46.0 +nvidia-nccl-cu13==2.28.9 +nvidia-nvjitlink==13.0.88 +nvidia-nvshmem-cu13==3.4.5 +nvidia-nvtx==13.0.85 +nvidia-nvvm==13.4.46rc1 +omegaconf==2.4.0.dev15 +open_clip_torch==3.3.0 +openai==2.6.1 +openai-harmony==0.0.4 +opencv-python-headless==4.10.0.84 +orjson==3.12.0 +outlines==0.1.11 +outlines_core==0.1.26 +packaging @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_packaging_1785888127/work +pandas==3.0.5 +parso==0.8.7 +partial-json-parser==0.2.1.1.post7 +pexpect==4.9.0 +pillow==11.3.0 +pluggy==1.6.0 +proglog==0.1.12 +prometheus_client==0.26.0 +prompt_toolkit==3.0.53 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +PuLP==3.3.2 +pure_eval==0.2.3 +py-spy==0.4.2 +pyarrow==25.0.1 +pybase64==1.5.0 +pycountry==26.2.16 +pycparser==3.0 +pycryptodomex==3.23.0 +pydantic==2.14.0b1 +pydantic-extra-types==2.11.1 +pydantic_core==2.48.0 +pyelftools==0.33 +Pygments==2.21.0 +pyproject_hooks==1.2.0 +pytest==9.1.1 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.3 +python-multipart==0.0.32 +PyYAML==6.0.1 +pyzmq==27.1.0 +quack-kernels==0.6.3 +referencing==0.37.0 +regex==2026.7.19 +remote-pdb==2.1.0 +requests==2.34.2 +rich==15.0.0 +rpds-py==2026.6.3 +runai-model-streamer==0.16.1 +safetensors==0.8.0 +scikit-image==0.25.2 +scikit-learn==1.9.0 +scipy==1.18.0 +sentencepiece==0.2.2 +setproctitle==1.3.7 +setuptools==81.0.0 +sgl-deep-gemm==0.1.5.post1 +sglang==0.5.17 +sglang-kernel==0.4.5 +shellingham==1.5.4 +six==1.17.0 +smg-grpc-proto==0.4.14 +smg-grpc-servicer==0.8.0 +sniffio==1.3.1 +soundfile==0.13.1 +st_attn==0.0.7 +stack-data==0.6.3 +starlette==1.6.0 +sympy==1.14.0 +tabulate==0.10.0 +threadpoolctl==3.6.0 +tifffile==2026.8.16 +tiktoken==0.14.0 +tilelang==0.1.11 +timm==1.0.16 +tokenizers==0.23.0rc0 +tokenspeed-mla==0.1.8 +tokenspeed-triton==3.8.10.post20260721 +tomlkit==0.15.1 +torch==2.11.0 +torch_c_dlpack_ext==0.1.5 +torch_memory_saver==0.0.10b1 +torchao==0.17.0 +torchaudio==2.11.0 +torchcodec==0.11.1 +torchmetrics==1.9.0 +torchvision==0.26.0 +tqdm==4.70.0 +traitlets==5.16.1 +transformers==5.12.1 +trimesh==5.0.0 +triton==3.6.0 +typer==0.27.1 +typing-inspection==0.4.4 +typing_extensions==4.16.0 +urllib3==2.7.0 +uv==0.12.5 +uvicorn==0.52.4 +uvloop==0.22.1 +vsa==0.0.4 +watchfiles==1.2.0 +wcwidth==0.8.2 +websockets==17.0.1 +wheel==0.48.0 +xatlas==0.0.11 +xgrammar==0.2.1 +xxhash==4.0.1 +yarl==1.24.5 +z3-solver==4.15.4.0 +zipp==4.1.0 +zstandard==0.25.0 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/python_version.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/python_version.txt new file mode 100644 index 0000000..5ba8c31 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/python_version.txt @@ -0,0 +1 @@ +Python 3.12.13 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/run_config.env b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/run_config.env new file mode 100644 index 0000000..f5dab41 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/run_config.env @@ -0,0 +1,16 @@ +run_id=ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318 +method=base +task=ref2va +tp_size=2 +replicas=4 +num_inference_steps=20 +short_edge=768 +aspect_ratio=9:16 +duration_seconds=15 +flow_shift=12.0 +audio_flow_shift=3.0 +model=/data/hf_models/MiniMax-H3 +cache_dit_enabled=false +fsdp_inference=false +torch_compile=false +batching_max_size=1 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/cuda_visible_devices.txt diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/server.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/server.log new file mode 100644 index 0000000..5466f0b --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/server.log @@ -0,0 +1,103 @@ +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:39] Applying performance_mode=speed +[08-31 15:03:39] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35000, "host": "0.0.0.0", "port": 34010, "webui": false, "webui_port": 12312, "scheduler_port": 36000, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_0_port34010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:03:39] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:57] Scheduler bind at endpoint: tcp://0.0.0.0:36000 +[08-31 15:03:57] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:03:57] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:03:57] Setting distributed timeout to 3600 seconds +[08-31 15:03:58] Found nccl from library libnccl.so.2 +[08-31 15:03:58] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:00] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:04:00] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:04:00] Found nccl from library libnccl.so.2 +[08-31 15:04:00] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:01] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:40] Applying performance_mode=speed +[08-31 15:03:40] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35010, "host": "0.0.0.0", "port": 34020, "webui": false, "webui_port": 12312, "scheduler_port": 36010, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_1_port34020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:03:40] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:59] Scheduler bind at endpoint: tcp://0.0.0.0:36010 +[08-31 15:04:00] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:04:00] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:04:00] Setting distributed timeout to 3600 seconds +[08-31 15:04:01] Found nccl from library libnccl.so.2 +[08-31 15:04:01] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:04] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:04:04] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:04:04] Found nccl from library libnccl.so.2 +[08-31 15:04:04] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:04] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:40] Applying performance_mode=speed +[08-31 15:03:40] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35020, "host": "0.0.0.0", "port": 34030, "webui": false, "webui_port": 12312, "scheduler_port": 36020, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_2_port34030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:03:40] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:59] Scheduler bind at endpoint: tcp://0.0.0.0:36020 +[08-31 15:03:59] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:03:59] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:03:59] Setting distributed timeout to 3600 seconds +[08-31 15:04:01] Found nccl from library libnccl.so.2 +[08-31 15:04:01] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:04] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:04:04] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:04:04] Found nccl from library libnccl.so.2 +[08-31 15:04:04] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:04] No pipeline_class_name specified, using model_index.json +[08-31 15:04:04] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:04:04] Loading pipeline modules... +[08-31 15:04:04] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:04:04] Diffusers version: 0.32.2 +[08-31 15:04:04] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:04:04] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-31 15:04:04] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:40] Applying performance_mode=speed +[08-31 15:03:40] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35030, "host": "0.0.0.0", "port": 34040, "webui": false, "webui_port": 12312, "scheduler_port": 36030, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150318/server_3_port34040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:03:40] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:03:59] Scheduler bind at endpoint: tcp://0.0.0.0:36030 +[08-31 15:03:59] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:03:59] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:03:59] Setting distributed timeout to 3600 seconds +[08-31 15:04:00] Found nccl from library libnccl.so.2 +[08-31 15:04:00] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:03] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:04:03] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:04:03] Found nccl from library libnccl.so.2 +[08-31 15:04:03] sglang-diffusion is using nccl==2.28.9 +[08-31 15:04:03] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:18] Applying performance_mode=speed +[08-31 15:10:18] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35000, "host": "0.0.0.0", "port": 34010, "webui": false, "webui_port": 12312, "scheduler_port": 36000, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_0_port34010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:10:18] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:32] Scheduler bind at endpoint: tcp://0.0.0.0:36000 +[08-31 15:10:32] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:10:32] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:10:32] Setting distributed timeout to 3600 seconds +[08-31 15:10:34] Found nccl from library libnccl.so.2 +[08-31 15:10:34] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:37] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:10:37] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:10:37] Found nccl from library libnccl.so.2 +[08-31 15:10:37] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:37] No pipeline_class_name specified, using model_index.json +[08-31 15:10:37] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:10:37] Loading pipeline modules... +[08-31 15:10:37] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:10:37] Diffusers version: 0.32.2 +[08-31 15:10:37] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:10:37] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-31 15:10:37] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_0_port34010/outputs/54126532-fff6-4b43-92f0-9355970c2bc9.mp4 + +[08-31 15:11:42] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:11:42] [InputValidationStage] started... +[08-31 15:11:42] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:11:42] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:11:42] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:11:42] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:11:43] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:44] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:45] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:46] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:47] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:48] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[08-31 15:11:49] [MiniMaxH3TextEncodingStage] finished in 6.9642 seconds +[2026-08-31 15:11:49] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:50] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[08-31 15:11:50] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:11:51] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:52] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:53] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[2026-08-31 15:11:54] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK +[08-31 15:11:54] [MiniMaxH3VisualEncodingStage] finished in 3.4498 seconds +[08-31 15:11:54] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:11:54] [MiniMaxH3AudioEncodingStage] finished in 0.4868 seconds +[08-31 15:11:54] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:11:54] [MiniMaxH3LatentPreparationStage] finished in 0.1038 seconds +[08-31 15:11:54] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:11:54] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:11:54] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:11:55] INFO: 127.0.0.1:60222 - "GET /v1/videos/54126532-fff6-4b43-92f0-9355970c2bc9 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_0_port34010/outputs/7513b404-346a-4a36-b2ec-50dbbaf743fd.mp4 + +[08-31 15:21:12] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:21:12] [InputValidationStage] started... +[08-31 15:21:12] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:21:12] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:21:12] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:21:12] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:21:13] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:14] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:15] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:16] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:17] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:18] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[08-31 15:21:19] [MiniMaxH3TextEncodingStage] finished in 6.8931 seconds +[2026-08-31 15:21:19] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:20] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[08-31 15:21:21] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:21:21] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:22] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:23] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[2026-08-31 15:21:24] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK +[08-31 15:21:24] [MiniMaxH3VisualEncodingStage] finished in 3.4687 seconds +[08-31 15:21:24] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:21:25] [MiniMaxH3AudioEncodingStage] finished in 0.2002 seconds +[08-31 15:21:25] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:21:25] [MiniMaxH3LatentPreparationStage] finished in 0.1032 seconds +[08-31 15:21:25] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:21:25] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-31 15:21:25] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:21:25] INFO: 127.0.0.1:60222 - "GET /v1/videos/7513b404-346a-4a36-b2ec-50dbbaf743fd HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00. at 0x7fdab4241940> +handle: .> +Traceback (most recent call last): + File "uvloop/cbhandles.pyx", line 61, in uvloop.loop.Handle._run + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/zmq/asyncio.py", line 151, in + self._fd, lambda: self._handle_events(0, 0) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/zmq/_future.py", line 675, in _handle_events + zmq_events = self._shadow_sock.get(EVENTS) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 964, in zmq.backend.cython._zmq.Socket.get + _getsockopt( + ^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 1491, in zmq.backend.cython._zmq._getsockopt + _check_rc(rc) + ^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 188, in zmq.backend.cython._zmq._check_rc + raise ContextTerminated(errno) + ^^^^^^^^^^^ +zmq.error.ContextTerminated: Context was terminated +[2026-08-31 15:30:10] INFO: Application shutdown complete. +[2026-08-31 15:30:10] INFO: Finished server process [2257385] +/root/.miniconda3/envs/sglang/lib/python3.12/multiprocessing/resource_tracker.py:279: UserWarning: resource_tracker: There appear to be 2 leaked semaphore objects to clean up at shutdown + warnings.warn('resource_tracker: There appear to be %d ' diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/cuda_visible_devices.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/cuda_visible_devices.txt rename to throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/cuda_visible_devices.txt diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/server.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/server.log new file mode 100644 index 0000000..1bebdc5 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/server.log @@ -0,0 +1,893 @@ +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:18] Applying performance_mode=speed +[08-31 15:10:18] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35010, "host": "0.0.0.0", "port": 34020, "webui": false, "webui_port": 12312, "scheduler_port": 36010, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:10:18] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:35] Scheduler bind at endpoint: tcp://0.0.0.0:36010 +[08-31 15:10:36] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:10:36] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:10:36] Setting distributed timeout to 3600 seconds +[08-31 15:10:36] Found nccl from library libnccl.so.2 +[08-31 15:10:36] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:10:39] Found nccl from library libnccl.so.2 +[08-31 15:10:39] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] No pipeline_class_name specified, using model_index.json +[08-31 15:10:39] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:10:39] Loading pipeline modules... +[08-31 15:10:39] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:10:39] Diffusers version: 0.32.2 +[08-31 15:10:39] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:10:39] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-31 15:10:39] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_1_port34020/outputs/c703762c-465c-4991-8ccd-7c4623250706.mp4 + +[08-31 15:11:45] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:11:45] [InputValidationStage] started... +[08-31 15:11:45] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:11:45] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:11:45] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:11:45] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:11:46] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:47] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:48] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:49] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:50] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:51] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:52] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:53] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:54] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:55] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[08-31 15:11:55] [MiniMaxH3TextEncodingStage] finished in 10.1368 seconds +[2026-08-31 15:11:56] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:57] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[08-31 15:11:58] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:11:58] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:11:59] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:12:00] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:12:01] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:12:02] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[08-31 15:12:03] [MiniMaxH3VisualEncodingStage] finished in 4.8130 seconds +[08-31 15:12:03] [MiniMaxH3AudioEncodingStage] started... +[2026-08-31 15:12:03] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[08-31 15:12:04] [MiniMaxH3AudioEncodingStage] finished in 0.4585 seconds +[08-31 15:12:04] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:12:04] [MiniMaxH3LatentPreparationStage] finished in 0.0984 seconds +[08-31 15:12:04] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:12:04] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-31 15:12:04] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:12:04] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:12:05] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + save_output_paths=lambda output_batch: self._save_output_paths( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/managers/gpu_worker.py", line 651, in _save_output_paths + output_batch.output_file_paths = save_outputs( + ^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1057, in save_outputs + frames = post_process_sample( + ^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1107, in post_process_sample + materialized = materialize_output_sample( + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 888, in materialize_output_sample + frames = _sample_to_uint8_frames(sample_without_audio) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 827, in _sample_to_uint8_frames + sample = (sample * 255).clamp(0, 255).to(torch.uint8) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.99 GiB is free. Including non-PyTorch memory, this process has 79.04 GiB memory in use. Of the allocated memory 70.81 GiB is allocated by PyTorch, and 4.02 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[08-31 15:23:01] +OOM detected. Possible solutions: + - If the OOM occurs during loading: + 1. Check available memory on every selected GPU, not only total capacity. + In multi-GPU runs, the least-free selected GPU is the bottleneck. + 2. For single-GPU deployment, use `--performance-mode memory`, component CPU offload, + or `--dit-layerwise-offload` for supported Wan/MOVA DiTs. + 3. For multi-GPU deployment, keep the default `--performance-mode auto` or set + `--use-fsdp-inference true` to shard DiT weights with FSDP. FSDP is not a + single-GPU substitute for CPU offload. + - If the OOM occurs during runtime: + 1. Reduce resolution, `--num-frames`, or batch size. + 2. Use `--performance-mode memory` for lower memory usage. + 3. Enable SP/Ulysses/Ring for sequence-heavy workloads in multi-GPU setups. + 4. Use FSDP, with CFG parallelism when supported, for validated multi-GPU workloads. + 5. Use a lower-memory attention backend or quantization when available. + Or, open an issue on GitHub https://github.com/sgl-project/sglang/issues/new/choose + +[2026-08-31 15:23:02] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:03] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:04] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:05] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:06] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:07] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:08] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:09] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:10] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:11] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:12] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:23:13] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[08-31 15:23:25] Failed to generate output for prompt: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258197 has 74.71 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +Traceback (most recent call last): + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/utils/logging_utils.py", line 628, in log_generation_timer + yield timer + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/openai/utils.py", line 368, in process_generation_batch + save_file_path_list = save_outputs( + ^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1057, in save_outputs + frames = post_process_sample( + ^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1107, in post_process_sample + materialized = materialize_output_sample( + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 888, in materialize_output_sample + frames = _sample_to_uint8_frames(sample_without_audio) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 827, in _sample_to_uint8_frames + sample = (sample * 255).clamp(0, 255).to(torch.uint8) + ~~~~~~~^~~~~ +torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258197 has 74.71 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[08-31 15:23:25] CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258197 has 74.71 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[2026-08-31 15:23:25] INFO: 127.0.0.1:38202 - "GET /v1/videos/c703762c-465c-4991-8ccd-7c4623250706 HTTP/1.1" 200 OK +[2026-08-31 15:28:10] INFO: Shutting down +[2026-08-31 15:28:10] INFO: Waiting for application shutdown. +[08-31 15:28:10] FastAPI app is shutting down... +[2026-08-31 15:28:10] INFO: Application shutdown complete. +[2026-08-31 15:28:10] INFO: Finished server process [2257455] +[08-31 15:28:14] Worker 0: Shutdown complete. +[08-31 15:28:17] kill_process_tree called: parent_pid=2257455, include_parent=False, pid=2257455 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/cuda_visible_devices.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/cuda_visible_devices.txt rename to throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/cuda_visible_devices.txt diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/server.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/server.log new file mode 100644 index 0000000..a7e6928 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/server.log @@ -0,0 +1,1123 @@ +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:19] Applying performance_mode=speed +[08-31 15:10:19] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35020, "host": "0.0.0.0", "port": 34030, "webui": false, "webui_port": 12312, "scheduler_port": 36020, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:10:19] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:35] Scheduler bind at endpoint: tcp://0.0.0.0:36020 +[08-31 15:10:36] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:10:36] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:10:36] Setting distributed timeout to 3600 seconds +[08-31 15:10:37] Found nccl from library libnccl.so.2 +[08-31 15:10:37] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:10:39] Found nccl from library libnccl.so.2 +[08-31 15:10:39] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/outputs/79e3ea25-9210-4f70-81d2-f658aa4fcd40.mp4 + +[08-31 15:11:46] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:11:46] [InputValidationStage] started... +[08-31 15:11:46] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:11:46] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:11:46] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:11:46] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:11:47] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:48] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:49] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:50] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:51] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:52] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[08-31 15:11:53] [MiniMaxH3TextEncodingStage] finished in 6.8910 seconds +[2026-08-31 15:11:53] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:54] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[08-31 15:11:55] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:11:55] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:56] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:57] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[2026-08-31 15:11:58] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK +[08-31 15:11:58] [MiniMaxH3VisualEncodingStage] finished in 3.4000 seconds +[08-31 15:11:58] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:11:59] [MiniMaxH3AudioEncodingStage] finished in 0.2471 seconds +[08-31 15:11:59] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:11:59] [MiniMaxH3LatentPreparationStage] finished in 0.0769 seconds +[08-31 15:11:59] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:11:59] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:11:59] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:11:59] INFO: 127.0.0.1:46804 - "GET /v1/videos/79e3ea25-9210-4f70-81d2-f658aa4fcd40 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_2_port34030/outputs/8ef4a6ea-55ea-4697-8a5b-2a450c28db30.mp4 + +[08-31 15:21:17] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:21:17] [InputValidationStage] started... +[08-31 15:21:17] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:21:17] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:21:17] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:21:17] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:21:18] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:19] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:20] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:21] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:22] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:23] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[08-31 15:21:23] [MiniMaxH3TextEncodingStage] finished in 6.8373 seconds +[2026-08-31 15:21:24] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:25] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[08-31 15:21:25] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:21:26] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:27] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:28] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[2026-08-31 15:21:29] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK +[08-31 15:21:29] [MiniMaxH3VisualEncodingStage] finished in 3.4246 seconds +[08-31 15:21:29] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:21:29] [MiniMaxH3AudioEncodingStage] finished in 0.2029 seconds +[08-31 15:21:29] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:21:29] [MiniMaxH3LatentPreparationStage] finished in 0.0803 seconds +[08-31 15:21:29] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:21:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:21:29] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:21:30] INFO: 127.0.0.1:46804 - "GET /v1/videos/8ef4a6ea-55ea-4697-8a5b-2a450c28db30 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00. at 0x7f65e430d940> +handle: .> +Traceback (most recent call last): + File "uvloop/cbhandles.pyx", line 61, in uvloop.loop.Handle._run + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/zmq/asyncio.py", line 151, in + self._fd, lambda: self._handle_events(0, 0) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/zmq/_future.py", line 675, in _handle_events + zmq_events = self._shadow_sock.get(EVENTS) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 964, in zmq.backend.cython._zmq.Socket.get + _getsockopt( + ^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 1491, in zmq.backend.cython._zmq._getsockopt + _check_rc(rc) + ^^^^^^^^^^^ + File "zmq/backend/cython/_zmq.py", line 188, in zmq.backend.cython._zmq._check_rc + raise ContextTerminated(errno) + ^^^^^^^^^^^ +zmq.error.ContextTerminated: Context was terminated +[2026-08-31 15:30:10] INFO: Application shutdown complete. +[2026-08-31 15:30:10] INFO: Finished server process [2257525] +/root/.miniconda3/envs/sglang/lib/python3.12/multiprocessing/resource_tracker.py:279: UserWarning: resource_tracker: There appear to be 2 leaked semaphore objects to clean up at shutdown + warnings.warn('resource_tracker: There appear to be %d ' diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/cuda_visible_devices.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/cuda_visible_devices.txt rename to throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/cuda_visible_devices.txt diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/server.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/server.log new file mode 100644 index 0000000..eacab7d --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/server.log @@ -0,0 +1,893 @@ +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:18] Applying performance_mode=speed +[08-31 15:10:18] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35030, "host": "0.0.0.0", "port": 34040, "webui": false, "webui_port": 12312, "scheduler_port": 36030, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:10:18] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:10:35] Scheduler bind at endpoint: tcp://0.0.0.0:36030 +[08-31 15:10:36] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:10:36] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:10:36] Setting distributed timeout to 3600 seconds +[08-31 15:10:36] Found nccl from library libnccl.so.2 +[08-31 15:10:36] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:10:39] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:10:39] Found nccl from library libnccl.so.2 +[08-31 15:10:39] sglang-diffusion is using nccl==2.28.9 +[08-31 15:10:39] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/server_3_port34040/outputs/1480790e-4747-4419-95fd-d5b401be060f.mp4 + +[08-31 15:11:46] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:11:46] [InputValidationStage] started... +[08-31 15:11:46] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:11:46] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:11:46] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:11:46] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:11:47] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:48] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:49] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:50] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:51] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:52] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:53] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:54] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:55] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:56] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[08-31 15:11:57] [MiniMaxH3TextEncodingStage] finished in 10.9353 seconds +[2026-08-31 15:11:57] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:58] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:11:59] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[08-31 15:12:00] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:12:00] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:12:01] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:12:02] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:12:03] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:12:04] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[08-31 15:12:05] [MiniMaxH3VisualEncodingStage] finished in 4.8235 seconds +[08-31 15:12:05] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:12:05] [MiniMaxH3AudioEncodingStage] finished in 0.2471 seconds +[08-31 15:12:05] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:12:05] [MiniMaxH3LatentPreparationStage] finished in 0.0918 seconds +[08-31 15:12:05] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:12:05] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-31 15:12:05] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:12:05] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:12:06] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + save_output_paths=lambda output_batch: self._save_output_paths( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/managers/gpu_worker.py", line 651, in _save_output_paths + output_batch.output_file_paths = save_outputs( + ^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1057, in save_outputs + frames = post_process_sample( + ^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1107, in post_process_sample + materialized = materialize_output_sample( + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 888, in materialize_output_sample + frames = _sample_to_uint8_frames(sample_without_audio) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 827, in _sample_to_uint8_frames + sample = (sample * 255).clamp(0, 255).to(torch.uint8) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.99 GiB is free. Including non-PyTorch memory, this process has 79.05 GiB memory in use. Of the allocated memory 70.81 GiB is allocated by PyTorch, and 4.03 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[08-31 15:23:02] +OOM detected. Possible solutions: + - If the OOM occurs during loading: + 1. Check available memory on every selected GPU, not only total capacity. + In multi-GPU runs, the least-free selected GPU is the bottleneck. + 2. For single-GPU deployment, use `--performance-mode memory`, component CPU offload, + or `--dit-layerwise-offload` for supported Wan/MOVA DiTs. + 3. For multi-GPU deployment, keep the default `--performance-mode auto` or set + `--use-fsdp-inference true` to shard DiT weights with FSDP. FSDP is not a + single-GPU substitute for CPU offload. + - If the OOM occurs during runtime: + 1. Reduce resolution, `--num-frames`, or batch size. + 2. Use `--performance-mode memory` for lower memory usage. + 3. Enable SP/Ulysses/Ring for sequence-heavy workloads in multi-GPU setups. + 4. Use FSDP, with CFG parallelism when supported, for validated multi-GPU workloads. + 5. Use a lower-memory attention backend or quantization when available. + Or, open an issue on GitHub https://github.com/sgl-project/sglang/issues/new/choose + +[2026-08-31 15:23:02] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:03] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:04] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:05] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:06] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:07] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:08] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:09] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:10] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:11] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:12] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:13] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:23:14] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[08-31 15:23:25] Failed to generate output for prompt: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258192 has 74.72 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +Traceback (most recent call last): + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/utils/logging_utils.py", line 628, in log_generation_timer + yield timer + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/openai/utils.py", line 368, in process_generation_batch + save_file_path_list = save_outputs( + ^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1057, in save_outputs + frames = post_process_sample( + ^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 1107, in post_process_sample + materialized = materialize_output_sample( + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 888, in materialize_output_sample + frames = _sample_to_uint8_frames(sample_without_audio) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/root/.miniconda3/envs/sglang/lib/python3.12/site-packages/sglang/multimodal_gen/runtime/entrypoints/utils.py", line 827, in _sample_to_uint8_frames + sample = (sample * 255).clamp(0, 255).to(torch.uint8) + ~~~~~~~^~~~~ +torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258192 has 74.72 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[08-31 15:23:25] CUDA out of memory. Tried to allocate 4.18 GiB. GPU 0 has a total capacity of 83.05 GiB of which 3.67 GiB is free. Including non-PyTorch memory, this process has 4.65 GiB memory in use. Process 2258192 has 74.72 GiB memory in use. Of the allocated memory 4.18 GiB is allocated by PyTorch, and 18.19 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://docs.pytorch.org/docs/stable/notes/cuda.html#optimizing-memory-usage-with-pytorch-cuda-alloc-conf) +[2026-08-31 15:23:25] INFO: 127.0.0.1:59626 - "GET /v1/videos/1480790e-4747-4419-95fd-d5b401be060f HTTP/1.1" 200 OK +[2026-08-31 15:28:10] INFO: Shutting down +[2026-08-31 15:28:10] INFO: Waiting for application shutdown. +[08-31 15:28:10] FastAPI app is shutting down... +[2026-08-31 15:28:10] INFO: Application shutdown complete. +[2026-08-31 15:28:10] INFO: Finished server process [2257595] +[08-31 15:28:15] Worker 0: Shutdown complete. +[08-31 15:28:18] kill_process_tree called: parent_pid=2257595, include_parent=False, pid=2257595 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/sglang_pip_show.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/sglang_pip_show.txt new file mode 100644 index 0000000..94f1a54 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/sglang_pip_show.txt @@ -0,0 +1,211 @@ +Name: sglang +Version: 0.5.17 +Summary: SGLang is a fast serving framework for large language models and vision language models. +Home-page: https://github.com/sgl-project/sglang +Author: +Author-email: +License: Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023-2024 SGLang Team + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Location: /root/.miniconda3/envs/sglang/lib/python3.12/site-packages +Requires: aiohttp, anthropic, apache-tvm-ffi, blobfile, build, compressed-tensors, cuda-python, datasets, distro, easydict, einops, fastapi, flash-attn-4, flashinfer_python, gguf, helion, humming-kernels, interegular, IPython, kernels, llguidance, mistral_common, modelscope, msgspec, ninja, numba, numpy, nvidia-cutlass-dsl, nvidia-mathdx, nvidia-ml-py, openai, openai-harmony, orjson, outlines, packaging, partial_json_parser, pillow, prometheus-client, psutil, py-spy, pybase64, pydantic, python-multipart, pyzmq, quack-kernels, requests, scipy, sentencepiece, setproctitle, sgl-deep-gemm, sglang-kernel, smg-grpc-servicer, soundfile, tiktoken, tilelang, timm, tokenspeed_mla, torch, torch_memory_saver, torchao, torchaudio, torchcodec, torchvision, tqdm, transformers, uvicorn, uvloop, watchfiles, xgrammar, xxhash, zstandard +Required-by: diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/source_sha256.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/source_sha256.txt new file mode 100644 index 0000000..4b79c7d --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-150959/source_sha256.txt @@ -0,0 +1,3 @@ +0ab652c1e054594e89f9fd7fb69ac98b881ddd677e716bec338f6b76757218c9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/records.json +8bd8d7771294c9dfa1192b50252707666d5fc739224151084129a5ff308b1bdb /data/wxy/sskj-h3/throughput/sglang-base/scripts/ref2va_feishu_bench.py +83c31cef6b9ecf108346077c5177193978199bf06919a1b95ea28c47ae359db7 ./run_sglang_h3_ref2va_feishu_base_tp2x4.sh diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_0_case01_port34010/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_0_case01_port34010/client.log new file mode 100644 index 0000000..867c3ba --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_0_case01_port34010/client.log @@ -0,0 +1 @@ +warmup case=case01_recvtQUD5nFMf0 success=True latency=589.73s error=None diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_1_case02_port34020/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_1_case02_port34020/client.log new file mode 100644 index 0000000..91a4527 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_1_case02_port34020/client.log @@ -0,0 +1 @@ +warmup case=case02_recvtQUD5nyYxg success=True latency=701.47s error=None diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_2_case03_port34030/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_2_case03_port34030/client.log new file mode 100644 index 0000000..ec8d8e6 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_2_case03_port34030/client.log @@ -0,0 +1 @@ +warmup case=case03_recvtQUD5nP5Ip success=True latency=601.61s error=None diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_3_case04_port34040/client.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_3_case04_port34040/client.log new file mode 100644 index 0000000..af09cc4 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/batch_01/client_3_case04_port34040/client.log @@ -0,0 +1 @@ +warmup case=case04_recvtQW6hmRkEt success=True latency=712.65s error=None diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/gpu_before.csv b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/gpu_before.csv new file mode 100644 index 0000000..98768dc --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/gpu_before.csv @@ -0,0 +1,8 @@ +0, P8, 0 MiB, 0 % +1, P8, 0 MiB, 0 % +2, P8, 0 MiB, 0 % +3, P8, 0 MiB, 0 % +4, P8, 0 MiB, 0 % +5, P8, 0 MiB, 0 % +6, P8, 0 MiB, 0 % +7, P8, 0 MiB, 0 % diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_assets_sha256.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_assets_sha256.txt new file mode 100644 index 0000000..5d59133 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_assets_sha256.txt @@ -0,0 +1,40 @@ +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/女生音色.mp3 +89b591ad3312c821dd897f9c93c3ae88cdcf63cce37aea15d818932ae4552c65 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/服装.png +7c208c7a449e1d361631b52af9a085cbbd83bce50d0b1e6777bc88d95c2d7321 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/楚晨.jpg +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case01_recvtQUD5nFMf0/江岁欢.webp +86c354f77ae02914539b67d43cd86e1921c0ad803f910c87193d90f5ad1c9889 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/场景.webp +fb969a36612fb37407aaa2f9a49cecce5dac8c11ccbeef500a8a602048798d0e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/服装.png +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢.webp +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/江岁欢声音.mp3 +30acde11d4ee1b645ad28de19ce1e21ff2feb9015102ef995d2b51e20740230d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦.webp +a17932e57ff71a22e55f8f8f10c3dc8b92a49ef299ca236cc08981ebd477a0f0 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case02_recvtQUD5nyYxg/顾锦声音.MP3 +92c6128fba4dd106f472634f0807f86a10b8067f953a94c86a6f4eb7903e9e61 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/惠通法师.webp +196b1d6b102437c7c4d5fc46a16c687875e2f3b636dd372a30a74d6dbf6f14ee /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/服装.webp +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/江岁欢.webp +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case03_recvtQUD5nP5Ip/音色.mp3 +858a1a1e4a1b714eadedec14f3d792e1d22948aacef834f2f551c434c8daf9fb /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/场景图.jpg +b34c386142933e792e3bd0ff427e3cc4671c44add7e0e847a61c96ef2735ce62 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/李公公.jpeg +28f0f378207432454b204f95fb730e0cedb39e693307e72fc1e72f03de1e405d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢.webp +999617a42377a8c79c2f68fe2f203272fd2f037a32de694c17d55ebefea5d19f /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢服装参考.png +926a470dd4f298735aac5e2a3cd9f51b7277b619dfd7c538a52f4d9adb6092b9 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case04_recvtQW6hmRkEt/江岁欢音色.mp3 +b59c69c49a9c1c91bca2bfb85a39db39264b51e2e9108438fd466c010d271adc /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/场景.jpg +84813966d8e94d4ae03b14775f5bfcd0cf1f7baf16205dcd56f90eb111fa2307 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.mp3 +f62a5513f47a1d2b4c2b980ed8852c634d2c26aafdd7d4da0dccff1224cb132c /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/谢宁.png +30acde11d4ee1b645ad28de19ce1e21ff2feb9015102ef995d2b51e20740230d /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦.webp +4c4d19ac7c259a028f014db52252240a0eda2bc81b56c30b1da48e2013439cfd /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case05_recvtQWnsZrwQR/顾锦服装.png +3fb96c81d592a5b92c3414e43e96b090049a9c038c11b39d26ceefac8c2d1f2e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/吴耐音色.mp3 +a2379f9be2a421130aa10e473c3ba7394428d068cbf258796f259de948ce77de /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽.jpg +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/沙丽丽音色.mp3 +4d4686fbdaa53a0507e9a82840a2676631412d899631d2270c7d839cabb3ea1c /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪.png +4a4460eb9661ee88c162ebf1d3711c13ff7423ffaab1405b702231b63320308e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case06_recvtQWnV7K4fX/白雪音色.mp3 +851b1a0fbf5a30dda81ef572dea6c7392839e1730761772d57898fb504b6a88a /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/吴耐音色.mp3 +a2379f9be2a421130aa10e473c3ba7394428d068cbf258796f259de948ce77de /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽.jpg +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case07_recvtQXV4n4LMP/沙丽丽音色.mp3 +3fb96c81d592a5b92c3414e43e96b090049a9c038c11b39d26ceefac8c2d1f2e /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐.png +54bf31ee2fa52cba5809b20911db8640671b2c0c41b040bc8aa17338a04189c2 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/吴耐音色.mp3 +7b558e5897509b0dbf464d61671d1255b1c90c69d0f8355f2c56eb24246de666 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/场景图.png +92c2300888162c422b623ce895dfdbd8c7020ef686ce2f1d3d2aa59d5a32652f /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽.png +20c00cb02ffec3f630f82ca71644b5ee078b6fc8ad8eea62488d610f8726ead6 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/沙丽丽音色.mp3 +1d446df46ebef4ee697d29cef5b0f0ce85d5778992bd8885fa1c96e82fc95ef4 /data/wxy/sskj-h3/throughput/sglang-base/inputs/ref2va-feishu-20260831/assets/case08_recvtQXV4n8MZ1/王刚.png diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_records.json b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_records.json new file mode 100644 index 0000000..716b6b7 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/input_records.json @@ -0,0 +1,296 @@ +{ + "ok": true, + "identity": "user", + "data": { + "data": [ + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.png(服装),图三=楚晨.jpg(楚晨形象),音色一=女生音色.mp3(声音)\n时辰:夜晚\n色调:暖色调\n色温:12000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,声音参考 音色一,服装参考 图二,楚晨形象参考 图三\n镜头1(00-03s):\n景别:近景\n运镜:轻微手持前推\n镜头角度:平视偏仰\n前景:被夜风吹动的帐帘边角、火把虚焦\n画面内容:江岁欢猛地停住,隔着半掀帐帘看见楚晨立在夜色里,人物被帐帘切割成框中框构图,第一眼就建立“熟人重逢”的冲击。\n人物动作:江岁欢脚步顿住,肩背绷紧,唇微张\n表情/情绪:震惊失神,眼睛瞬间睁大,眉毛猛地抬起,嘴唇发颤,情绪从不敢置信迅速滑向酸涩\n光线光影:冷色月光打在脸侧,另一侧被火把暖光擦亮,冷暖撕裂感明显,暗部压低。\n台词/OS:江岁欢(声音发颤):“师……师父?!”\n衔接:台词落下后不切空,直接切楚晨反应,形成对视钩子\n镜头2(03-06s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢肩部虚焦遮挡\n画面内容:楚晨站在帐外半明半暗处,身后夜色沉,人物略偏画面一侧,留出另一侧空白,强化身份落差与信息冲击。\n人物动作:他轻轻点头,没有上前,只稳稳看着她\n表情/情绪:克制温和,眼神放松下来,眼尾微弯,嘴角极轻地提起,情绪从确认过渡到安抚\n光线光影:侧后方冷月勾出轮廓光,火把暖光落在眼底,形成一线笑意高光。\n台词/OS:楚晨:“我也穿过来了。比你早几年。现在,我叫楚晨,东宸王。”\n衔接:身份信息说完留0.5秒停顿,切江岁欢特写接情绪余韵\n镜头3(06-08s):\n景别:特写\n运镜:静止微呼吸感\n镜头角度:平视\n前景:无\n画面内容:江岁欢脸部占满竖屏中上区域,背景帐外火光虚化\n人物动作:她一动不动,只是呼吸微乱\n表情/情绪:怔住发酸,眼神停住,睫毛轻颤,眼眶一点点泛红,嘴唇抿紧又松开,情绪从震惊过渡到终于确认\n光线光影:冷光为主,眼底被暖火映出一点湿润亮点,细节压住不过分煽情。\n台词/OS:无\n衔接:切回双人问答,承接她恢复思考\n镜头4(08-10s):\n景别:双人中景\n运镜:稳镜,小幅横移调整站位\n镜头角度:平视\n前景:帐绳、旗角\n画面内容:两人相对而立,江岁欢在前景偏左,楚晨在后景偏右,先清楚交代距离与朝向,方便后续对话承接。\n人物动作:江岁欢微微上前半步\n表情/情绪:试探迟疑,眉心轻收,眼神紧盯对方,像怕一眨眼人就消失\n光线光影:月光压主色,火把在衣边形成局部暖边\n台词/OS:江岁欢:“你怎么认出我的?”\n衔接:按视线方向切楚晨回答\n镜头5(10-13s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:江岁欢发丝虚焦扫过画面边缘\n画面内容:楚晨目光落在她身上,背景彻底虚化,突出“认出她”的答案。\n人物动作:他视线下落一瞬,像是回忆她处理伤口时的手法\n表情/情绪:笃定温柔,眼神沉稳,眉头舒展,嘴角有淡淡笑意,情绪从理性判断过渡到熟稔亲近\n光线光影:侧光刻出鼻梁与颧骨,眼神光干净,暗部保留层次。\n台词/OS:楚晨:“你给人缝伤口的针法,全世界独一份。看一眼就知道。”\n衔接:回答结束切江岁欢反应,再以行动收段\n镜头6(13-15s):\n景别:中近景\n运镜:轻微跟拍起势\n镜头角度:平视\n前景:帐帘掀动\n画面内容:楚晨转身朝帐内方向示意,江岁欢站位顺势跟上,完成从重逢到办正事的节奏切换\n人物动作:楚晨侧身抬手示意入帐,江岁欢立刻跟步\n表情/情绪:楚晨沉稳收束,江岁欢迅速压下情绪,转为专注\n光线光影:帐外冷光,帐内透出暖黄光,门口形成明显冷暖分界。\n台词/OS:楚晨:“走吧,先救人。”\n衔接:下一段单独转场,承接两人入帐动作\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "IhtLb1Sm2oAt2ZxCEMHc5Gvqndf", + "name": "女生音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "RsW0bqhb5oiR6sx5lkUcAZ2lndc", + "name": "服装.png", + "size": 2270190 + }, + { + "file_token": "D0sObtnsnomffExy7EscGLcsn4g", + "name": "楚晨.jpg", + "size": 413454 + }, + { + "file_token": "GemJbvmjkopxN2xlWGxcsZyWnab", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.webp(场景),图二=江岁欢.webp(江岁欢形象),图三=服装.png(服装),图四=顾锦.webp(顾锦人脸),音色一=江岁欢声音.mp3(江岁欢声音),音色二=顾锦声音.MP3(顾锦声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n场景参考 图一\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图二,声音参考 音色一,江岁欢服装参考 图三,顾锦人脸参考 图四,顾锦声音参考 音色二\n镜头1(00-02s):\n景别:中近景双人\n运镜:轻微推近\n镜头角度:平视偏侧\n前景:半掩床幔、烛火虚化\n画面内容:江岁欢坐在床边或榻边,顾锦站在她身前一步距离,二人同处狭窄夜室,位置关系先交代清楚\n人物动作:江岁欢抬眼看向顾锦,压低声音说出关键词\n表情/情绪:江岁欢克制紧张,眼神迟疑后定住,睫毛轻颤,嘴唇微启又收;顾锦原本压着情绪,听到关键字前神色冷沉\n光线光影:冷色月光从侧后打入,烛火暖光落在下半张脸,形成冷暖对抗与半边阴影\n台词/OS:江岁欢:“……他们提到‘毒蝎’。”\n衔接:台词落下立刻切顾锦动作爆发特写,前3秒直接抓人,符合短剧“情绪钩子”策略。\n镜头2(02-04s):\n景别:手部特写\n运镜:瞬间切入,轻微手持感\n镜头角度:斜侧近距\n前景:江岁欢衣袖边缘\n画面内容:顾锦的手猛地扣住江岁欢手腕,指节发白,力道骤紧\n人物动作:顾锦骤然发力攥紧;江岁欢手腕被拽得偏过去\n表情/情绪:动作镜头,以力道和急促感传达失控杀意\n光线光影:一束冷光打在手背与腕骨上,暗部压低,肤色与阴影反差明显\n台词/OS:无\n衔接:动作接动作,下一镜头切顾锦面部近景承接失控反应。\n镜头3(04-07s):\n景别:近景\n运镜:快速推近后微停\n镜头角度:微仰拍\n前景:虚化的顾锦肩线占据画面下缘\n画面内容:顾锦逼近画面,眼底寒意陡然翻起,压迫感直冲镜头\n人物动作:顾锦抓着江岁欢手腕不放,喉结轻滚,几乎是一字一顿地逼问\n表情/情绪:压抑暴怒,眼神发冷,眉心骤然收紧,牙关轻咬,嘴角绷直,情绪从克制过渡到近乎失控的杀意\n光线光影:侧后主光削出下颌线与鼻梁高光,另一侧陷入深影,形成强烈明暗对照\n台词/OS:顾锦:“你确定是……毒蝎?”\n衔接:台词末尾停0.3秒,切江岁欢吃痛反应特写。\n镜头4(07-09s):\n景别:近景\n运镜:轻微后撤\n镜头角度:平视\n前景:顾锦袖口虚化压前景\n画面内容:江岁欢被他的力道带得微微偏身,手腕发红\n人物动作:她下意识抽气,另一只手轻扶被抓住的手腕\n表情/情绪:吃痛隐忍,眉尖轻蹙,眼尾微红,嘴唇抿紧后松开,情绪从忍痛过渡到确认\n光线光影:暖烛光打在脸侧,冷月光勾出发丝边缘,痛感更清晰\n台词/OS:江岁欢:“是,我没有听错。”\n衔接:接顾锦松手动作,切回双人中景显示关系变化。3811\n镜头5(09-11s):\n景别:中近景双人\n运镜:定镜后轻微焦点转移\n镜头角度:平视\n前景:床幔边缘形成框中框\n画面内容:顾锦猛地松手退半步,江岁欢留在前景,顾锦落入后景阴影,权力重心瞬间转移\n人物动作:顾锦手指骤松,垂在身侧;江岁欢收回手腕,微微揉按\n表情/情绪:顾锦意识到失态后更冷,眼神阴鸷沉下去,呼吸压得很低;江岁欢警惕又不敢追问\n光线光影:前景暖、后景冷,顾锦半张脸没入阴影,形成心理隔绝\n台词/OS:无\n衔接:通过焦点从前景江岁欢转到后景顾锦,下一镜头进入顾锦内在信息抛出。\n镜头6(11-15s):\n景别:近景\n运镜:缓慢推近\n镜头角度:微侧\n前景:一缕虚化烛火\n画面内容:顾锦立在桌边阴影里,侧脸冷硬,像是在迅速拼合线索\n人物动作:他缓慢抬眼,视线越过江岁欢落向虚空\n表情/情绪:阴沉克制,眼神停住,睫毛下压,嘴角绷紧,情绪从失态回收成可怕的冷静\n光线光影:冷月光扫过眼睛,留下短促寒光;背景暖烛微颤\n台词/OS:顾锦:“毒蝎……就是我一直在查的人。”\n衔接:台词说完留0.5秒余韵,下一段承接他情绪爆发砸桌动作。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C6iEbjhRqoyvRwx7UyNcPGiTndn", + "name": "江岁欢声音.mp3", + "size": 116033 + }, + { + "file_token": "LV5MbbntTogizrxYR7OcG2NLnod", + "name": "顾锦声音.MP3", + "size": 57728 + } + ], + [ + { + "file_token": "DEGrbMr3foZ7SOxWYsEcW834nvd", + "name": "服装.png", + "size": 2231656 + }, + { + "file_token": "RjffbIAVcoogcWxLNPxcsarBnnd", + "name": "顾锦.webp", + "size": 9286 + }, + { + "file_token": "Tupibsh5OoYfCZxSr0ScIsMKnZd", + "name": "场景.webp", + "size": 10964 + }, + { + "file_token": "RrLdbdEbWoyZRdxoUjEcuTK6nXK", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=江岁欢.webp(江岁欢形象),图二=服装.webp(服装),图三=惠通法师.webp(慧通法师形象),音色一=音色.mp3(江岁欢声音)\n时辰:清晨\n色调:暖色调\n色温:2000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,微风,江岁欢形象参考 图一,服装参考 图二,声音参考 音色一,慧通法师形象参考 图三\n生成段落1:宝华殿法事,时长约0-15s\n镜头1(00-03s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:平视\n前景:虚化香烟、僧袍下摆\n画面内容:宝华殿内法事进行,文武百官及家眷跪满殿中,江岁欢独自跪在角落,和整片肃穆人群形成轻微孤立感,不对称构图突出她的心理抽离。\n人物动作:江岁欢低头跪着,手指轻轻攥住膝上衣料。\n表情/情绪:冷静压抑,眼神微沉,眉心轻蹙,嘴唇抿紧后缓缓松开,情绪从观察过渡到失望。\n光线光影:殿内低调照明,暖色烛火混合冷色天光,脸侧有细窄高光,暗部压低增强肃杀感。\n台词/OS:江岁欢OS:这么多人,竟没一个真难过。\n衔接:台词不断,直接接背后法师靠近,开头即进情绪钩子。\n镜头2(03-05s):\n景别:中景\n运镜:肩后轻移\n镜头角度:微俯\n前景:前排跪着的官眷、蒲团边角\n画面内容:慧通法师从后方走近,停在江岁欢身后半步,先清楚交代站跪位置关系。\n人物动作:法师抬手,在她肩上轻拍三下。\n表情/情绪:江岁欢先是一顿,睫毛轻颤,呼吸停住,情绪从失神过渡到警觉;法师神情平和。\n光线光影:袈裟边缘被侧后方烛光勾亮,江岁欢肩头有一线暖光。\n台词/OS:无\n衔接:第三下拍肩完成后切法师转身背影,动作接动作。\n镜头3(05-07s):\n景别:特写\n运镜:定镜\n镜头角度:平视\n前景:半虚化念珠\n画面内容:慧通法师双手合十,一言不发转身离开,只留给她一个背影。\n人物动作:法师平稳离去,江岁欢视线跟过去。\n表情/情绪:江岁欢眼神停住,眉尾微抬,嘴角轻绷,情绪从疑惑过渡到若有所思。\n光线光影:背影落在冷暖交界处,脸侧有一点冷光。\n台词/OS:无\n衔接:切旁边女眷低声耳语,补充信息。\n镜头4(07-10s):\n景别:近景\n运镜:小幅推近\n镜头角度:平视\n前景:女眷衣袖、垂落发簪\n画面内容:女眷A微侧过身,压低声音对江岁欢耳语,眼睛瞪大。\n人物动作:女眷A朝法师背影轻轻示意。\n表情/情绪:惊喜激动,眼睛睁圆,眉毛高挑,嘴角压着兴奋,情绪从震惊过渡到笃定。\n光线光影:烛火暖光扫过眼周,发簪闪出细碎亮点。\n台词/OS:女眷A:天呐,那是慧通法师!明安寺住持,能看人一生!定是与你有缘!\n衔接:耳语结束切江岁欢反应特写,保留半秒余韵。\n镜头5(10-12s):\n景别:特写\n运镜:缓慢推近\n镜头角度:平视\n前景:飘过的香烟\n画面内容:江岁欢望着慧通法师离开的方向,背景人影虚化,强制锁定她的面部变化。\n人物动作:她微微抬眼,袖中手指收紧。\n表情/情绪:心中一动,眼神短暂停住,睫毛轻颤,嘴唇轻轻分开又收回,情绪从疑惑过渡到心生波澜。\n光线光影:冷光落进眼底,脸下半部有烛火暖影。\n台词/OS:无\n衔接:用钟声做听觉转场,切法事结束。\n镜头6(12-15s):\n景别:中景\n运镜:平稳横移\n镜头角度:平视\n前景:起身的人群、晃动袍袖\n画面内容:钟声响起,法事结束,众人纷纷起身,江岁欢也准备离开,一名僧人上前拦住她。人物站位清晰。\n人物动作:江岁欢刚起身迈步,僧人合十挡在她前方。\n表情/情绪:江岁欢短暂戒备,眼神一凝,嘴角绷住;僧人恭敬平稳。\n光线光影:殿门方向较亮,殿内依旧偏暗,边缘轮廓光明显。\n台词/OS:僧人:江施主留步,住持想见您。\n衔接:下一段单独转场,不在本段硬切新场景。\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "SCHJbmbBCoj52mxhyURc4nhfnQb", + "name": "音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "Y6U0b9mAcoGJ4Dx1wBxcNx3HnEf", + "name": "江岁欢.webp", + "size": 11222 + }, + { + "file_token": "DMTcbXafDoICwDx4p4tcXgXUnod", + "name": "服装.webp", + "size": 8484 + }, + { + "file_token": "TDLdba2mtoIVBCxNhexcbjaUn6b", + "name": "惠通法师.webp", + "size": 12780 + } + ] + ], + [ + "参考对应:图一=场景图.jpg(场景),图二=江岁欢.webp(人脸),图三=江岁欢服装参考.png(服装),图四=李公公.jpeg(人物形象),音色一=江岁欢音色.mp3(声音)\n时辰:正午\n色调:暖色调\n色温:8000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢人脸参考 图二,服装参考 图三,李公公人物形象参考 图四,声音参考 音色一\n镜头1(00-02s):\n景别:中近景\n运镜:轻微推近\n镜头角度:平视\n前景:药柜边缘、垂下的药签\n画面内容:医馆内,江岁欢正俯身为病人针灸,莹陶在一旁药案前抓药,空间关系清楚,前后层次分明\n人物动作:江岁欢稳稳落下最后一针,莹陶低头称药\n表情/情绪:江岁欢神情专注,眼神沉静,眉心微收后松开;莹陶神色认真,动作利落\n光线光影:白日柔和窗光洒入,木格窗投下浅浅光影,药柜暗部压低,脸侧有柔和侧光\n台词/OS:无\n衔接:医馆门口传来脚步声,下一镜头切门口来人\n镜头2(02-04s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:门框、半掀的布帘\n画面内容:李公公带着两个小太监走进医馆,停在门内打量四周,气场压住屋内日常感\n人物动作:李公公缓步入内,抬眼环视一圈,微微点头;两个小太监分立身后\n表情/情绪:李公公神色审视,眼神细细扫过,嘴角平直后略微一沉,带着宫里人的压迫感\n光线光影:门外亮光从背后压进来,形成轻微逆光轮廓,室内暖木色与门口冷亮形成对比\n台词/OS:李公公:哪位是江大夫?\n衔接:问话落下,切回江岁欢反应\n镜头3(04-06s):\n景别:中近景\n运镜:先稳后轻推\n镜头角度:平视\n前景:病人肩侧虚化、针包边角\n画面内容:江岁欢收针起身,转向李公公,身后病人与药案仍在画面里,人物位置关系明确\n人物动作:她收回银针,直起身,抬眸应声\n表情/情绪:神色平静,眼神清明,嘴唇轻抿后自然松开,情绪从专注过渡到沉着应对\n光线光影:窗侧柔光照亮半张脸,发丝有细微轮廓光,背景略暗突出人物\n台词/OS:江岁欢:我是。公公有何事?\n衔接:接对方来意说明,切李公公中近景\n镜头4(06-09s):\n景别:中近景\n运镜:缓慢推近\n镜头角度:微仰\n前景:小太监肩侧虚焦\n画面内容:李公公站定,对着江岁欢宣旨般说明来意,两个小太监在后形成宫廷压迫感\n人物动作:李公公略抬下巴,抬手示意请人\n表情/情绪:神情克制,眼神带审度,语气不容推辞,面部松弛却自带威压\n光线光影:门口逆光勾出衣袍边缘,脸上是偏冷的正侧光,人物层次清晰\n台词/OS:李公公:皇上龙体欠安,特来请江大夫入宫诊治。\n衔接:来意说完,切莹陶受惊反应和袖口动作\n镜头5(09-11s):\n景别:近景\n运镜:轻微下摇到手部\n镜头角度:平视\n前景:药包、散落药材\n画面内容:莹陶站在药案旁,明显被“入宫诊治”吓到,伸手拉住江岁欢袖子\n人物动作:莹陶手一抖,药材微散,立刻扯住江岁欢袖口,小幅度靠近她\n表情/情绪:惊慌失措,眼睛睁大,眉毛扬起后拧紧,嘴巴微张,情绪从愣住过渡到担忧\n光线光影:案上暖光映亮手部,人物脸侧是柔和侧光,袖口布料有微弱高光\n台词/OS:莹陶:小姐,治不好可是要杀头的……\n衔接:袖口被拉住,下一镜头切江岁欢安抚特写\n镜头6(11-14s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:莹陶手指攥着的袖口虚化在下方\n画面内容:江岁欢微侧脸看向莹陶,语气压低安抚,随即抬眼恢复从容\n人物动作:她轻轻按了按莹陶的手,示意松开\n表情/情绪:沉稳克制,眼神柔和却坚定,睫毛轻颤后定住,嘴角极轻地安抚性放松\n光线光影:侧窗冷白光打在眼睛和鼻梁,脸侧明暗过渡柔和,发丝边缘有细光\n台词/OS:江岁欢(低声):没事的。\n衔接:安抚后自然转向李公公,下一段承接她应下并去收拾药箱\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失焦", + [ + { + "file_token": "C58DbNENYo853HxyINVc4ZIunAb", + "name": "江岁欢音色.mp3", + "size": 116033 + } + ], + [ + { + "file_token": "ZRXUbIaicojWxWx7PaEcXhg7nJg", + "name": "江岁欢服装参考.png", + "size": 9371990 + }, + { + "file_token": "BoeGbYmysomJFXxkrM6cQHjun2e", + "name": "李公公.jpeg", + "size": 9901740 + }, + { + "file_token": "Ub5VbGteiovPjmxED9jcOp7an4F", + "name": "场景图.jpg", + "size": 806053 + }, + { + "file_token": "CLB4btXmdodQRQxDgxCccNPpnIg", + "name": "江岁欢.webp", + "size": 11222 + } + ] + ], + [ + "参考对应:图一=场景.jpg(场景),图二=谢宁.png(江岁欢形象),图三=顾锦.webp(顾锦人脸),图四=顾锦服装.png(顾锦服装),音色一=谢宁.mp3(江岁欢声音)\n时辰:正午\n色调:暖色调\n色温:5000k\n拍摄要求:全程拍摄无越轴,多用侧逆光营造氛围感,前后镜头光线要保持一致,3级微风,场景参考 图一,江岁欢形象参考 图二,声音参考 音色一,顾锦人脸参考 图三,顾锦声音参考(本 case 无匹配音频,未绑定),服装参考 图四\n镜头1(00-02s):\n景别:中景\n运镜:轻微跟移\n镜头角度:平视\n前景:宫门铜钉、门框阴影\n画面内容:江岁欢走出宫门,顾锦靠在宫墙边,二人一左一右,距离约两步,位置关系清晰\n人物动作:江岁欢脚步刚出门便停住,顾锦侧头看她\n表情/情绪:江岁欢先是意外,眼神微怔后迅速稳住;顾锦神色淡淡,像等了很久却不显露\n光线光影:外景日光偏亮,宫墙阴影压低,人物脸侧有清晰自然侧光\n台词/OS:顾锦:“听说有人进宫看病,来看看,是不是被砍头了。”\n衔接:用台词直接抓人,下一镜切江岁欢反应\n镜头2(02-04s):\n景别:近景\n运镜:轻微推近\n镜头角度:平视\n前景:无\n画面内容:江岁欢转头看向顾锦,宫门红墙虚化在后\n人物动作:她抬眉,带一点不服气地回看过去\n表情/情绪:先惊后嗔,眼睛微睁,眉尾轻挑,嘴角压着笑意,情绪从意外过渡到回怼\n光线光影:日光打亮眼睛,睫毛和鼻梁有自然高光\n台词/OS:江岁欢:“你怎么在这儿?”\n衔接:下一镜接她顺势回怼\n镜头3(04-07s):\n景别:双人中近景\n运镜:轻微横移\n镜头角度:平视\n前景:宫墙边飘动的树影\n画面内容:江岁欢与顾锦同框站立,顾锦仍靠墙,江岁欢微偏身面对他\n人物动作:江岁欢白他一眼,抬手晃了晃新得的腰牌\n表情/情绪:带点得意和松快,眼神明亮,嘴角上扬;顾锦表面淡然,眼底却微有波动\n光线光影:自然光下人物面部通透,腰牌上反出一线亮光\n台词/OS:江岁欢:“让你失望了。没砍成,还升官了。”\n衔接:动作带出腰牌,下一镜切顾锦看牌反应特写\n镜头4(07-10s):\n景别:近景\n运镜:缓慢推近\n镜头角度:平视\n前景:银牌虚化在画面前侧\n画面内容:顾锦的视线落在腰牌上,再缓缓抬到江岁欢脸上\n人物动作:他站直离开宫墙,目光停留片刻\n表情/情绪:冷淡外壳微微松动,眼神柔和一瞬,嘴角极轻地动了动又压住,情绪从试探过渡到认可\n光线光影:侧光勾出轮廓,眼下和唇线有细微亮面,背景宫墙压暗\n台词/OS:顾锦:“御医……不错。以后进宫,能光明正大了。”\n衔接:高光反应后切江岁欢接话\n镜头5(10-12s):\n景别:近景\n运镜:定镜\n镜头角度:平视\n前景:无\n画面内容:江岁欢侧身看他,眉眼带一点探究\n人物动作:她收回腰牌,向前一步逼近半步\n表情/情绪:半真半试探,眼神停住,唇角轻翘,像看穿又不完全点破\n光线光影:脸侧受光清晰,发丝有微弱亮边\n台词/OS:江岁欢:“你是替我高兴,还是替你眼线高兴?”\n衔接:下一镜切顾锦转身离开,形成轻拉扯\n镜头6(12-15s):\n景别:中景\n运镜:跟拍起步\n镜头角度:平视\n前景:宫门石阶、路边树影\n画面内容:顾锦转身往前走,江岁欢愣了一瞬后跟上,两人背影前后形成层次\n人物动作:顾锦淡淡丢下一句便迈步,江岁欢停半拍再追上\n表情/情绪:顾锦语气平静却不回避,江岁欢先怔住,随即眼神一松\n光线光影:午后自然光铺在石阶上,人物背侧有清晰边缘光\n台词/OS:顾锦:“都有。”\n衔接:动作闭合,下一段切入新场景王府内室\n真实皮肤纹理,绒毛细节,体积光,环境光反射脸上,高对比度光影; 电影;\n级面光,光线追踪,人像面部聚焦,人物动作流畅。在人物眼神细节上需要有更多细致处理,直盯镜头时需要传递出故事感眼神。 皮肤呈现真实状态,无磨皮,绝对不使用柔焦或美化处理。绝妙构图,暗朦,泛朦,氛围感拉满,局部高清,写意,高级感,杰作,身材好,实拍,材质真实化瑕疵化,绝对真实化场景,自然光,抖动+高斯模糊+动态模糊效果,真人感,边缘轻微失", + [ + { + "file_token": "J8d4bLe74o4Kacxv4qdc9JzDn0d", + "name": "谢宁.mp3", + "size": 135462 + } + ], + [ + { + "file_token": "QmnUbwLm4otsfqxEbysctJrZnAb", + "name": "顾锦服装.png", + "size": 9105217 + }, + { + "file_token": "LsFVbBSH1oZWjlx17oIcXKjZnnf", + "name": "谢宁.png", + "size": 3071862 + }, + { + "file_token": "FsfmbexjgoiFNKx0IkRc8rijnIe", + "name": "场景.jpg", + "size": 1732210 + }, + { + "file_token": "Urm4b5ZrroF9m8x9g70cOh1XnLc", + "name": "顾锦.webp", + "size": 9286 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐),图二=白雪.png(白雪),图三=沙丽丽.jpg(沙丽丽),音色一=吴耐音色.mp3(吴耐声音),音色二=白雪音色.mp3(白雪声音),音色三=沙丽丽音色.mp3(沙丽丽声音)\n【合规要求】:全文无水印、无字幕、无画面文字、无LOGO,无杂乱背景;无穿模,五官清晰,人体结构正常,无多余杂物。面部稳定,五官清晰,动作自然,人体结构正常,无穿模无变形,无水印,无字幕。\n场景参考,吴耐参考 图一,吴耐声音参考 音色一,白雪参考 图二,白雪声音参考 音色二,沙丽丽参考 图三,沙丽丽声音参考 音色三。\n镜号1:\n时间: 0—4秒\n景别: 主观镜头\n机位: 竖屏固定仰拍\n生成提示词:竖屏固定主观视角。仰拍。从左侧靠窗病床往上看。百叶窗透进阳光。穿着护士服的白雪和沙丽丽站在床边低头看,白雪满脸惊喜。电影级写实。\n台词/音效:【吴耐】(呼吸声/微微睁眼)\n【白雪】(惊喜):大爷你醒了!\n镜号2:\n时间: 0—4秒\n景别: 中景\n机位: 竖屏固定平视\n生成提示词:竖屏固定中景。左侧靠窗病床旁。白雪转头,严厉地责问旁边的沙丽丽。沙丽丽拍了拍胸口松了口气,随后心虚地低下头。背景有蓝色的隔断帘。电影级写实。\n台词/音效:【沙丽丽】(松口气声)\n【白雪】:沙丽丽!你到底对大爷做了什么!\n【沙丽丽】(内疚):我...\n镜号3:\n时间: 0—6秒\n景别: 近景\n机位: 竖屏固定俯拍\n生成提示词:竖屏固定近景。左侧靠窗病床上。白雪一边帮吴耐整理蓝白条纹的被子,一边语重心长地劝说。百叶窗的光条打在她身上。电影级写实。\n台词/音效:【白雪】:大爷,你以后还是离沙丽丽远一点吧,说不定哪天就被她送走了。", + [ + { + "file_token": "SK5GbFkZHojYvbx8c6CcIkEGnud", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "K8x4bb80yocfpRxjmBZcskVYnqe", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "GKgJb1LYOoVeWpxLhDPcckcInxe", + "name": "白雪音色.mp3", + "size": 112272 + } + ], + [ + { + "file_token": "UQpvbESyJoy4yBxVG6PcyOqOnsd", + "name": "白雪.png", + "size": 4557283 + }, + { + "file_token": "VnCMbvlIUoiiPPxCSf2cxgxQnKn", + "name": "吴耐.png", + "size": 1234901 + }, + { + "file_token": "ZPhbbQZqGoKm6rxaf0vcWKWan8c", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=沙丽丽.jpg(沙丽丽),图二=吴耐.png(吴耐),音色一=沙丽丽音色.mp3(沙丽丽声音),音色二=吴耐音色.mp3(吴耐声音)\n沙丽丽参考 图一,吴耐参考 图二,站在画面左侧看着,吴耐站在画面右侧看着,两人中间隔着一步距离。音色参考:沙丽丽 音色一,吴耐 音色二。\n00:00-00:04 甩袖走人\n动作设计:吴耐被笑得更挂不住脸,没好气地甩了下胳膊,转身往单元门走;脚步迈得又快又急,背挺得笔直,一副 “不跟你一般见识” 的赌气模样。\n镜头设计:中景跟拍半步,完整拍下他转身甩手的动作;背影带着点气呼呼的劲儿,脚步匆匆,颇有几分落荒而逃的味道。\n表演设计:典型的嘴硬好面子,被逗得下不来台,只能撂挑子走人;脚步都带着点赌气的急促,却又没真的生气,就是老头式的别扭。\n台词:\n吴耐(硬邦邦撂话,头也不回):行了,我走了!\n00:04-00:08 补刀拆台\n动作设计:沙丽丽在他身后扬着声音喊,身子微微前倾,嘴角还带着没消的笑意,故意戳破他溜之大吉的借口。\n镜头设计:切沙丽丽正面近景,她对着吴耐的背影喊话,眼底全是了然的调侃;画面边缘带过吴耐远去的背影。\n表演设计:语气带着了然的戏谑,明知道他是找借口躲清净,故意拆台逗他;声音扬得刚好,既能让吴耐听见,又不显得吵闹。\n台词:\n沙丽丽(扬着声,带着笑意拆台):上哪去啊,不回家洗澡了?\n00:08-00:13嘴硬跑路\n动作设计:吴耐脚步猛地一顿,像是被戳中了心事,随即走得更快了;他头也不回地喊出一句话,脚步迈得更大,直奔小区门口而去。\n镜头设计:远景固定机位,拍吴耐越走越快的背影,朝着小区外的方向渐渐远去;画面留足空白,留下轻松的余韵。\n表演设计:被拆穿后的嘴硬,声音都带着点心虚的急促;嘴上硬气,脚步却很诚实,生怕再被调侃两句,落荒而逃的样子藏着可爱的反差。\n台词:\n吴耐(头也不回,气急败坏的硬气):我网吧去!", + [ + { + "file_token": "GmpAbEi3eooffExSt4XcjXtwnIg", + "name": "沙丽丽音色.mp3", + "size": 124810 + }, + { + "file_token": "CRdObHeOBonZ8NxYlLlc9puYnsb", + "name": "吴耐音色.mp3", + "size": 75909 + } + ], + [ + { + "file_token": "CnlIb4vNaoJvfJxfAD1cvlmyn7O", + "name": "吴耐.png", + "size": 4237071 + }, + { + "file_token": "ZndcbquaMoPYkwxLuOvcDKPHnEg", + "name": "沙丽丽.jpg", + "size": 115917 + } + ] + ], + [ + "参考对应:图一=吴耐.png(吴耐大爷),图二=场景图.png(服装店场景),图三=王刚.png(王刚),图四=沙丽丽.png(沙丽丽),音色一=吴耐音色.mp3(吴耐),音色二=沙丽丽音色.mp3(沙丽丽)\n参考 图一 吴耐大爷,图二 服装店场景,图三 王刚,图四 沙丽丽帮我生成:\n服装店内:\n▲ 沙丽丽说着冲上前要打人。\n▲ 吴耐眯着眼睛拦住沙丽丽。\n吴耐:丫头你做什么?\n沙丽丽:这种渣男该打!\n吴耐(正气凌然):这种人渣,交给我对付。\n沙丽丽(惊):死老头你想干嘛?\n15s", + [ + { + "file_token": "CDQkbfDXvojkvDxpIVLcNnN2nNb", + "name": "吴耐音色.mp3", + "size": 75909 + }, + { + "file_token": "UHambcEh7oroqkxBjE9c4sNsncG", + "name": "沙丽丽音色.mp3", + "size": 124810 + } + ], + [ + { + "file_token": "N4vnbjqTAozMG3xRMEYcHbeEnns", + "name": "王刚.png", + "size": 2378894 + }, + { + "file_token": "FQo3bSaF0oz9n2x8MndcFsJxnfc", + "name": "沙丽丽.png", + "size": 1700396 + }, + { + "file_token": "VX8QbMXQ5on0O6xokoZcyBajnVg", + "name": "场景图.png", + "size": 2156951 + }, + { + "file_token": "KdGwbcoN3oyHaexcGvTcedCDnWg", + "name": "吴耐.png", + "size": 1234901 + } + ] + ] + ], + "field_id_list": [ + "fld6Pha6qB", + "fldoUHTCOk", + "fldwA3ytWr" + ], + "field_type_list": [ + "text", + "attachment", + "attachment" + ], + "fields": [ + "提示词", + "参考音频", + "参考图像" + ], + "has_more": false, + "query_context": { + "field_scope": "all_fields", + "record_scope": "all_records" + }, + "record_id_list": [ + "recvtQUD5nFMf0", + "recvtQUD5nyYxg", + "recvtQUD5nP5Ip", + "recvtQW6hmRkEt", + "recvtQWnsZrwQR", + "recvtQWnV7K4fX", + "recvtQXV4n4LMP", + "recvtQXV4n8MZ1" + ], + "rev": 36, + "timezone": "Asia/Shanghai" + } +} diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/nvidia_smi_before.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/nvidia_smi_before.txt new file mode 100644 index 0000000..77ca06d --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/nvidia_smi_before.txt @@ -0,0 +1,48 @@ +Mon Aug 31 15:39:46 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA RTX 6000D On | 00000000:19:00.0 Off | 0 | +| N/A 34C P8 30W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 1 NVIDIA RTX 6000D On | 00000000:1A:00.0 Off | 0 | +| N/A 35C P8 31W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 2 NVIDIA RTX 6000D On | 00000000:1B:00.0 Off | 0 | +| N/A 28C P8 32W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 3 NVIDIA RTX 6000D On | 00000000:1D:00.0 Off | 0 | +| N/A 26C P8 28W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 4 NVIDIA RTX 6000D On | 00000000:AA:00.0 Off | 0 | +| N/A 25C P8 30W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 5 NVIDIA RTX 6000D On | 00000000:AB:00.0 Off | 0 | +| N/A 25C P8 31W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 6 NVIDIA RTX 6000D On | 00000000:AE:00.0 Off | 0 | +| N/A 24C P8 30W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 7 NVIDIA RTX 6000D On | 00000000:AF:00.0 Off | 0 | +| N/A 25C P8 29W / 600W | 0MiB / 85651MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| No running processes found | ++-----------------------------------------------------------------------------------------+ diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/pip_freeze.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/pip_freeze.txt new file mode 100644 index 0000000..b7f020b --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/pip_freeze.txt @@ -0,0 +1,244 @@ +addict==2.4.0 +aiohappyeyeballs==2.7.1 +aiohttp==3.14.3 +aiosignal==1.4.0 +airportsdata==20260803 +annotated-doc==0.0.5 +annotated-types==0.8.0 +anthropic==0.125.0 +anyio==4.14.2 +apache-tvm-ffi==0.1.11 +asttokens==3.0.2 +attrs==26.1.0 +av==16.1.0 +blobfile==3.0.0 +build==1.5.0 +cache_dit==1.3.0 +certifi==2026.7.22 +cffi==2.1.1 +charset-normalizer==3.5.1 +click==8.4.2 +cloudpickle==3.1.2 +compressed-tensors==0.18.1a20260818 +cuda-bindings==13.3.1 +cuda-core==1.0.1 +cuda-pathfinder==1.6.1 +cuda-python==13.3.1 +cuda-tile==1.6.0rc7 +cuda-toolkit==13.0.2 +datasets==5.0.1 +decorator==5.3.1 +diffusers==0.37.0 +dill==0.4.1 +diskcache==5.6.3 +distro==1.9.0 +docstring_parser==0.18.0 +easydict==1.13 +einops==0.9.0.dev0 +executing==2.2.1 +fastapi==0.141.1 +filecheck==1.0.3 +filelock==3.32.3 +flash-attn-4==4.0.0b19 +flashinfer-python==0.6.15.post1 +frozenlist==1.8.0 +fsspec==2026.6.0 +ftfy==6.3.1 +gguf==0.19.0 +grpcio==1.83.0 +grpcio-health-checking==1.82.0rc2 +grpcio-reflection==1.82.0rc2 +h11==0.16.0 +helion==1.4.0 +hf-xet==1.6.1a0 +httpcore==1.0.9 +httpx==0.28.1 +huggingface_hub==1.28.0 +humanize==4.16.0 +humming-kernels==0.1.10 +idna==3.19 +imageio==2.36.0 +imageio-ffmpeg==0.5.1 +importlib_metadata==9.0.0 +iniconfig==2.3.0 +interegular==0.3.3 +ipython==9.16.1 +ipython_pygments_lexers==1.1.1 +jedi==0.20.0 +Jinja2==3.1.6 +jiter==0.16.0 +joblib==1.5.3 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +kernels==0.14.1 +kernels-data==0.16.0 +lark==1.3.1 +lazy-loader==0.5 +lightning-utilities==0.15.3 +llguidance==1.8.0 +llvmlite==0.47.0 +loguru==0.7.3 +lpips==0.1.4 +lxml==7.0.0a3 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mistral_common==1.11.7 +ml_dtypes==0.6.0 +modelscope==1.39.1 +modelscope-hub==0.2.0 +moviepy==2.2.1 +mpmath==1.3.0 +msgpack==1.2.1 +msgspec==0.21.1 +multidict==6.7.1 +multiprocess==0.70.19 +narwhals==2.24.0 +nccl4py==0.4.1 +nest-asyncio==1.6.0 +networkx==3.6.1 +ninja==1.13.0 +numba==0.65.1 +numpy==2.3.5 +nvidia-cublas==13.1.0.3 +nvidia-cuda-cccl==13.3.4.1.2rc1 +nvidia-cuda-crt==13.4.46rc1 +nvidia-cuda-cupti==13.0.85 +nvidia-cuda-nvcc==13.4.46rc1 +nvidia-cuda-nvdisasm==13.4.46rc1 +nvidia-cuda-nvrtc==13.0.88 +nvidia-cuda-runtime==13.0.96 +nvidia-cudnn-cu13==9.19.0.56 +nvidia-cudnn-frontend==1.27.0 +nvidia-cufft==12.0.0.61 +nvidia-cufile==1.15.1.6 +nvidia-curand==10.4.0.35 +nvidia-cusolver==12.0.4.66 +nvidia-cusparse==12.6.3.3 +nvidia-cusparselt-cu13==0.8.0 +nvidia-cutlass-dsl==4.6.0 +nvidia-cutlass-dsl-libs-base==4.6.0 +nvidia-cutlass-dsl-libs-core==4.6.0 +nvidia-cutlass-dsl-libs-cu12==4.6.0 +nvidia-cutlass-dsl-libs-cu13==4.6.0 +nvidia-mathdx==25.6.0 +nvidia-ml-py==13.610.43 +nvidia-modelopt==0.46.0 +nvidia-nccl-cu13==2.28.9 +nvidia-nvjitlink==13.0.88 +nvidia-nvshmem-cu13==3.4.5 +nvidia-nvtx==13.0.85 +nvidia-nvvm==13.4.46rc1 +omegaconf==2.4.0.dev15 +open_clip_torch==3.3.0 +openai==2.6.1 +openai-harmony==0.0.4 +opencv-python-headless==4.10.0.84 +orjson==3.12.0 +outlines==0.1.11 +outlines_core==0.1.26 +packaging @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_packaging_1785888127/work +pandas==3.0.5 +parso==0.8.7 +partial-json-parser==0.2.1.1.post7 +pexpect==4.9.0 +pillow==11.3.0 +pluggy==1.6.0 +proglog==0.1.12 +prometheus_client==0.26.0 +prompt_toolkit==3.0.53 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +PuLP==3.3.2 +pure_eval==0.2.3 +py-spy==0.4.2 +pyarrow==25.0.1 +pybase64==1.5.0 +pycountry==26.2.16 +pycparser==3.0 +pycryptodomex==3.23.0 +pydantic==2.14.0b1 +pydantic-extra-types==2.11.1 +pydantic_core==2.48.0 +pyelftools==0.33 +Pygments==2.21.0 +pyproject_hooks==1.2.0 +pytest==9.1.1 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.3 +python-multipart==0.0.32 +PyYAML==6.0.1 +pyzmq==27.1.0 +quack-kernels==0.6.3 +referencing==0.37.0 +regex==2026.7.19 +remote-pdb==2.1.0 +requests==2.34.2 +rich==15.0.0 +rpds-py==2026.6.3 +runai-model-streamer==0.16.1 +safetensors==0.8.0 +scikit-image==0.25.2 +scikit-learn==1.9.0 +scipy==1.18.0 +sentencepiece==0.2.2 +setproctitle==1.3.7 +setuptools==81.0.0 +sgl-deep-gemm==0.1.5.post1 +sglang==0.5.17 +sglang-kernel==0.4.5 +shellingham==1.5.4 +six==1.17.0 +smg-grpc-proto==0.4.14 +smg-grpc-servicer==0.8.0 +sniffio==1.3.1 +soundfile==0.13.1 +st_attn==0.0.7 +stack-data==0.6.3 +starlette==1.6.0 +sympy==1.14.0 +tabulate==0.10.0 +threadpoolctl==3.6.0 +tifffile==2026.8.16 +tiktoken==0.14.0 +tilelang==0.1.11 +timm==1.0.16 +tokenizers==0.23.0rc0 +tokenspeed-mla==0.1.8 +tokenspeed-triton==3.8.10.post20260721 +tomlkit==0.15.1 +torch==2.11.0 +torch_c_dlpack_ext==0.1.5 +torch_memory_saver==0.0.10b1 +torchao==0.17.0 +torchaudio==2.11.0 +torchcodec==0.11.1 +torchmetrics==1.9.0 +torchvision==0.26.0 +tqdm==4.70.0 +traitlets==5.16.1 +transformers==5.12.1 +trimesh==5.0.0 +triton==3.6.0 +typer==0.27.1 +typing-inspection==0.4.4 +typing_extensions==4.16.0 +urllib3==2.7.0 +uv==0.12.5 +uvicorn==0.52.4 +uvloop==0.22.1 +vsa==0.0.4 +watchfiles==1.2.0 +wcwidth==0.8.2 +websockets==17.0.1 +wheel==0.48.0 +xatlas==0.0.11 +xgrammar==0.2.1 +xxhash==4.0.1 +yarl==1.24.5 +z3-solver==4.15.4.0 +zipp==4.1.0 +zstandard==0.25.0 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/python_version.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/python_version.txt new file mode 100644 index 0000000..5ba8c31 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/python_version.txt @@ -0,0 +1 @@ +Python 3.12.13 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/run_config.env b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/run_config.env new file mode 100644 index 0000000..8bd11d7 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/run_config.env @@ -0,0 +1,18 @@ +run_id=ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946 +method=base +task=ref2va +tp_size=2 +replicas=4 +num_inference_steps=20 +short_edge=768 +aspect_ratio=9:16 +duration_seconds=15 +flow_shift=12.0 +audio_flow_shift=3.0 +model=/data/hf_models/MiniMax-H3 +media_bin_dir=/root/.miniconda3/envs/deploy/bin +cache_dit_enabled=false +fsdp_inference=false +torch_compile=false +batching_max_size=1 +pytorch_cuda_alloc_conf=expandable_segments:True diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/cuda_visible_devices.txt b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/cuda_visible_devices.txt new file mode 100644 index 0000000..93c12d9 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/cuda_visible_devices.txt @@ -0,0 +1 @@ +0,1 diff --git a/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/server.log b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/server.log new file mode 100644 index 0000000..4310b89 --- /dev/null +++ b/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/server.log @@ -0,0 +1,1110 @@ +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:04] Applying performance_mode=speed +[08-31 15:40:04] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35000, "host": "0.0.0.0", "port": 34010, "webui": false, "webui_port": 12312, "scheduler_port": 36000, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:40:04] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:19] Scheduler bind at endpoint: tcp://0.0.0.0:36000 +[08-31 15:40:20] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:40:20] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:40:20] Setting distributed timeout to 3600 seconds +[08-31 15:40:21] Found nccl from library libnccl.so.2 +[08-31 15:40:21] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:22] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:40:22] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:40:23] Found nccl from library libnccl.so.2 +[08-31 15:40:23] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:23] No pipeline_class_name specified, using model_index.json +[08-31 15:40:23] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:40:23] Loading pipeline modules... +[08-31 15:40:23] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:40:23] Diffusers version: 0.32.2 +[08-31 15:40:23] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:40:23] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-31 15:40:23] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/outputs/cd2a016c-bc5d-4f6a-82db-cb1b80424492.mp4 + +[08-31 15:41:34] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:41:34] [InputValidationStage] started... +[08-31 15:41:34] [InputValidationStage] finished in 0.0002 seconds +[08-31 15:41:34] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:41:34] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:41:34] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:41:35] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:36] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:37] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:38] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:39] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:40] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[08-31 15:41:41] [MiniMaxH3TextEncodingStage] finished in 6.9987 seconds +[2026-08-31 15:41:41] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:42] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[08-31 15:41:43] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:41:43] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:44] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:45] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[2026-08-31 15:41:46] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK +[08-31 15:41:46] [MiniMaxH3VisualEncodingStage] finished in 3.4160 seconds +[08-31 15:41:46] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:41:46] [MiniMaxH3AudioEncodingStage] finished in 0.3156 seconds +[08-31 15:41:46] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:41:47] [MiniMaxH3LatentPreparationStage] finished in 0.1057 seconds +[08-31 15:41:47] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:41:47] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-31 15:41:47] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:41:47] INFO: 127.0.0.1:33794 - "GET /v1/videos/cd2a016c-bc5d-4f6a-82db-cb1b80424492 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_0_port34010/outputs/b378449e-252f-441e-a930-ed2b3291f637.mp4 + +[08-31 15:51:05] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:51:05] [InputValidationStage] started... +[08-31 15:51:05] [InputValidationStage] finished in 0.0002 seconds +[08-31 15:51:05] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:51:05] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:51:05] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:51:06] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:07] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:08] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:09] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:10] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:11] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:12] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[08-31 15:51:12] [MiniMaxH3TextEncodingStage] finished in 7.0547 seconds +[2026-08-31 15:51:13] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[08-31 15:51:13] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:51:14] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:15] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:16] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:17] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[08-31 15:51:17] [MiniMaxH3VisualEncodingStage] finished in 3.4000 seconds +[08-31 15:51:17] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:51:17] [MiniMaxH3AudioEncodingStage] finished in 0.2129 seconds +[08-31 15:51:17] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:51:17] [MiniMaxH3LatentPreparationStage] finished in 0.0893 seconds +[08-31 15:51:17] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:51:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-31 15:51:17] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:51:18] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK +[2026-08-31 15:51:19] INFO: 127.0.0.1:33794 - "GET /v1/videos/b378449e-252f-441e-a930-ed2b3291f637 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:05] Applying performance_mode=speed +[08-31 15:40:05] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35010, "host": "0.0.0.0", "port": 34020, "webui": false, "webui_port": 12312, "scheduler_port": 36010, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_1_port34020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:40:05] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:21] Scheduler bind at endpoint: tcp://0.0.0.0:36010 +[08-31 15:40:21] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:40:21] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:40:21] Setting distributed timeout to 3600 seconds +[08-31 15:40:22] Found nccl from library libnccl.so.2 +[08-31 15:40:22] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:26] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:40:26] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-31 15:40:26] Found nccl from library libnccl.so.2 +[08-31 15:40:26] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:26] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_1_port34020/outputs/95b33bf9-1c81-4fe3-b8db-8a4d124379ae.mp4 + +[08-31 15:41:36] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:41:36] [InputValidationStage] started... +[08-31 15:41:36] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:41:36] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:41:36] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:41:36] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:41:37] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:38] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:39] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:40] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:41] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:42] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:43] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:44] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:45] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:46] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[08-31 15:41:46] [MiniMaxH3TextEncodingStage] finished in 10.1192 seconds +[2026-08-31 15:41:47] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:48] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[08-31 15:41:49] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:41:49] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:50] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:51] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:52] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[2026-08-31 15:41:53] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[08-31 15:41:54] [MiniMaxH3VisualEncodingStage] finished in 4.7611 seconds +[08-31 15:41:54] [MiniMaxH3AudioEncodingStage] started... +[2026-08-31 15:41:54] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK +[08-31 15:41:54] [MiniMaxH3AudioEncodingStage] finished in 0.4905 seconds +[08-31 15:41:54] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:41:54] [MiniMaxH3LatentPreparationStage] finished in 0.0891 seconds +[08-31 15:41:54] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:41:54] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:41:54] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:41:55] INFO: 127.0.0.1:37918 - "GET /v1/videos/95b33bf9-1c81-4fe3-b8db-8a4d124379ae HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_1_port34020/outputs/72166e8d-db12-4441-af24-e63744ed76aa.mp4 + +[08-31 15:52:56] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:52:56] [InputValidationStage] started... +[08-31 15:52:56] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:52:56] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:52:56] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:52:56] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:52:57] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:52:58] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:52:59] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:00] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:01] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:02] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:03] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:04] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:05] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:06] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[08-31 15:53:07] [MiniMaxH3TextEncodingStage] finished in 10.2541 seconds +[2026-08-31 15:53:07] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:08] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:09] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[08-31 15:53:09] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:53:10] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:11] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:12] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:13] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[08-31 15:53:14] [MiniMaxH3VisualEncodingStage] finished in 4.7547 seconds +[08-31 15:53:14] [MiniMaxH3AudioEncodingStage] started... +[2026-08-31 15:53:14] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[08-31 15:53:15] [MiniMaxH3AudioEncodingStage] finished in 0.3852 seconds +[08-31 15:53:15] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:53:15] [MiniMaxH3LatentPreparationStage] finished in 0.0921 seconds +[08-31 15:53:15] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:53:15] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:53:15] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:53:15] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK +[2026-08-31 15:53:16] INFO: 127.0.0.1:37918 - "GET /v1/videos/72166e8d-db12-4441-af24-e63744ed76aa HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:06] Applying performance_mode=speed +[08-31 15:40:06] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35020, "host": "0.0.0.0", "port": 34030, "webui": false, "webui_port": 12312, "scheduler_port": 36020, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_2_port34030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:40:06] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:24] Scheduler bind at endpoint: tcp://0.0.0.0:36020 +[08-31 15:40:24] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:40:24] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:40:24] Setting distributed timeout to 3600 seconds +[08-31 15:40:26] Found nccl from library libnccl.so.2 +[08-31 15:40:26] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:28] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:40:28] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-31 15:40:28] Found nccl from library libnccl.so.2 +[08-31 15:40:28] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:28] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_2_port34030/outputs/6c336cab-7178-4c8e-8ea8-96bfe49b6312.mp4 + +[08-31 15:41:45] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:41:45] [InputValidationStage] started... +[08-31 15:41:45] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:41:45] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:41:45] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:41:45] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:41:46] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:47] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:48] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:49] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:50] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:51] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[08-31 15:41:52] [MiniMaxH3TextEncodingStage] finished in 6.8208 seconds +[2026-08-31 15:41:52] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:53] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[08-31 15:41:54] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:41:54] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:55] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:56] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[2026-08-31 15:41:57] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK +[08-31 15:41:57] [MiniMaxH3VisualEncodingStage] finished in 3.4086 seconds +[08-31 15:41:57] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:41:57] [MiniMaxH3AudioEncodingStage] finished in 0.2976 seconds +[08-31 15:41:57] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:41:57] [MiniMaxH3LatentPreparationStage] finished in 0.1087 seconds +[08-31 15:41:57] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:41:57] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-31 15:41:57] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:41:58] INFO: 127.0.0.1:47922 - "GET /v1/videos/6c336cab-7178-4c8e-8ea8-96bfe49b6312 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_2_port34030/outputs/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e.mp4 + +[08-31 15:51:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:51:16] [InputValidationStage] started... +[08-31 15:51:16] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:51:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:51:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:51:16] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:51:17] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:18] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:19] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:20] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:21] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:22] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[08-31 15:51:23] [MiniMaxH3TextEncodingStage] finished in 6.8181 seconds +[2026-08-31 15:51:23] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:24] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[08-31 15:51:25] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:51:25] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:26] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:27] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[2026-08-31 15:51:28] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK +[08-31 15:51:28] [MiniMaxH3VisualEncodingStage] finished in 3.3932 seconds +[08-31 15:51:28] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:51:29] [MiniMaxH3AudioEncodingStage] finished in 0.1961 seconds +[08-31 15:51:29] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:51:29] [MiniMaxH3LatentPreparationStage] finished in 0.0729 seconds +[08-31 15:51:29] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:51:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:51:29] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:51:29] INFO: 127.0.0.1:47922 - "GET /v1/videos/dd1e94a4-3f55-4afb-a8d3-f6b142661b5e HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:06] Applying performance_mode=speed +[08-31 15:40:06] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35030, "host": "0.0.0.0", "port": 34040, "webui": false, "webui_port": 12312, "scheduler_port": 36030, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_3_port34040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:40:06] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:40:23] Scheduler bind at endpoint: tcp://0.0.0.0:36030 +[08-31 15:40:24] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:40:24] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:40:24] Setting distributed timeout to 3600 seconds +[08-31 15:40:25] Found nccl from library libnccl.so.2 +[08-31 15:40:25] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:28] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:40:28] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-31 15:40:28] Found nccl from library libnccl.so.2 +[08-31 15:40:28] sglang-diffusion is using nccl==2.28.9 +[08-31 15:40:28] No pipeline_class_name specified, using model_index.json +[08-31 15:40:28] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:40:28] Loading pipeline modules... +[08-31 15:40:28] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:40:28] Diffusers version: 0.32.2 +[08-31 15:40:28] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:40:28] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-31 15:40:28] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 5 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_3_port34040/outputs/c5322035-8592-43f7-b15a-f695e8cdab39.mp4 + +[08-31 15:41:46] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:41:46] [InputValidationStage] started... +[08-31 15:41:46] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:41:46] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:41:46] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:41:46] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:41:47] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:48] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:49] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:50] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:51] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:52] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:53] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:54] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:55] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:56] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:57] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[08-31 15:41:57] [MiniMaxH3TextEncodingStage] finished in 11.0721 seconds +[2026-08-31 15:41:58] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:41:59] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[08-31 15:42:00] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:42:00] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:42:01] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:42:02] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:42:03] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[2026-08-31 15:42:04] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[08-31 15:42:05] [MiniMaxH3VisualEncodingStage] finished in 4.8302 seconds +[08-31 15:42:05] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:42:05] [MiniMaxH3AudioEncodingStage] finished in 0.2929 seconds +[08-31 15:42:05] [MiniMaxH3LatentPreparationStage] started... +[2026-08-31 15:42:05] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK +[08-31 15:42:06] [MiniMaxH3LatentPreparationStage] finished in 0.1173 seconds +[08-31 15:42:06] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:42:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-31 15:42:06] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:42:06] INFO: 127.0.0.1:39138 - "GET /v1/videos/c5322035-8592-43f7-b15a-f695e8cdab39 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/4 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 20 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/ref2va-feishu-base-tp2x4-768p-15s-20steps-20260831-153946/server_3_port34040/outputs/0fc190e8-2735-410d-b3bc-c9d88094a287.mp4 + +[08-31 15:53:08] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:53:08] [InputValidationStage] started... +[08-31 15:53:08] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:53:08] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:53:08] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:53:08] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:53:09] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:10] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:11] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:12] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:13] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:14] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:15] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:16] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:17] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:18] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[08-31 15:53:19] [MiniMaxH3TextEncodingStage] finished in 10.8716 seconds +[2026-08-31 15:53:19] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:20] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:21] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[08-31 15:53:22] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:53:22] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:23] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:24] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:25] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:26] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[08-31 15:53:27] [MiniMaxH3VisualEncodingStage] finished in 4.7692 seconds +[08-31 15:53:27] [MiniMaxH3AudioEncodingStage] started... +[08-31 15:53:27] [MiniMaxH3AudioEncodingStage] finished in 0.2001 seconds +[08-31 15:53:27] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:53:27] [MiniMaxH3LatentPreparationStage] finished in 0.1119 seconds +[08-31 15:53:27] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:53:27] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-31 15:53:27] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:53:27] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK +[2026-08-31 15:53:28] INFO: 127.0.0.1:39138 - "GET /v1/videos/0fc190e8-2735-410d-b3bc-c9d88094a287 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/19 [00:00= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:33:56] Applying performance_mode=speed +[08-31 15:33:56] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "dp_size": 1, "dp_degree": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "pipeline_class_name": null, "lora_path": null, "lora_nickname": "default", "lora_scale": 1.0, "lora_merge_mode": "auto", "lora_weight_name": null, "component_paths": {}, "transformer_weights_path": null, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "dit_cpu_offload": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup": true, "server_warmup": true, "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 35220, "host": "0.0.0.0", "port": 34220, "webui": false, "webui_port": 12312, "scheduler_port": 36220, "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/throughput/sglang-base/results/smoke-ref2va-case02-tp2-expandable-20260831-153341/server/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "decoder_tp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-31 15:33:56] Starting server... +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +[08-31 15:34:11] Scheduler bind at endpoint: tcp://0.0.0.0:36220 +[08-31 15:34:12] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-31 15:34:12] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-31 15:34:12] Setting distributed timeout to 3600 seconds +[08-31 15:34:12] Found nccl from library libnccl.so.2 +[08-31 15:34:12] sglang-diffusion is using nccl==2.28.9 +[08-31 15:34:14] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:34:14] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-31 15:34:14] Found nccl from library libnccl.so.2 +[08-31 15:34:14] sglang-diffusion is using nccl==2.28.9 +[08-31 15:34:14] No pipeline_class_name specified, using model_index.json +[08-31 15:34:15] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-31 15:34:15] Loading pipeline modules... +[08-31 15:34:15] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-31 15:34:15] Diffusers version: 0.32.2 +[08-31 15:34:15] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-31 15:34:15] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 2 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/throughput/sglang-base/results/smoke-ref2va-case02-tp2-expandable-20260831-153341/server/outputs/b9d824a9-ba52-4fc3-8549-30f63404ecd2.mp4 + +[08-31 15:35:24] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-31 15:35:24] [InputValidationStage] started... +[08-31 15:35:24] [InputValidationStage] finished in 0.0001 seconds +[08-31 15:35:24] [MiniMaxH3PartitionAdmissionStage] started... +[08-31 15:35:24] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-31 15:35:24] [MiniMaxH3TextEncodingStage] started... +[2026-08-31 15:35:25] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:26] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:27] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:28] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:29] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:30] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:31] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:32] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:33] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:34] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[08-31 15:35:34] [MiniMaxH3TextEncodingStage] finished in 10.1107 seconds +[2026-08-31 15:35:35] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:36] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[08-31 15:35:37] [MiniMaxH3VisualEncodingStage] started... +[2026-08-31 15:35:37] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:38] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:39] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:40] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:41] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[08-31 15:35:42] [MiniMaxH3VisualEncodingStage] finished in 4.7523 seconds +[08-31 15:35:42] [MiniMaxH3AudioEncodingStage] started... +[2026-08-31 15:35:42] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[08-31 15:35:42] [MiniMaxH3AudioEncodingStage] finished in 0.5433 seconds +[08-31 15:35:42] [MiniMaxH3LatentPreparationStage] started... +[08-31 15:35:42] [MiniMaxH3LatentPreparationStage] finished in 0.0895 seconds +[08-31 15:35:42] [MiniMaxH3TimestepPreparationStage] started... +[08-31 15:35:42] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-31 15:35:42] [MiniMaxH3DenoisingStage] started... +[2026-08-31 15:35:43] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK +[2026-08-31 15:35:44] INFO: 127.0.0.1:35346 - "GET /v1/videos/b9d824a9-ba52-4fc3-8549-30f63404ecd2 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/1 [00:00 str: + digest = hashlib.sha256() + with path.open("rb") as source: + for chunk in iter(lambda: source.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def load_cases(records_path: Path, assets_root: Path) -> list[dict[str, Any]]: + envelope = json.loads(records_path.read_text(encoding="utf-8")) + payload = envelope["data"] + rows = payload["data"] + record_ids = payload["record_id_list"] + fields = payload["fields"] + if len(rows) != 8 or len(record_ids) != 8: + raise ValueError(f"expected exactly 8 records, got {len(rows)} rows") + field_index = {name: index for index, name in enumerate(fields)} + required_fields = {"提示词", "参考音频", "参考图像"} + if not required_fields.issubset(field_index): + raise ValueError(f"missing fields: {sorted(required_fields - set(field_index))}") + + cases: list[dict[str, Any]] = [] + for zero_index, (record_id, row) in enumerate(zip(record_ids, rows, strict=True)): + case_number = zero_index + 1 + case_dir = assets_root / f"case{case_number:02d}_{record_id}" + prompt = row[field_index["提示词"]] + audio_attachments = row[field_index["参考音频"]] or [] + image_attachments = row[field_index["参考图像"]] or [] + attachment_by_name: dict[str, tuple[str, dict[str, Any]]] = {} + for kind, attachments in (("audio", audio_attachments), ("image", image_attachments)): + for attachment in attachments: + name = str(attachment["name"]).strip() + if name in attachment_by_name: + raise ValueError(f"case {case_number}: duplicate attachment name {name!r}") + attachment_by_name[name] = (kind, attachment) + + references = [] + seen_names: set[str] = set() + for match in REFERENCE_RE.finditer(prompt.splitlines()[0]): + label_kind, ordinal, name = match.groups() + name = name.strip() + expected_kind = "image" if label_kind == "图" else "audio" + if name not in attachment_by_name: + raise ValueError( + f"case {case_number}: mapped {label_kind}{ordinal} file {name!r} " + f"not present in attachments {sorted(attachment_by_name)}" + ) + actual_kind, attachment = attachment_by_name[name] + if actual_kind != expected_kind: + raise ValueError( + f"case {case_number}: {name!r} is {actual_kind}, expected {expected_kind}" + ) + path = case_dir / name + if not path.is_file(): + raise ValueError(f"case {case_number}: missing downloaded file {path}") + references.append( + { + "label": f"{label_kind}{ordinal}", + "type": expected_kind, + "name": name, + "path": str(path), + "file_token": attachment["file_token"], + "size": path.stat().st_size, + "sha256": sha256(path), + } + ) + seen_names.add(name) + if not references: + raise ValueError(f"case {case_number}: no reference mapping found in first line") + if seen_names != set(attachment_by_name): + raise ValueError( + f"case {case_number}: unmapped attachments " + f"{sorted(set(attachment_by_name) - seen_names)}" + ) + cases.append( + { + "case_number": case_number, + "case_id": f"case{case_number:02d}_{record_id}", + "record_id": record_id, + "prompt": prompt, + "seed": 1100 + case_number, + "references": references, + } + ) + return cases + + +def make_payload(args: argparse.Namespace, case: dict[str, Any], steps: int) -> dict[str, Any]: + conditions = [ + {"type": ref["type"], "uri": ref["path"], "role": "reference"} + for ref in case["references"] + ] + return { + "model": args.model, + "prompt": case["prompt"], + "num_outputs_per_prompt": 1, + "num_inference_steps": steps, + "flow_shift": args.flow_shift, + "audio_flow_shift": args.audio_flow_shift, + "seed": case["seed"], + "task": "ref2va", + "conditions": conditions, + "target": { + "short_edge": args.short_edge, + "aspect_ratio": args.aspect_ratio, + "duration_seconds": args.duration_seconds, + }, + } + + +def request_video( + session: requests.Session, + args: argparse.Namespace, + case: dict[str, Any], + steps: int, +) -> dict[str, Any]: + started_epoch = time.time() + started = time.monotonic() + result: dict[str, Any] = { + "case_number": case["case_number"], + "case_id": case["case_id"], + "record_id": case["record_id"], + "seed": case["seed"], + "port": args.port, + "replica_index": args.replica_index, + "num_inference_steps": steps, + "short_edge": args.short_edge, + "aspect_ratio": args.aspect_ratio, + "duration_seconds": args.duration_seconds, + "references": case["references"], + "started_at_epoch": started_epoch, + "success": False, + "error": None, + } + try: + response = session.post( + f"http://{args.host}:{args.port}/v1/videos", + json=make_payload(args, case, steps), + timeout=args.submit_timeout, + ) + if response.status_code != 200: + raise RuntimeError(f"submit HTTP {response.status_code}: {response.text[:2000]}") + status = response.json() + video_id = status.get("id") + if not video_id: + raise RuntimeError(f"submit response has no id: {status}") + result["video_id"] = video_id + deadline = time.monotonic() + args.request_timeout + while status.get("status") not in {"completed", "failed"}: + if time.monotonic() >= deadline: + raise TimeoutError(f"video job {video_id} exceeded {args.request_timeout}s") + time.sleep(args.poll_interval) + poll = session.get( + f"http://{args.host}:{args.port}/v1/videos/{video_id}", + timeout=args.poll_timeout, + ) + if poll.status_code != 200: + raise RuntimeError(f"poll HTTP {poll.status_code}: {poll.text[:2000]}") + status = poll.json() + if status.get("status") != "completed": + raise RuntimeError(f"job failed: {status.get('error') or status}") + result["success"] = True + result["inference_time_s"] = status.get("inference_time_s") + result["peak_memory_mb"] = status.get("peak_memory_mb") + result["file_path"] = status.get("file_path") + result["status"] = status + except Exception as exc: + result["error"] = f"{type(exc).__name__}: {exc}" + result["latency_s"] = time.monotonic() - started + result["finished_at_epoch"] = time.time() + return result + + +def run_command(args: argparse.Namespace) -> int: + cases = load_cases(args.records, args.assets_root) + case = cases[args.case_number - 1] + args.output.parent.mkdir(parents=True, exist_ok=True) + with requests.Session() as session: + if args.warmup_steps > 0: + warmup = request_video(session, args, case, args.warmup_steps) + print( + f"warmup case={case['case_id']} success={warmup['success']} " + f"latency={warmup['latency_s']:.2f}s error={warmup['error']}", + flush=True, + ) + if not warmup["success"]: + args.output.write_text( + json.dumps({"warmup": warmup}, ensure_ascii=False, indent=2), + encoding="utf-8", + ) + return 1 + result = request_video(session, args, case, args.num_inference_steps) + args.output.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8") + print( + f"request case={case['case_id']} success={result['success']} " + f"latency={result['latency_s']:.2f}s file={result.get('file_path')} " + f"error={result['error']}", + flush=True, + ) + return int(not result["success"]) + + +def summarize_command(args: argparse.Namespace) -> int: + rows = [] + for path in sorted(args.result_root.glob("batch_*/client_*/result.json")): + row = json.loads(path.read_text(encoding="utf-8")) + if "warmup" not in row: + rows.append(row) + batches: dict[str, Any] = {} + for batch_dir in sorted(args.result_root.glob("batch_*")): + batch_rows = [] + for path in sorted(batch_dir.glob("client_*/result.json")): + row = json.loads(path.read_text(encoding="utf-8")) + if "warmup" not in row: + batch_rows.append(row) + successful = [row for row in batch_rows if row.get("success")] + starts = [float(row["started_at_epoch"]) for row in batch_rows] + finishes = [float(row["finished_at_epoch"]) for row in batch_rows] + wall_s = max(finishes) - min(starts) if starts and finishes else 0.0 + batches[batch_dir.name] = { + "requests": len(batch_rows), + "completed": len(successful), + "failed": len(batch_rows) - len(successful), + "machine_wall_s": wall_s, + "machine_qps": len(successful) / wall_s if wall_s else 0.0, + "latency_mean_s": statistics.fmean( + float(row["latency_s"]) for row in successful + ) if successful else 0.0, + } + successful = [row for row in rows if row.get("success")] + measured_wall_s = sum(batch["machine_wall_s"] for batch in batches.values()) + summary = { + "method": "base", + "task": "ref2va", + "tp": 2, + "replicas": 4, + "expected_requests": 8, + "requests_recorded": len(rows), + "completed": len(successful), + "failed": len(rows) - len(successful), + "measured_batch_wall_s": measured_wall_s, + "machine_qps": len(successful) / measured_wall_s if measured_wall_s else 0.0, + "latency_mean_s": statistics.fmean( + float(row["latency_s"]) for row in successful + ) if successful else 0.0, + "batches": batches, + "cases": rows, + } + args.output.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8") + per_case_path = args.output.with_name("per_case.tsv") + with per_case_path.open("w", encoding="utf-8") as output: + output.write( + "case_number\tcase_id\trecord_id\tseed\tsuccess\t" + "end_to_end_latency_s\tserver_inference_time_s\tfile_path\terror\n" + ) + for row in sorted(rows, key=lambda item: int(item["case_number"])): + fields = [ + row.get("case_number"), + row.get("case_id"), + row.get("record_id"), + row.get("seed"), + row.get("success"), + f"{float(row.get('latency_s') or 0.0):.6f}", + f"{float(row.get('inference_time_s') or 0.0):.6f}", + row.get("file_path") or "", + str(row.get("error") or "").replace("\t", " ").replace("\n", " "), + ] + output.write("\t".join(str(field) for field in fields) + "\n") + print(json.dumps({key: value for key, value in summary.items() if key != "cases"}, ensure_ascii=False, indent=2)) + return int(len(rows) != 8 or len(successful) != 8) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="command", required=True) + run = subparsers.add_parser("run") + run.add_argument("--host", default="127.0.0.1") + run.add_argument("--port", type=int, required=True) + run.add_argument("--replica-index", type=int, required=True) + run.add_argument("--case-number", type=int, choices=range(1, 9), required=True) + run.add_argument("--records", type=Path, required=True) + run.add_argument("--assets-root", type=Path, required=True) + run.add_argument("--model", default="/data/hf_models/MiniMax-H3") + run.add_argument("--num-inference-steps", type=int, default=20) + run.add_argument("--warmup-steps", type=int, default=0) + run.add_argument("--short-edge", type=int, default=768) + run.add_argument("--aspect-ratio", default="9:16") + run.add_argument("--duration-seconds", type=float, default=15.0) + run.add_argument("--flow-shift", type=float, default=12.0) + run.add_argument("--audio-flow-shift", type=float, default=3.0) + run.add_argument("--submit-timeout", type=float, default=120.0) + run.add_argument("--poll-timeout", type=float, default=30.0) + run.add_argument("--poll-interval", type=float, default=1.0) + run.add_argument("--request-timeout", type=float, default=7200.0) + run.add_argument("--output", type=Path, required=True) + summarize = subparsers.add_parser("summarize") + summarize.add_argument("--result-root", type=Path, required=True) + summarize.add_argument("--output", type=Path, required=True) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + if args.command == "run": + return run_command(args) + return summarize_command(args) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh b/throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh similarity index 81% rename from sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh rename to throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh index b349244..5cd17cb 100755 --- a/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh +++ b/throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh @@ -18,14 +18,21 @@ MASTER_PORT_BASE=${MASTER_PORT_BASE:-31000} SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-32000} HOST=${HOST:-127.0.0.1} MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +REPO_ROOT=${REPO_ROOT:-/data/wxy/sskj-h3} REFERENCE_IMAGE=${REFERENCE_IMAGE:-/data/wxy/sskj-MiniMax-H3/assets/reference_images/landscape_mountain_lake.jpg} PROMPT_FILE=${PROMPT_FILE:-/root/.cache/sglang/vbench_subject_consistency.txt} PYTHON=${PYTHON:-/root/.miniconda3/envs/sglang/bin/python} SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang/bin/sglang} -CLIENT_SCRIPT=${CLIENT_SCRIPT:-/data/wxy/minimax_h3_mixed_bench.py} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-$REPO_ROOT/throughput/sglang-base/scripts/minimax_h3_mixed_bench.py} +SSIM_SCRIPT=${SSIM_SCRIPT:-$REPO_ROOT/throughput/common/paired_video_ssim.py} +SSIM_REFERENCE_ROOT=${SSIM_REFERENCE_ROOT:-} +SSIM_THRESHOLD=${SSIM_THRESHOLD:-0.90} +SSIM_FAIL_BELOW_THRESHOLD=${SSIM_FAIL_BELOW_THRESHOLD:-false} +FFMPEG_BIN=${FFMPEG_BIN:-/root/.miniconda3/envs/deploy/bin/ffmpeg} +FFPROBE_BIN=${FFPROBE_BIN:-/root/.miniconda3/envs/deploy/bin/ffprobe} SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} RUN_ID=${RUN_ID:-mixed64-$(date '+%Y%m%d-%H%M%S')} -RESULT_ROOT=${RESULT_ROOT:-/data/wxy/results/minimax_h3_mixed_matrix/$RUN_ID} +RESULT_ROOT=${RESULT_ROOT:-$REPO_ROOT/throughput/sglang-base/results/$RUN_ID} declare -a SERVER_PIDS=() declare -a CLIENT_PIDS=() @@ -37,6 +44,11 @@ die() { log "ERROR: $*" >&2; exit 1; } [[ -x "$SGLANG_BIN" ]] || die "sglang not executable: $SGLANG_BIN" [[ -f "$CLIENT_SCRIPT" ]] || die "client script missing: $CLIENT_SCRIPT" [[ -f "$REFERENCE_IMAGE" ]] || die "reference image missing: $REFERENCE_IMAGE" +if [[ -n "$SSIM_REFERENCE_ROOT" ]]; then + [[ -f "$SSIM_SCRIPT" ]] || die "SSIM script missing: $SSIM_SCRIPT" + [[ -x "$FFMPEG_BIN" ]] || die "ffmpeg not executable: $FFMPEG_BIN" + [[ -x "$FFPROBE_BIN" ]] || die "ffprobe not executable: $FFPROBE_BIN" +fi mkdir -p "$RESULT_ROOT" SUMMARY_TSV="$RESULT_ROOT/summary.tsv" printf 'tp\treplicas\ttask\texpected\trecorded\tcompleted\tfailed\tmachine_qps\tlatency_mean_s\tlatency_p95_s\tmachine_wall_s\n' > "$SUMMARY_TSV" @@ -159,6 +171,30 @@ run_clients() { return "$failed" } +score_ssim() { + local tp=$1 replicas=$2 task=$3 phase_dir=$4 + [[ -n "$SSIM_REFERENCE_ROOT" ]] || return 0 + local reference_phase="$SSIM_REFERENCE_ROOT/tp${tp}_replicas${replicas}/${task}" + local quality_dir="$phase_dir/quality" + [[ -d "$reference_phase" ]] || { + log "ERROR: SSIM reference phase missing: $reference_phase" >&2 + return 1 + } + mkdir -p "$quality_dir" + local -a command=( + "$PYTHON" "$SSIM_SCRIPT" compare + --candidate-dir "$phase_dir" + --reference-dir "$reference_phase" + --output-dir "$quality_dir" + --threshold "$SSIM_THRESHOLD" + --ffmpeg "$FFMPEG_BIN" + --ffprobe "$FFPROBE_BIN" + ) + [[ "$SSIM_FAIL_BELOW_THRESHOLD" == true ]] && command+=(--fail-below-threshold) + log "computing paired SSIM task=$task reference=$reference_phase" + "${command[@]}" >"$quality_dir/paired_ssim.log" 2>&1 +} + read -r -a TP_VALUES <<< "$TP_MATRIX" read -r -a TASK_VALUES <<< "$TASKS" for tp in "${TP_VALUES[@]}"; do @@ -172,6 +208,7 @@ for tp in "${TP_VALUES[@]}"; do start_servers "$tp" "$replicas" "$variant" "$phase_dir" phase_failed=0; run_clients "$tp" "$replicas" "$task" "$phase_dir" || phase_failed=1 stop_servers + ((phase_failed == 0)) && score_ssim "$tp" "$replicas" "$task" "$phase_dir" || phase_failed=1 ((phase_failed == 0)) || die "TP=$tp task=$task had failed requests; inspect $phase_dir" done done diff --git a/throughput/sglang-base/scripts/run_sglang_h3_ref2va_feishu_base_tp2x4.sh b/throughput/sglang-base/scripts/run_sglang_h3_ref2va_feishu_base_tp2x4.sh new file mode 100755 index 0000000..2235f3a --- /dev/null +++ b/throughput/sglang-base/scripts/run_sglang_h3_ref2va_feishu_base_tp2x4.sh @@ -0,0 +1,194 @@ +#!/usr/bin/env bash +# Eight real Ref2VA cases: four TP2 replicas, two batches of four requests. +set -Eeuo pipefail + +MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +REPO_ROOT=${REPO_ROOT:-/data/wxy/sskj-h3} +INPUT_ROOT=${INPUT_ROOT:-$REPO_ROOT/throughput/sglang-base/inputs/ref2va-feishu-20260831} +RECORDS=${RECORDS:-$INPUT_ROOT/records.json} +ASSETS_ROOT=${ASSETS_ROOT:-$INPUT_ROOT/assets} +PYTHON=${PYTHON:-/root/.miniconda3/envs/sglang/bin/python} +SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang/bin/sglang} +MEDIA_BIN_DIR=${MEDIA_BIN_DIR:-/root/.miniconda3/envs/deploy/bin} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-$REPO_ROOT/throughput/sglang-base/scripts/ref2va_feishu_bench.py} +BASE_PORT=${BASE_PORT:-34010} +PORT_STRIDE=${PORT_STRIDE:-10} +MASTER_PORT_BASE=${MASTER_PORT_BASE:-35000} +SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-36000} +HOST=${HOST:-127.0.0.1} +TP_SIZE=2 +REPLICAS=4 +NUM_INFERENCE_STEPS=${NUM_INFERENCE_STEPS:-20} +SHORT_EDGE=${SHORT_EDGE:-768} +ASPECT_RATIO=${ASPECT_RATIO:-9:16} +DURATION_SECONDS=${DURATION_SECONDS:-15} +FLOW_SHIFT=${FLOW_SHIFT:-12.0} +AUDIO_FLOW_SHIFT=${AUDIO_FLOW_SHIFT:-3.0} +SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} +RUN_ID=${RUN_ID:-ref2va-feishu-base-tp2x4-768p-15s-20steps-$(date '+%Y%m%d-%H%M%S')} +RESULT_ROOT=${RESULT_ROOT:-$REPO_ROOT/throughput/sglang-base/results/$RUN_ID} + +declare -a SERVER_PIDS=() +declare -a CLIENT_PIDS=() + +log() { printf '[%s] %s\n' "$(date '+%F %T')" "$*"; } +die() { log "ERROR: $*" >&2; exit 1; } + +[[ -x "$PYTHON" ]] || die "python not executable: $PYTHON" +[[ -x "$SGLANG_BIN" ]] || die "sglang not executable: $SGLANG_BIN" +[[ -x "$MEDIA_BIN_DIR/ffprobe" ]] || die "ffprobe not executable: $MEDIA_BIN_DIR/ffprobe" +[[ -x "$MEDIA_BIN_DIR/ffmpeg" ]] || die "ffmpeg not executable: $MEDIA_BIN_DIR/ffmpeg" +[[ -f "$CLIENT_SCRIPT" ]] || die "client script missing: $CLIENT_SCRIPT" +[[ -f "$RECORDS" ]] || die "records missing: $RECORDS" +[[ -d "$ASSETS_ROOT" ]] || die "assets missing: $ASSETS_ROOT" +mkdir -p "$RESULT_ROOT" + +port_is_open() { + "$PYTHON" - "$HOST" "$1" <<'PY' +import socket, sys +s = socket.socket(); s.settimeout(0.5) +try: s.connect((sys.argv[1], int(sys.argv[2]))) +except OSError: raise SystemExit(1) +else: raise SystemExit(0) +finally: s.close() +PY +} + +stop_servers() { + local pid alive deadline + ((${#SERVER_PIDS[@]})) || return 0 + log "stopping ${#SERVER_PIDS[@]} server(s)" + for pid in "${SERVER_PIDS[@]}"; do kill -INT "$pid" 2>/dev/null || true; done + deadline=$((SECONDS + 120)) + while ((SECONDS < deadline)); do + alive=0 + for pid in "${SERVER_PIDS[@]}"; do kill -0 "$pid" 2>/dev/null && alive=1; done + ((alive == 0)) && break + sleep 2 + done + for pid in "${SERVER_PIDS[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + kill -TERM -- "-$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + sleep 5 + kill -KILL -- "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + done + SERVER_PIDS=() +} + +cleanup() { + local rc=$? pid + trap - EXIT INT TERM + for pid in "${CLIENT_PIDS[@]}"; do kill -TERM "$pid" 2>/dev/null || true; done + stop_servers + nvidia-smi --query-gpu=index,pstate,memory.used,utilization.gpu --format=csv,noheader >"$RESULT_ROOT/gpu_after.csv" 2>&1 || true + exit "$rc" +} +trap cleanup EXIT INT TERM + +wait_healthy() { + local port=$1 pid=$2 log_file=$3 deadline=$((SECONDS + SERVER_START_TIMEOUT)) + while ((SECONDS < deadline)); do + curl -fsS --max-time 5 "http://${HOST}:${port}/health" >/dev/null 2>&1 && return 0 + if ! kill -0 "$pid" 2>/dev/null; then tail -120 "$log_file" >&2 || true; return 1; fi + sleep 5 + done + tail -120 "$log_file" >&2 || true + return 1 +} + +start_servers() { + local replica port master_port scheduler_port first_gpu gpu_csv offset gpu server_dir server_log candidate + for ((replica=0; replica"$server_dir/cuda_visible_devices.txt" + log "starting base Ref2VA replica=$replica GPUs=$gpu_csv port=$port" + env -u SGLANG_CACHE_DIT_ENABLED -u SGLANG_CACHE_DIT_FN -u SGLANG_CACHE_DIT_BN \ + -u SGLANG_CACHE_DIT_RDT -u SGLANG_CACHE_DIT_MC -u SGLANG_CACHE_DIT_WARMUP \ + -u SGLANG_CACHE_DIT_TAYLORSEER -u SGLANG_CACHE_DIT_SCM_PRESET \ + -u SGLANG_CACHE_DIT_SCM_POLICY CUDA_VISIBLE_DEVICES="$gpu_csv" \ + PATH="$MEDIA_BIN_DIR:$PATH" \ + PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \ + PYTHONUNBUFFERED=1 TOKENIZERS_PARALLELISM=false SGLANG_USE_RUNAI_MODEL_STREAMER=false \ + setsid "$SGLANG_BIN" serve --model-path "$MODEL" --model-variant Ref2VA \ + --backend sglang --performance-mode speed --num-gpus "$TP_SIZE" --tp-size "$TP_SIZE" \ + --ulysses-degree 1 --use-fsdp-inference false --enable-torch-compile false \ + --batching-max-size 1 --batching-delay-ms 0 --host 0.0.0.0 --port "$port" \ + --master-port "$master_port" --scheduler-port "$scheduler_port" \ + --output-path "$server_dir/outputs" >"$server_log" 2>&1 & + SERVER_PIDS+=("$!") + done + for ((replica=0; replica"$client_dir/client.log" 2>&1 & + CLIENT_PIDS+=("$!") + log "batch=$batch started case=$case_number replica=$replica port=$port" + done + for pid in "${CLIENT_PIDS[@]}"; do wait "$pid" || failed=1; done + CLIENT_PIDS=() + ((failed == 0)) || die "batch=$batch had failed requests" + log "batch=$batch complete" +} + +{ + printf 'run_id=%s\n' "$RUN_ID" + printf 'method=base\ntask=ref2va\ntp_size=2\nreplicas=4\n' + printf 'num_inference_steps=%s\nshort_edge=%s\naspect_ratio=%s\nduration_seconds=%s\n' \ + "$NUM_INFERENCE_STEPS" "$SHORT_EDGE" "$ASPECT_RATIO" "$DURATION_SECONDS" + printf 'flow_shift=%s\naudio_flow_shift=%s\nmodel=%s\nmedia_bin_dir=%s\n' \ + "$FLOW_SHIFT" "$AUDIO_FLOW_SHIFT" "$MODEL" "$MEDIA_BIN_DIR" + printf 'cache_dit_enabled=false\nfsdp_inference=false\ntorch_compile=false\nbatching_max_size=1\n' + printf 'pytorch_cuda_alloc_conf=expandable_segments:True\n' +} >"$RESULT_ROOT/run_config.env" +cp "$RECORDS" "$RESULT_ROOT/input_records.json" +sha256sum "$RECORDS" "$CLIENT_SCRIPT" "$0" >"$RESULT_ROOT/source_sha256.txt" +find "$ASSETS_ROOT" -type f -print0 | sort -z | xargs -0 sha256sum >"$RESULT_ROOT/input_assets_sha256.txt" +nvidia-smi >"$RESULT_ROOT/nvidia_smi_before.txt" +nvidia-smi --query-gpu=index,pstate,memory.used,utilization.gpu --format=csv,noheader >"$RESULT_ROOT/gpu_before.csv" +"$PYTHON" -V >"$RESULT_ROOT/python_version.txt" 2>&1 +"$PYTHON" -m pip show sglang >"$RESULT_ROOT/sglang_pip_show.txt" 2>&1 || true +"$PYTHON" -m pip freeze >"$RESULT_ROOT/pip_freeze.txt" 2>&1 + +start_servers +run_batch 1 1 5 +run_batch 2 5 0 +stop_servers +"$PYTHON" "$CLIENT_SCRIPT" summarize --result-root "$RESULT_ROOT" --output "$RESULT_ROOT/summary.json" \ + >"$RESULT_ROOT/summary.log" 2>&1 +nvidia-smi --query-gpu=index,pstate,memory.used,utilization.gpu --format=csv,noheader >"$RESULT_ROOT/gpu_after.csv" +trap - EXIT INT TERM +log "Ref2VA Feishu base TP2x4 complete: $RESULT_ROOT" diff --git a/throughput/sglang-lora/README.md b/throughput/sglang-lora/README.md new file mode 100644 index 0000000..034e958 --- /dev/null +++ b/throughput/sglang-lora/README.md @@ -0,0 +1,45 @@ +# SGLang MiniMax-H3 Larry v4-600 LoRA 吞吐测试 + +本目录复用 `../sglang-base` 的服务与请求口径,针对当前吞吐最优拓扑 TP2×4 测试 Larry v4-600 EMA Turbo LoRA。 + +## 固定口径 + +- 模型:MiniMax-H3 FL2VA +- 框架:SGLang 0.5.18,Conda 环境 `sglang-lora` +- 拓扑:TP2×4,共 8 张 RTX 6000D +- 输出:768P、5 秒、16:9 +- 总请求:32;每实例 8 条;实例间并行、实例内串行 +- LoRA:`minimax_h3_turbo_v4_step600_ema.safetensors`,scale 1.0,merge mode `auto` +- 采样:请求 `num_inference_steps=9`,对应官方 8 次 denoiser evaluation +- Base 标准:请求 `num_inference_steps=20`,对应当前 SGLang 语义下的 19 次 denoiser evaluation + +Larry v4-600 官方配方属于 FL2VA,因此本吞吐测试不把它直接套到 Ref2VA。 + +## 运行 + +```bash +cd /data/wxy/sskj-h3/throughput/sglang-lora +tmux new-session -d -s h3_lora_tp2x4_768p \ + "bash scripts/run_sglang_h3_lora_tp2x4_768p.sh 2>&1 | tee run.log" +``` + +结果写入 `results/lora-v4-600-tp2x4-768p-8nfe-5s-*`,其中包含运行配置、各实例服务日志、逐条请求 JSONL、汇总 JSON/TSV 和 `DONE` 标记。 + +## 与 Base 对齐的 TP2×4 混合测试 + +`scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh` 只运行吞吐最优拓扑,并与 `../sglang-base` 的请求口径对齐: + +- TP2×4(8 张卡、4 个服务,每服务 2 张卡) +- FL2VA、Ref2VA +- 480/720/768/1080,每任务每档 8 条 +- 共 64 条正式请求:每任务 32 条、每分辨率每任务 8 条 +- 每个服务在每个任务下均收到 8 条请求,即每档分辨率各 2 条 +- Larry 请求 `num_inference_steps=9`,对应 8 次 denoiser evaluation + +Larry v4-600 官方配方面向 FL2VA。矩阵中的 Ref2VA 用于检查权重兼容性和测量吞吐,质量结论必须单独验证,不能视为官方推荐用法。 + +```bash +cd /data/wxy/sskj-h3/throughput/sglang-lora +tmux new-session -d -s h3_lora_mixed_matrix \ + "bash scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh > mixed_matrix.log 2>&1" +``` diff --git a/throughput/sglang-lora/RESULTS.md b/throughput/sglang-lora/RESULTS.md new file mode 100644 index 0000000..2713ad5 --- /dev/null +++ b/throughput/sglang-lora/RESULTS.md @@ -0,0 +1,42 @@ +# Larry v4-600 TP2×4 768P 吞吐结果 + +## 有效运行 + +- 运行目录:`results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2` +- 模型/任务:MiniMax-H3 FL2VA +- 框架:SGLang 0.5.18 +- 拓扑:TP2×4,8× RTX 6000D +- 输出:768P、5 秒、16:9 +- LoRA:`minimax_h3_turbo_v4_step600_ema.safetensors`,scale 1.0,静态 `auto` merge +- 采样:请求 `num_inference_steps=9`,对应 8 次 denoiser evaluation +- 正式样本:32 条,每实例 8 条;实例间并行,实例内串行 + +| 指标 | 结果 | +|---|---:| +| 成功/失败 | 32 / 0 | +| Machine wall time | 1007.212 s | +| Machine QPS | 0.03177085 | +| 折算请求量 | 114.38 条/小时 | +| 平均端到端时延 | 125.6795 s | +| P50 | 125.6533 s | +| P95 | 125.6944 s | + +## 与已有 Base 的对比 + +已有 Base TP2×4 混合分辨率实验中,768P FL2VA 的平均时延为 281.5203 秒。该分桶只有 8 条且混在 480/720/768/1080P 序列中,因此没有独立的纯 768P machine wall time;按四实例串行服务估算,Base 纯 768P 吞吐约为 `4 / 281.5203 = 0.01420856 QPS`,即约 51.15 条/小时。 + +| 指标 | Base | Larry v4-600 | 变化 | +|---|---:|---:|---:| +| 请求网格点 | 20 | 9 | -55% | +| 实际 denoiser evaluations | 19 | 8 | -57.9% | +| 768P 平均时延 | 281.5203 s | 125.6795 s | 2.240× 加速 | +| 768P machine QPS | 约 0.01420856 | 0.03177085 | 约 2.236× | +| 每小时请求量 | 约 51.15 | 114.38 | 约 +63.23 条 | + +理论 NFE 比值为 `19 / 8 = 2.375×`,实际端到端时延加速为 2.240×,约达到理论比例的 94.3%;剩余差异来自文本/图片编码、VAE decode、封装写盘和请求调度等非 denoise 固定成本。 + +对比限制:Base 来自 SGLang 0.5.17 的既有混合分辨率运行,LoRA 来自 SGLang 0.5.18 的纯 768P 运行。当前结果足以给出工程吞吐提升,但若要严格拆分 LoRA 与框架升级各自贡献,应在 0.5.18 上补跑同样 32 条纯 768P Base 20-grid 对照。 + +## 兼容性记录 + +首次 `run1` 已成功完成模型推理,但新 Conda 环境的 `bin` 未加入非交互 tmux 的 `PATH`,导致最终输出校验找不到 `ffprobe`。正式样本尚未开始,编排器自动停止服务并释放 GPU。脚本随后显式加入 `sglang-lora/bin`,`run2` 的 warmup 和 32 条正式样本全部通过。 diff --git a/throughput/sglang-lora/compat/README.md b/throughput/sglang-lora/compat/README.md new file mode 100644 index 0000000..b81bad8 --- /dev/null +++ b/throughput/sglang-lora/compat/README.md @@ -0,0 +1,19 @@ +# SGLang 0.5.18 MiniMax-H3 benchmark compatibility patch + +The stock 0.5.18 request contract accepts only `short_edge=768`. The Base +benchmark in this repository used a narrowly scoped compatibility patch for +four 16:9 canvases. The patched copies here reproduce the same mapping in the +isolated `sglang-lora` environment: + +| requested short edge | resolved canvas | +| ---: | ---: | +| 480 | 864×480 | +| 720 | 1280×736 | +| 768 | 1344×768 (stock policy) | +| 1080 | 1920×1088 | + +Only the three non-stock short edges are restricted to 16:9. `upstream-0.5.18` +contains the untouched files retrieved before installation; `patched-0.5.18` +contains the benchmark-compatible copies. This patch changes request/shape +validation only; it does not alter model kernels, LoRA weights, scheduling, or +sampling. diff --git a/throughput/sglang-lora/compat/patched-0.5.18/request_validation.py b/throughput/sglang-lora/compat/patched-0.5.18/request_validation.py new file mode 100644 index 0000000..7aa7467 --- /dev/null +++ b/throughput/sglang-lora/compat/patched-0.5.18/request_validation.py @@ -0,0 +1,363 @@ +# SPDX-License-Identifier: Apache-2.0 +"""MiniMax H3 canonical request validation. + +Entry fail-fast for `minimax_h3.request/v1`: every violation raises ValueError +with the offending field path. Output is a normalized canonical dict (frame +indices validated but semantic -1 preserved, nothing else rewritten — prompt passes through verbatim and +conditions order is semantic, never reordered). +""" + +from __future__ import annotations + +import math +from collections.abc import Mapping, Sequence +from typing import Any + +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.constants import ( + MINIMAX_H3_MAX_DURATION_SECONDS, + MINIMAX_H3_MIN_DURATION_SECONDS, + MINIMAX_H3_SUPPORTED_FPS, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.task_profiles import ( + MINIMAX_H3_CONDITION_ROLE_KEYFRAME, + MINIMAX_H3_CONDITION_ROLE_REFERENCE, + MINIMAX_H3_FINITE_ASPECT_RATIOS, + MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES, + MINIMAX_H3_TASK_FL2VA, + MINIMAX_H3_TASK_REF2VA, + MINIMAX_H3_TASK_T2VA, + MiniMaxH3TaskProfile, + canonical_minimax_h3_task, + minimax_h3_task_profile, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.time_request import ( + minimax_h3_align_frame_count, +) + +MINIMAX_H3_REQUEST_SCHEMA = "minimax_h3.request/v1" +MINIMAX_H3_MAX_SIGNED_SEED = (1 << 63) - 1 +_ALLOWED_CONDITION_KEYS = frozenset( + {"type", "uri", "role", "frame_index", "start_time_seconds"} +) + + +def _require_str(value: Any, path: str) -> str: + if not isinstance(value, str) or value == "": + raise ValueError(f"{path} must be a non-empty string") + return value + + +def _require_int(value: Any, path: str) -> int: + if isinstance(value, bool) or not isinstance(value, int): + raise ValueError(f"{path} must be an integer") + return value + + +def _optional_positive_finite_float(value: Any, path: str) -> float | None: + if value is None: + return None + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise ValueError(f"{path} must be a number") + normalized = float(value) + if not math.isfinite(normalized) or normalized <= 0.0: + raise ValueError(f"{path} must be a positive finite number") + return normalized + + +def _optional_nonnegative_finite_float(value: Any, path: str) -> float | None: + if value is None: + return None + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise ValueError(f"{path} must be a number") + normalized = float(value) + if not math.isfinite(normalized) or normalized < 0.0: + raise ValueError(f"{path} must be a non-negative finite number") + return normalized + + +def _validate_target(target: Any, *, profile: MiniMaxH3TaskProfile) -> dict[str, Any]: + path = "target" + if not isinstance(target, Mapping): + raise ValueError(f"{path} is required and must be an object") + # The canonical target has a deliberately small projection. Transport + # compatibility keys are ignored; only these three declared values are + # validated and emitted below. + short_edge = _require_int(target.get("short_edge"), f"{path}.short_edge") + supported_short_edges = (480, 720, 768, 1080) + if short_edge not in supported_short_edges: + raise ValueError( + f"{path}.short_edge must be one of {supported_short_edges} for " + f"this MiniMax H3 benchmark deployment, got {short_edge}" + ) + aspect_ratio = _require_str(target.get("aspect_ratio"), f"{path}.aspect_ratio") + if profile.aspect_ratio_forced_auto and aspect_ratio != "auto": + raise ValueError( + f'{path}.aspect_ratio must be "auto" for task {profile.task!r}, ' + f"got {aspect_ratio!r}" + ) + has_duration = target.get("duration_seconds") is not None + if ( + profile.task in {MINIMAX_H3_TASK_T2VA, MINIMAX_H3_TASK_REF2VA} + and aspect_ratio != "auto" + and aspect_ratio not in MINIMAX_H3_FINITE_ASPECT_RATIOS + ): + raise ValueError( + f"{path}.aspect_ratio for task {profile.task!r} must be 'auto' or " + f"one of {list(MINIMAX_H3_FINITE_ASPECT_RATIOS)!r}, got " + f"{aspect_ratio!r}" + ) + if not has_duration: + if not profile.duration_from_audio_reference: + raise ValueError(f"{path}.duration_seconds is required") + # ref2va: duration may derive from a reference audio; the + # audio-condition presence is enforced after conditions validate. + out: dict[str, Any] = { + "short_edge": short_edge, + "aspect_ratio": aspect_ratio, + } + if has_duration: + duration = target["duration_seconds"] + if isinstance(duration, bool) or not isinstance(duration, (int, float)): + raise ValueError(f"{path}.duration_seconds must be a number") + if duration <= 0: + raise ValueError(f"{path}.duration_seconds must be positive") + if not ( + MINIMAX_H3_MIN_DURATION_SECONDS + <= float(duration) + <= MINIMAX_H3_MAX_DURATION_SECONDS + ): + raise ValueError( + f"{path}.duration_seconds must be in " + f"[{MINIMAX_H3_MIN_DURATION_SECONDS:g}, " + f"{MINIMAX_H3_MAX_DURATION_SECONDS:g}], got {duration}" + ) + out["duration_seconds"] = float(duration) + return out + + +def _validate_conditions( + conditions: Any, + *, + profile: MiniMaxH3TaskProfile, + frame_count: int | None, +) -> list[dict[str, Any]]: + path = "conditions" + if conditions is None: + conditions = [] + if not isinstance(conditions, Sequence) or isinstance(conditions, (str, bytes)): + raise ValueError(f"{path} must be a list") + + if not profile.conditions_required: + if len(conditions) > 0: + raise ValueError( + f"{path} must be empty for task {profile.task!r} " + f"(got {len(conditions)} entries)" + ) + return [] + if len(conditions) == 0: + raise ValueError( + f"{path} requires at least one entry for task {profile.task!r}" + ) + if ( + profile.min_condition_count is not None + and len(conditions) < profile.min_condition_count + ): + raise ValueError( + f"{path} requires at least {profile.min_condition_count} entries " + f"for task {profile.task!r}, got {len(conditions)}" + ) + if ( + profile.max_condition_count is not None + and len(conditions) > profile.max_condition_count + ): + raise ValueError( + f"{path} allows at most {profile.max_condition_count} entries " + f"for task {profile.task!r}, got {len(conditions)}" + ) + + aligned_frame_count = ( + minimax_h3_align_frame_count(frame_count) if frame_count is not None else None + ) + normalized: list[dict[str, Any]] = [] + seen_frame_indices: dict[int, int] = {} + for index, cond in enumerate(conditions): + cpath = f"{path}[{index}]" + if not isinstance(cond, Mapping): + raise ValueError(f"{cpath} must be an object") + unknown = set(cond) - _ALLOWED_CONDITION_KEYS + if unknown: + raise ValueError(f"{cpath} has unknown fields: {sorted(unknown)}") + role = _require_str(cond.get("role"), f"{cpath}.role") + if role not in ( + MINIMAX_H3_CONDITION_ROLE_KEYFRAME, + MINIMAX_H3_CONDITION_ROLE_REFERENCE, + ): + raise ValueError( + f"{cpath}.role must be keyframe or reference, " f"got {role!r}" + ) + cond_type = _require_str(cond.get("type"), f"{cpath}.type") + try: + rule = profile.rule_for(role=role, condition_type=cond_type) + except ValueError as exc: + raise ValueError(f"{cpath}: {exc}") from exc + uri = _require_str(cond.get("uri"), f"{cpath}.uri") + + entry: dict[str, Any] = {"type": cond_type, "uri": uri, "role": role} + if rule.requires_frame_index: + frame_index = _require_int(cond.get("frame_index"), f"{cpath}.frame_index") + if aligned_frame_count is None: + raise ValueError( + f"{cpath}.frame_index requires a resolved target duration" + ) + if frame_index == -1: + resolved = aligned_frame_count - 1 + elif 0 <= frame_index < aligned_frame_count: + resolved = frame_index + else: + raise ValueError( + f"{cpath}.frame_index must be -1 or in " + f"[0, {aligned_frame_count}) after 17n+5 frame alignment, " + f"got {frame_index}" + ) + if resolved in seen_frame_indices: + raise ValueError( + f"{cpath}.frame_index resolves to {resolved}, already " + f"bound by conditions[{seen_frame_indices[resolved]}]" + ) + seen_frame_indices[resolved] = index + # Preserve the request-level semantic index. In particular, -1 is + # the canonical last-frame sentinel; the resolved pixel frame is + # carried separately by MiniMaxH3ResolvedPlan. + entry["frame_index"] = frame_index + elif cond.get("frame_index") is not None: + raise ValueError(f"{cpath}.frame_index is not allowed for role={role!r}") + start_time_seconds = _optional_nonnegative_finite_float( + cond.get("start_time_seconds"), f"{cpath}.start_time_seconds" + ) + if start_time_seconds is not None: + if cond_type not in {"video", "video_audio"}: + raise ValueError( + f"{cpath}.start_time_seconds is only allowed for video " + "or video_audio references" + ) + entry["start_time_seconds"] = start_time_seconds + normalized.append(entry) + return normalized + + +def _validate_fl2va_conditions(conditions: Sequence[Mapping[str, Any]]) -> None: + """Enforce the public FL contract after per-entry schema validation.""" + + frame_indices = tuple(condition.get("frame_index") for condition in conditions) + if frame_indices not in MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES: + raise ValueError( + "conditions for task 'fl2va' must be one or two ordered " + "image/keyframe entries with frame_index [0], [-1], or [0, -1], " + f"got {list(frame_indices)!r}" + ) + + +def minimax_h3_validate_canonical_request( + *, + task: Any, + prompt: Any, + conditions: Any, + target: Any, + flow_shift: Any = None, + audio_flow_shift: Any = None, + seed: Any = None, + **_extra_kwargs: Any, +) -> dict[str, Any]: + """Validate and normalize a `minimax_h3.request/v1` canonical request. + + Returns the normalized canonical dict; raises ValueError with a field + path on any violation. Conditions order is preserved (it is semantic: + prompt ordinal labels reference it). seed=0 is a legal value. + """ + # Accept transport wrappers and compatibility kwargs at this boundary, but + # never copy them into the canonical request. + del _extra_kwargs + # Normalize the task name before profile lookup so offline callers match + # the adapter behaviour. + task_name = canonical_minimax_h3_task(_require_str(task, "task")) + profile = minimax_h3_task_profile(task_name) + prompt_text = _require_str(prompt, "prompt") + + normalized_target = _validate_target(target, profile=profile) + requested_frame_count = None + if normalized_target.get("duration_seconds") is not None: + requested_frame_count = int( + round( + float(normalized_target["duration_seconds"]) * MINIMAX_H3_SUPPORTED_FPS + ) + ) + normalized_conditions = _validate_conditions( + conditions, + profile=profile, + frame_count=requested_frame_count, + ) + if profile.task == MINIMAX_H3_TASK_FL2VA: + _validate_fl2va_conditions(normalized_conditions) + # ref2va accepts ordered material streams containing any mix of + # image/audio/video/video_audio references. Type admission is handled by + # the task profile; temporal ambiguity is validated later when target + # duration is omitted. + if not profile.video_reference_supported: + for index, cond in enumerate(normalized_conditions): + if cond["type"] in ("video", "video_audio"): + raise ValueError( + f"conditions[{index}]: video references are not supported " + f"in v1 for task {profile.task!r} (image/audio only)" + ) + if normalized_target.get("duration_seconds") is None: + # Only reachable for duration_from_audio_reference profiles. + duration_sources = [ + cond + for cond in normalized_conditions + if cond["type"] in ("audio", "video", "video_audio") + ] + if not duration_sources: + raise ValueError( + "target.duration_seconds is required, or exactly one " + "audio reference to derive duration from (including " + f"video/video_audio soundtracks; task {profile.task!r})" + ) + if len(duration_sources) > 1: + raise ValueError( + "target.duration_seconds is required when multiple " + "audio-bearing references are provided" + ) + + canonical: dict[str, Any] = { + "schema": MINIMAX_H3_REQUEST_SCHEMA, + "task": task_name, + "prompt": prompt_text, + "conditions": normalized_conditions, + "target": normalized_target, + } + normalized_flow_shift = _optional_positive_finite_float(flow_shift, "flow_shift") + normalized_audio_flow_shift = _optional_positive_finite_float( + audio_flow_shift, "audio_flow_shift" + ) + if normalized_flow_shift is not None: + canonical["flow_shift"] = normalized_flow_shift + if normalized_audio_flow_shift is not None: + canonical["audio_flow_shift"] = normalized_audio_flow_shift + if seed is not None: + normalized_seed = _require_int(seed, "seed") + if normalized_seed < 0: + raise ValueError(f"seed must be non-negative, got {normalized_seed}") + if normalized_seed > MINIMAX_H3_MAX_SIGNED_SEED: + raise ValueError( + f"seed must not exceed the signed int64 maximum, got {normalized_seed}" + ) + canonical["seed"] = normalized_seed + return canonical + + +__all__ = [ + "MINIMAX_H3_REQUEST_SCHEMA", + "MINIMAX_H3_MAX_SIGNED_SEED", + "MINIMAX_H3_SUPPORTED_FPS", + "minimax_h3_validate_canonical_request", +] diff --git a/throughput/sglang-lora/compat/patched-0.5.18/resolved_plan.py b/throughput/sglang-lora/compat/patched-0.5.18/resolved_plan.py new file mode 100644 index 0000000..dad69e4 --- /dev/null +++ b/throughput/sglang-lora/compat/patched-0.5.18/resolved_plan.py @@ -0,0 +1,481 @@ +# SPDX-License-Identifier: Apache-2.0 +"""MiniMax H3 ResolvedPlan: the data-only per-request execution plan. + +`minimax_h3_resolve_plan` turns a validated canonical request (see +request_validation.py) into the data-only plan consumed by stages 1-8. +Stages never branch on task names; skips must be explicit in the plan. + +Scope notes (adapt_shape_v1): +- all target and material-derived ratios use the single adaptive spatial + resolver exported by this module. It starts from a 768px nominal short edge, + applies the 768x1344 soft area cap, then rounds both axes independently to + the nearest 32px grid. +- ``auto`` uses the task profile: t2va/ref2va resolve to the 16:9 policy + default, while fl2va defers geometry until material probe facts are + available. Consumers must fail fast if required evidence is missing. +- per-modality request overrides and task defaults are retained separately so + the timestep stage can apply request > model config > task default priority. +""" + +from __future__ import annotations + +import math +from collections.abc import Mapping +from typing import Any + +import msgspec + +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.constants import ( + MINIMAX_H3_SUPPORTED_FPS, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.task_profiles import ( + MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES, + minimax_h3_task_profile, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.time_request import ( + minimax_h3_align_frame_count, + minimax_h3_audio_latent_t, + minimax_h3_video_latent_t, +) + +MINIMAX_H3_SHAPE_POLICY_VERSION = "adapt_shape_v1" +MINIMAX_H3_BASE_SHORT_EDGE = 768 +MINIMAX_H3_MAX_PIXELS = MINIMAX_H3_BASE_SHORT_EDGE * 1344 +MINIMAX_H3_CANVAS_MULTIPLE = 32 +MINIMAX_H3_MIN_ASPECT_RATIO = 1.0 / 4.0 +MINIMAX_H3_MAX_ASPECT_RATIO = 4.0 +# Match the exact canvases used by the existing Base benchmark. Keep the +# compatibility scope deliberately limited to 16:9 benchmark requests. +MINIMAX_H3_BENCHMARK_16_9_CANVASES = { + 480: (864, 480), + 720: (1280, 736), + 1080: (1920, 1088), +} +MINIMAX_H3_SUPPORTED_SHORT_EDGES = frozenset( + {MINIMAX_H3_BASE_SHORT_EDGE, *MINIMAX_H3_BENCHMARK_16_9_CANVASES} +) + + +class MiniMaxH3MaterialPlanItem(msgspec.Struct, frozen=True): + condition_index: int + role: str + condition_type: str + uri: str + material_chain: str + # Request-level semantic frame index. -1 remains the last-frame sentinel. + frame_index: int | None = None + # Concrete pixel-frame index after target 17n+5 alignment. + resolved_frame_index: int | None = None + # Per-reference seek applied identically to the visual and audio streams. + start_time_seconds: float = 0.0 + + +class MiniMaxH3ResolvedPlan(msgspec.Struct, frozen=True): + task: str + prompt: str + seed: int | None + materials: tuple[MiniMaxH3MaterialPlanItem, ...] + encoders: dict + branches: tuple[dict, ...] + default_flow_shift: float + default_audio_flow_shift: float + flow_shift: float | None + audio_flow_shift: float | None + shape: dict + condition_mask: dict + + +def _parse_aspect_ratio(value: str) -> tuple[int, int]: + parts = value.split(":") + if len(parts) != 2: + raise ValueError(f"target.aspect_ratio must be 'W:H' or 'auto', got {value!r}") + try: + w, h = int(parts[0]), int(parts[1]) + except ValueError as exc: + raise ValueError( + f"target.aspect_ratio must be integer 'W:H', got {value!r}" + ) from exc + if w <= 0 or h <= 0: + raise ValueError( + f"target.aspect_ratio components must be positive, got {value!r}" + ) + return w, h + + +def _nearest_multiple(value: float, multiple: int) -> int: + return max(multiple, int(round(float(value) / multiple)) * multiple) + + +def _validate_base_short_edge(value: Any) -> int: + try: + short_edge = int(value) + except (TypeError, ValueError) as exc: + raise ValueError( + "target.short_edge must be one of 480, 720, 768, or 1080" + ) from exc + if short_edge not in MINIMAX_H3_SUPPORTED_SHORT_EDGES or value != short_edge: + raise ValueError( + "target.short_edge must be one of 480, 720, 768, or 1080 for " + f"this MiniMax H3 benchmark deployment, got {value!r}" + ) + return short_edge + + +def minimax_h3_resolve_spatial_shape( + *, + width: int | float, + height: int | float, + base_short_edge: int = MINIMAX_H3_BASE_SHORT_EDGE, +) -> dict[str, Any]: + """Resolve one display ratio with the ``adapt_shape_v1`` math. + + This is the only implementation of adaptive target geometry. Callers may + pass an explicit aspect-ratio pair or probed display dimensions; only the + ratio is significant. The supported ratio range is inclusive 1:4 to 4:1. + The returned dimensions are always 32px aligned; nearest-grid rounding may + leave the final area slightly above the pre-round soft pixel budget. + """ + base_short_edge = _validate_base_short_edge(base_short_edge) + try: + source_width = float(width) + source_height = float(height) + except (TypeError, ValueError) as exc: + raise ValueError( + "shape width and height must be positive finite numbers" + ) from exc + if ( + not math.isfinite(source_width) + or not math.isfinite(source_height) + or source_width <= 0.0 + or source_height <= 0.0 + ): + raise ValueError("shape width and height must be positive finite numbers") + + ratio = source_width / source_height + if not math.isfinite(ratio) or ratio <= 0.0: + raise ValueError("shape ratio must be a positive finite number") + if not MINIMAX_H3_MIN_ASPECT_RATIO <= ratio <= MINIMAX_H3_MAX_ASPECT_RATIO: + raise ValueError( + "adapt_shape_v1 ratio must be within the inclusive range " + f"1:4 to 4:1, got {source_width:g}:{source_height:g}" + ) + + benchmark_canvas = MINIMAX_H3_BENCHMARK_16_9_CANVASES.get(base_short_edge) + if benchmark_canvas is not None: + if not math.isclose(ratio, 16.0 / 9.0, rel_tol=0.0, abs_tol=1e-12): + raise ValueError( + "MiniMax H3 benchmark short edges 480, 720, and 1080 are " + "only enabled for aspect_ratio='16:9'" + ) + resolved_width, resolved_height = benchmark_canvas + return { + "geometry": "resolved_v2", + "shape_policy_version": MINIMAX_H3_SHAPE_POLICY_VERSION, + "base_short_edge": base_short_edge, + "effective_short_edge": min(resolved_width, resolved_height), + "size_mode": "benchmark_compat", + "max_pixels": resolved_width * resolved_height, + "multiple": MINIMAX_H3_CANVAS_MULTIPLE, + "rounding": "vllm_benchmark_canvas", + "width": resolved_width, + "height": resolved_height, + } + + if ratio >= 1.0: + nominal_width = float(base_short_edge) * ratio + nominal_height = float(base_short_edge) + else: + nominal_width = float(base_short_edge) + nominal_height = float(base_short_edge) / ratio + nominal_area = nominal_width * nominal_height + if nominal_area > MINIMAX_H3_MAX_PIXELS: + size_mode = "area" + scale = math.sqrt(float(MINIMAX_H3_MAX_PIXELS) / nominal_area) + nominal_width *= scale + nominal_height *= scale + else: + size_mode = "short_edge" + + resolved_width = _nearest_multiple(nominal_width, MINIMAX_H3_CANVAS_MULTIPLE) + resolved_height = _nearest_multiple(nominal_height, MINIMAX_H3_CANVAS_MULTIPLE) + + return { + "geometry": "resolved_v2", + "shape_policy_version": MINIMAX_H3_SHAPE_POLICY_VERSION, + "base_short_edge": base_short_edge, + "effective_short_edge": min(resolved_width, resolved_height), + "size_mode": size_mode, + "max_pixels": MINIMAX_H3_MAX_PIXELS, + "multiple": MINIMAX_H3_CANVAS_MULTIPLE, + "rounding": "nearest", + "width": resolved_width, + "height": resolved_height, + } + + +def _resolve_shape( + target: Mapping[str, Any], + *, + geometry_source: str, + auto_aspect_ratio: str | None = None, + auto_geometry_source: str | None = None, +) -> dict[str, Any]: + fps = MINIMAX_H3_SUPPORTED_FPS + if "duration_seconds" not in target: + # ref2va duration_from_audio_reference: temporal shape resolves at + # material time from the reference audio probe. Validation + # guarantees an audio condition exists. + shape: dict[str, Any] = { + "fps": fps, + "temporal": "deferred_from_audio_reference", + "geometry_source": geometry_source, + } + return _resolve_spatial( + shape, + target, + auto_aspect_ratio=auto_aspect_ratio, + auto_geometry_source=auto_geometry_source, + ) + frame_count = minimax_h3_align_frame_count( + int(round(float(target["duration_seconds"]) * fps)) + ) + duration_seconds = frame_count / fps + shape = { + "fps": fps, + "frame_count": frame_count, + "video_latent_t": minimax_h3_video_latent_t(frame_count), + "audio_latent_t": minimax_h3_audio_latent_t(duration_seconds), + "geometry_source": geometry_source, + } + return _resolve_spatial( + shape, + target, + auto_aspect_ratio=auto_aspect_ratio, + auto_geometry_source=auto_geometry_source, + ) + + +def _resolve_spatial( + shape: dict[str, Any], + target: Mapping[str, Any], + *, + auto_aspect_ratio: str | None, + auto_geometry_source: str | None, +) -> dict[str, Any]: + aspect_ratio = str(target["aspect_ratio"]) + base_short_edge = _validate_base_short_edge(target.get("short_edge")) + if aspect_ratio == "auto": + if auto_aspect_ratio is None: + # Deferred: canvas comes from material/model geometry at prepare time. + shape["geometry"] = "deferred" + shape["geometry_source"] = auto_geometry_source or shape["geometry_source"] + shape["shape_policy_version"] = MINIMAX_H3_SHAPE_POLICY_VERSION + shape["base_short_edge"] = base_short_edge + shape["size_mode"] = "deferred" + return shape + aspect_ratio = auto_aspect_ratio + shape["geometry_source"] = auto_geometry_source or "policy_default" + ar_w, ar_h = _parse_aspect_ratio(aspect_ratio) + shape.update( + minimax_h3_resolve_spatial_shape( + width=ar_w, + height=ar_h, + base_short_edge=base_short_edge, + ) + ) + return shape + + +def minimax_h3_resolve_plan(canonical: Mapping[str, Any]) -> MiniMaxH3ResolvedPlan: + """Canonical request (already validated) -> ResolvedPlan.""" + if not isinstance(canonical, Mapping): + raise ValueError("canonical request must be a mapping") + allowed_keys = { + "schema", + "task", + "prompt", + "conditions", + "target", + "seed", + "flow_shift", + "audio_flow_shift", + } + unknown = set(canonical) - allowed_keys + if unknown: + raise ValueError(f"canonical request has unknown fields: {sorted(unknown)}") + for key in ("schema", "task", "prompt", "conditions", "target"): + if key not in canonical: + raise ValueError(f"canonical request missing {key!r}") + profile = minimax_h3_task_profile(str(canonical["task"])) + if profile.task == "fl2va": + conditions = canonical["conditions"] + signatures = ( + [ + ( + condition.get("type"), + condition.get("role"), + condition.get("frame_index"), + ) + for condition in conditions + ] + if isinstance(conditions, (list, tuple)) + and all(isinstance(condition, Mapping) for condition in conditions) + else [] + ) + frame_signature = tuple(signature[2] for signature in signatures) + if ( + not signatures + or any(signature[:2] != ("image", "keyframe") for signature in signatures) + or frame_signature not in MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES + ): + raise ValueError( + "fl2va ResolvedPlan requires one or two ordered image/keyframe " + "conditions with frame_index [0], [-1], or [0, -1], got " + f"{signatures!r}" + ) + shape = _resolve_shape( + canonical["target"], + geometry_source=profile.geometry_source, + auto_aspect_ratio=profile.auto_aspect_ratio, + auto_geometry_source=profile.auto_geometry_source, + ) + + materials: list[MiniMaxH3MaterialPlanItem] = [] + visual_encode: list[int] = [] + audio_encode: list[int] = [] + keyframe_semantic_indices: list[int] = [] + keyframe_pixel_indices: list[int] = [] + seen_keyframe_pixel_indices: dict[int, int] = {} + for index, cond in enumerate(canonical["conditions"]): + rule = profile.rule_for( + role=str(cond["role"]), condition_type=str(cond["type"]) + ) + frame_index = cond.get("frame_index") + resolved_frame_index = None + if rule.requires_frame_index: + if frame_index is None: + raise ValueError(f"conditions[{index}].frame_index is required") + semantic_frame_index = int(frame_index) + frame_count = int(shape["frame_count"]) + if semantic_frame_index == -1: + resolved_frame_index = frame_count - 1 + elif 0 <= semantic_frame_index < frame_count: + resolved_frame_index = semantic_frame_index + else: + raise ValueError( + f"conditions[{index}].frame_index must be -1 or in " + f"[0, {frame_count}) after 17n+5 frame alignment, got " + f"{semantic_frame_index}" + ) + previous = seen_keyframe_pixel_indices.get(resolved_frame_index) + if previous is not None: + raise ValueError( + f"conditions[{index}].frame_index resolves to " + f"{resolved_frame_index}, already bound by " + f"conditions[{previous}]" + ) + seen_keyframe_pixel_indices[resolved_frame_index] = index + keyframe_semantic_indices.append(semantic_frame_index) + keyframe_pixel_indices.append(resolved_frame_index) + materials.append( + MiniMaxH3MaterialPlanItem( + condition_index=index, + role=str(cond["role"]), + condition_type=str(cond["type"]), + uri=str(cond["uri"]), + material_chain=rule.material_chain, + frame_index=frame_index, + resolved_frame_index=resolved_frame_index, + start_time_seconds=float(cond.get("start_time_seconds", 0.0)), + ) + ) + if rule.visual_tokenizer_encode: + visual_encode.append(index) + if rule.audio_tokenizer_encode: + audio_encode.append(index) + + encoders = { + "qwen": { + "prompt": canonical["prompt"], + "ordered_condition_indices": list(range(len(canonical["conditions"]))), + }, + "visual": visual_encode, + "audio": audio_encode, + } + + condition_mask: dict[str, Any] = {} + if keyframe_pixel_indices: + condition_mask = { + # Both arrays are request-ordered. Semantic indices feed Qwen and + # the RoPE rule; resolved + # indices are concrete output frames. + "semantic_frame_indices": keyframe_semantic_indices, + "pixel_frame_indices": keyframe_pixel_indices, + } + + return MiniMaxH3ResolvedPlan( + task=profile.task, + prompt=str(canonical["prompt"]), + seed=canonical.get("seed"), + materials=tuple(materials), + encoders=encoders, + branches=profile.branches, + default_flow_shift=float(profile.default_flow_shift), + default_audio_flow_shift=float(profile.default_audio_flow_shift), + flow_shift=( + float(canonical["flow_shift"]) + if canonical.get("flow_shift") is not None + else None + ), + audio_flow_shift=( + float(canonical["audio_flow_shift"]) + if canonical.get("audio_flow_shift") is not None + else None + ), + shape=shape, + condition_mask=condition_mask, + ) + + +MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY = "minimax_h3_canonical_request" +MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY = "minimax_h3_resolved_plan" + + +def minimax_h3_plan_from_batch(batch: Any) -> MiniMaxH3ResolvedPlan | None: + """Resolve (once) and cache the plan for a Req carrying a canonical request. + + Returns None when the request predates the canonical schema (such + requests keep their existing behavior). + """ + extra = getattr(batch, "extra", None) + if not isinstance(extra, Mapping): + return None + cached = extra.get(MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY) + if cached is not None: + if not isinstance(cached, MiniMaxH3ResolvedPlan): + raise ValueError( + f"batch.extra[{MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY!r}] must be a " + "MiniMaxH3ResolvedPlan" + ) + canonical = extra.get(MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY) + if cached is not None: + return cached + if canonical is None: + return None + plan = minimax_h3_resolve_plan(canonical) + if isinstance(extra, dict): + extra[MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY] = plan + return plan + + +__all__ = [ + "MINIMAX_H3_BASE_SHORT_EDGE", + "MINIMAX_H3_CANVAS_MULTIPLE", + "MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY", + "MINIMAX_H3_MAX_PIXELS", + "MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY", + "MiniMaxH3ResolvedPlan", + "minimax_h3_plan_from_batch", + "minimax_h3_resolve_plan", + "minimax_h3_resolve_spatial_shape", +] diff --git a/throughput/sglang-lora/compat/upstream-0.5.18/request_validation.py b/throughput/sglang-lora/compat/upstream-0.5.18/request_validation.py new file mode 100644 index 0000000..84a0597 --- /dev/null +++ b/throughput/sglang-lora/compat/upstream-0.5.18/request_validation.py @@ -0,0 +1,361 @@ +# SPDX-License-Identifier: Apache-2.0 +"""MiniMax H3 canonical request validation. + +Entry fail-fast for `minimax_h3.request/v1`: every violation raises ValueError +with the offending field path. Output is a normalized canonical dict (frame +indices validated but semantic -1 preserved, nothing else rewritten — prompt passes through verbatim and +conditions order is semantic, never reordered). +""" + +from __future__ import annotations + +import math +from collections.abc import Mapping, Sequence +from typing import Any + +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.constants import ( + MINIMAX_H3_MAX_DURATION_SECONDS, + MINIMAX_H3_MIN_DURATION_SECONDS, + MINIMAX_H3_SUPPORTED_FPS, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.task_profiles import ( + MINIMAX_H3_CONDITION_ROLE_KEYFRAME, + MINIMAX_H3_CONDITION_ROLE_REFERENCE, + MINIMAX_H3_FINITE_ASPECT_RATIOS, + MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES, + MINIMAX_H3_TASK_FL2VA, + MINIMAX_H3_TASK_REF2VA, + MINIMAX_H3_TASK_T2VA, + MiniMaxH3TaskProfile, + canonical_minimax_h3_task, + minimax_h3_task_profile, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.time_request import ( + minimax_h3_align_frame_count, +) + +MINIMAX_H3_REQUEST_SCHEMA = "minimax_h3.request/v1" +MINIMAX_H3_MAX_SIGNED_SEED = (1 << 63) - 1 +_ALLOWED_CONDITION_KEYS = frozenset( + {"type", "uri", "role", "frame_index", "start_time_seconds"} +) + + +def _require_str(value: Any, path: str) -> str: + if not isinstance(value, str) or value == "": + raise ValueError(f"{path} must be a non-empty string") + return value + + +def _require_int(value: Any, path: str) -> int: + if isinstance(value, bool) or not isinstance(value, int): + raise ValueError(f"{path} must be an integer") + return value + + +def _optional_positive_finite_float(value: Any, path: str) -> float | None: + if value is None: + return None + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise ValueError(f"{path} must be a number") + normalized = float(value) + if not math.isfinite(normalized) or normalized <= 0.0: + raise ValueError(f"{path} must be a positive finite number") + return normalized + + +def _optional_nonnegative_finite_float(value: Any, path: str) -> float | None: + if value is None: + return None + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise ValueError(f"{path} must be a number") + normalized = float(value) + if not math.isfinite(normalized) or normalized < 0.0: + raise ValueError(f"{path} must be a non-negative finite number") + return normalized + + +def _validate_target(target: Any, *, profile: MiniMaxH3TaskProfile) -> dict[str, Any]: + path = "target" + if not isinstance(target, Mapping): + raise ValueError(f"{path} is required and must be an object") + # The canonical target has a deliberately small projection. Transport + # compatibility keys are ignored; only these three declared values are + # validated and emitted below. + short_edge = _require_int(target.get("short_edge"), f"{path}.short_edge") + if short_edge != 768: + raise ValueError( + f"{path}.short_edge must be 768 for minimax_h3, got {short_edge}" + ) + aspect_ratio = _require_str(target.get("aspect_ratio"), f"{path}.aspect_ratio") + if profile.aspect_ratio_forced_auto and aspect_ratio != "auto": + raise ValueError( + f'{path}.aspect_ratio must be "auto" for task {profile.task!r}, ' + f"got {aspect_ratio!r}" + ) + has_duration = target.get("duration_seconds") is not None + if ( + profile.task in {MINIMAX_H3_TASK_T2VA, MINIMAX_H3_TASK_REF2VA} + and aspect_ratio != "auto" + and aspect_ratio not in MINIMAX_H3_FINITE_ASPECT_RATIOS + ): + raise ValueError( + f"{path}.aspect_ratio for task {profile.task!r} must be 'auto' or " + f"one of {list(MINIMAX_H3_FINITE_ASPECT_RATIOS)!r}, got " + f"{aspect_ratio!r}" + ) + if not has_duration: + if not profile.duration_from_audio_reference: + raise ValueError(f"{path}.duration_seconds is required") + # ref2va: duration may derive from a reference audio; the + # audio-condition presence is enforced after conditions validate. + out: dict[str, Any] = { + "short_edge": short_edge, + "aspect_ratio": aspect_ratio, + } + if has_duration: + duration = target["duration_seconds"] + if isinstance(duration, bool) or not isinstance(duration, (int, float)): + raise ValueError(f"{path}.duration_seconds must be a number") + if duration <= 0: + raise ValueError(f"{path}.duration_seconds must be positive") + if not ( + MINIMAX_H3_MIN_DURATION_SECONDS + <= float(duration) + <= MINIMAX_H3_MAX_DURATION_SECONDS + ): + raise ValueError( + f"{path}.duration_seconds must be in " + f"[{MINIMAX_H3_MIN_DURATION_SECONDS:g}, " + f"{MINIMAX_H3_MAX_DURATION_SECONDS:g}], got {duration}" + ) + out["duration_seconds"] = float(duration) + return out + + +def _validate_conditions( + conditions: Any, + *, + profile: MiniMaxH3TaskProfile, + frame_count: int | None, +) -> list[dict[str, Any]]: + path = "conditions" + if conditions is None: + conditions = [] + if not isinstance(conditions, Sequence) or isinstance(conditions, (str, bytes)): + raise ValueError(f"{path} must be a list") + + if not profile.conditions_required: + if len(conditions) > 0: + raise ValueError( + f"{path} must be empty for task {profile.task!r} " + f"(got {len(conditions)} entries)" + ) + return [] + if len(conditions) == 0: + raise ValueError( + f"{path} requires at least one entry for task {profile.task!r}" + ) + if ( + profile.min_condition_count is not None + and len(conditions) < profile.min_condition_count + ): + raise ValueError( + f"{path} requires at least {profile.min_condition_count} entries " + f"for task {profile.task!r}, got {len(conditions)}" + ) + if ( + profile.max_condition_count is not None + and len(conditions) > profile.max_condition_count + ): + raise ValueError( + f"{path} allows at most {profile.max_condition_count} entries " + f"for task {profile.task!r}, got {len(conditions)}" + ) + + aligned_frame_count = ( + minimax_h3_align_frame_count(frame_count) if frame_count is not None else None + ) + normalized: list[dict[str, Any]] = [] + seen_frame_indices: dict[int, int] = {} + for index, cond in enumerate(conditions): + cpath = f"{path}[{index}]" + if not isinstance(cond, Mapping): + raise ValueError(f"{cpath} must be an object") + unknown = set(cond) - _ALLOWED_CONDITION_KEYS + if unknown: + raise ValueError(f"{cpath} has unknown fields: {sorted(unknown)}") + role = _require_str(cond.get("role"), f"{cpath}.role") + if role not in ( + MINIMAX_H3_CONDITION_ROLE_KEYFRAME, + MINIMAX_H3_CONDITION_ROLE_REFERENCE, + ): + raise ValueError( + f"{cpath}.role must be keyframe or reference, " f"got {role!r}" + ) + cond_type = _require_str(cond.get("type"), f"{cpath}.type") + try: + rule = profile.rule_for(role=role, condition_type=cond_type) + except ValueError as exc: + raise ValueError(f"{cpath}: {exc}") from exc + uri = _require_str(cond.get("uri"), f"{cpath}.uri") + + entry: dict[str, Any] = {"type": cond_type, "uri": uri, "role": role} + if rule.requires_frame_index: + frame_index = _require_int(cond.get("frame_index"), f"{cpath}.frame_index") + if aligned_frame_count is None: + raise ValueError( + f"{cpath}.frame_index requires a resolved target duration" + ) + if frame_index == -1: + resolved = aligned_frame_count - 1 + elif 0 <= frame_index < aligned_frame_count: + resolved = frame_index + else: + raise ValueError( + f"{cpath}.frame_index must be -1 or in " + f"[0, {aligned_frame_count}) after 17n+5 frame alignment, " + f"got {frame_index}" + ) + if resolved in seen_frame_indices: + raise ValueError( + f"{cpath}.frame_index resolves to {resolved}, already " + f"bound by conditions[{seen_frame_indices[resolved]}]" + ) + seen_frame_indices[resolved] = index + # Preserve the request-level semantic index. In particular, -1 is + # the canonical last-frame sentinel; the resolved pixel frame is + # carried separately by MiniMaxH3ResolvedPlan. + entry["frame_index"] = frame_index + elif cond.get("frame_index") is not None: + raise ValueError(f"{cpath}.frame_index is not allowed for role={role!r}") + start_time_seconds = _optional_nonnegative_finite_float( + cond.get("start_time_seconds"), f"{cpath}.start_time_seconds" + ) + if start_time_seconds is not None: + if cond_type not in {"video", "video_audio"}: + raise ValueError( + f"{cpath}.start_time_seconds is only allowed for video " + "or video_audio references" + ) + entry["start_time_seconds"] = start_time_seconds + normalized.append(entry) + return normalized + + +def _validate_fl2va_conditions(conditions: Sequence[Mapping[str, Any]]) -> None: + """Enforce the public FL contract after per-entry schema validation.""" + + frame_indices = tuple(condition.get("frame_index") for condition in conditions) + if frame_indices not in MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES: + raise ValueError( + "conditions for task 'fl2va' must be one or two ordered " + "image/keyframe entries with frame_index [0], [-1], or [0, -1], " + f"got {list(frame_indices)!r}" + ) + + +def minimax_h3_validate_canonical_request( + *, + task: Any, + prompt: Any, + conditions: Any, + target: Any, + flow_shift: Any = None, + audio_flow_shift: Any = None, + seed: Any = None, + **_extra_kwargs: Any, +) -> dict[str, Any]: + """Validate and normalize a `minimax_h3.request/v1` canonical request. + + Returns the normalized canonical dict; raises ValueError with a field + path on any violation. Conditions order is preserved (it is semantic: + prompt ordinal labels reference it). seed=0 is a legal value. + """ + # Accept transport wrappers and compatibility kwargs at this boundary, but + # never copy them into the canonical request. + del _extra_kwargs + # Normalize the task name before profile lookup so offline callers match + # the adapter behaviour. + task_name = canonical_minimax_h3_task(_require_str(task, "task")) + profile = minimax_h3_task_profile(task_name) + prompt_text = _require_str(prompt, "prompt") + + normalized_target = _validate_target(target, profile=profile) + requested_frame_count = None + if normalized_target.get("duration_seconds") is not None: + requested_frame_count = int( + round( + float(normalized_target["duration_seconds"]) * MINIMAX_H3_SUPPORTED_FPS + ) + ) + normalized_conditions = _validate_conditions( + conditions, + profile=profile, + frame_count=requested_frame_count, + ) + if profile.task == MINIMAX_H3_TASK_FL2VA: + _validate_fl2va_conditions(normalized_conditions) + # ref2va accepts ordered material streams containing any mix of + # image/audio/video/video_audio references. Type admission is handled by + # the task profile; temporal ambiguity is validated later when target + # duration is omitted. + if not profile.video_reference_supported: + for index, cond in enumerate(normalized_conditions): + if cond["type"] in ("video", "video_audio"): + raise ValueError( + f"conditions[{index}]: video references are not supported " + f"in v1 for task {profile.task!r} (image/audio only)" + ) + if normalized_target.get("duration_seconds") is None: + # Only reachable for duration_from_audio_reference profiles. + duration_sources = [ + cond + for cond in normalized_conditions + if cond["type"] in ("audio", "video", "video_audio") + ] + if not duration_sources: + raise ValueError( + "target.duration_seconds is required, or exactly one " + "audio reference to derive duration from (including " + f"video/video_audio soundtracks; task {profile.task!r})" + ) + if len(duration_sources) > 1: + raise ValueError( + "target.duration_seconds is required when multiple " + "audio-bearing references are provided" + ) + + canonical: dict[str, Any] = { + "schema": MINIMAX_H3_REQUEST_SCHEMA, + "task": task_name, + "prompt": prompt_text, + "conditions": normalized_conditions, + "target": normalized_target, + } + normalized_flow_shift = _optional_positive_finite_float(flow_shift, "flow_shift") + normalized_audio_flow_shift = _optional_positive_finite_float( + audio_flow_shift, "audio_flow_shift" + ) + if normalized_flow_shift is not None: + canonical["flow_shift"] = normalized_flow_shift + if normalized_audio_flow_shift is not None: + canonical["audio_flow_shift"] = normalized_audio_flow_shift + if seed is not None: + normalized_seed = _require_int(seed, "seed") + if normalized_seed < 0: + raise ValueError(f"seed must be non-negative, got {normalized_seed}") + if normalized_seed > MINIMAX_H3_MAX_SIGNED_SEED: + raise ValueError( + f"seed must not exceed the signed int64 maximum, got {normalized_seed}" + ) + canonical["seed"] = normalized_seed + return canonical + + +__all__ = [ + "MINIMAX_H3_REQUEST_SCHEMA", + "MINIMAX_H3_MAX_SIGNED_SEED", + "MINIMAX_H3_SUPPORTED_FPS", + "minimax_h3_validate_canonical_request", +] diff --git a/throughput/sglang-lora/compat/upstream-0.5.18/resolved_plan.py b/throughput/sglang-lora/compat/upstream-0.5.18/resolved_plan.py new file mode 100644 index 0000000..e77ec94 --- /dev/null +++ b/throughput/sglang-lora/compat/upstream-0.5.18/resolved_plan.py @@ -0,0 +1,447 @@ +# SPDX-License-Identifier: Apache-2.0 +"""MiniMax H3 ResolvedPlan: the data-only per-request execution plan. + +`minimax_h3_resolve_plan` turns a validated canonical request (see +request_validation.py) into the data-only plan consumed by stages 1-8. +Stages never branch on task names; skips must be explicit in the plan. + +Scope notes (adapt_shape_v1): +- all target and material-derived ratios use the single adaptive spatial + resolver exported by this module. It starts from a 768px nominal short edge, + applies the 768x1344 soft area cap, then rounds both axes independently to + the nearest 32px grid. +- ``auto`` uses the task profile: t2va/ref2va resolve to the 16:9 policy + default, while fl2va defers geometry until material probe facts are + available. Consumers must fail fast if required evidence is missing. +- per-modality request overrides and task defaults are retained separately so + the timestep stage can apply request > model config > task default priority. +""" + +from __future__ import annotations + +import math +from collections.abc import Mapping +from typing import Any + +import msgspec + +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.constants import ( + MINIMAX_H3_SUPPORTED_FPS, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.task_profiles import ( + MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES, + minimax_h3_task_profile, +) +from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.time_request import ( + minimax_h3_align_frame_count, + minimax_h3_audio_latent_t, + minimax_h3_video_latent_t, +) + +MINIMAX_H3_SHAPE_POLICY_VERSION = "adapt_shape_v1" +MINIMAX_H3_BASE_SHORT_EDGE = 768 +MINIMAX_H3_MAX_PIXELS = MINIMAX_H3_BASE_SHORT_EDGE * 1344 +MINIMAX_H3_CANVAS_MULTIPLE = 32 +MINIMAX_H3_MIN_ASPECT_RATIO = 1.0 / 4.0 +MINIMAX_H3_MAX_ASPECT_RATIO = 4.0 + + +class MiniMaxH3MaterialPlanItem(msgspec.Struct, frozen=True): + condition_index: int + role: str + condition_type: str + uri: str + material_chain: str + # Request-level semantic frame index. -1 remains the last-frame sentinel. + frame_index: int | None = None + # Concrete pixel-frame index after target 17n+5 alignment. + resolved_frame_index: int | None = None + # Per-reference seek applied identically to the visual and audio streams. + start_time_seconds: float = 0.0 + + +class MiniMaxH3ResolvedPlan(msgspec.Struct, frozen=True): + task: str + prompt: str + seed: int | None + materials: tuple[MiniMaxH3MaterialPlanItem, ...] + encoders: dict + branches: tuple[dict, ...] + default_flow_shift: float + default_audio_flow_shift: float + flow_shift: float | None + audio_flow_shift: float | None + shape: dict + condition_mask: dict + + +def _parse_aspect_ratio(value: str) -> tuple[int, int]: + parts = value.split(":") + if len(parts) != 2: + raise ValueError(f"target.aspect_ratio must be 'W:H' or 'auto', got {value!r}") + try: + w, h = int(parts[0]), int(parts[1]) + except ValueError as exc: + raise ValueError( + f"target.aspect_ratio must be integer 'W:H', got {value!r}" + ) from exc + if w <= 0 or h <= 0: + raise ValueError( + f"target.aspect_ratio components must be positive, got {value!r}" + ) + return w, h + + +def _nearest_multiple(value: float, multiple: int) -> int: + return max(multiple, int(round(float(value) / multiple)) * multiple) + + +def _validate_base_short_edge(value: Any) -> int: + try: + short_edge = int(value) + except (TypeError, ValueError) as exc: + raise ValueError("target.short_edge must be 768") from exc + if short_edge != MINIMAX_H3_BASE_SHORT_EDGE or value != short_edge: + raise ValueError( + f"target.short_edge must be 768 for MiniMax H3 shape policy v2, got {value!r}" + ) + return short_edge + + +def minimax_h3_resolve_spatial_shape( + *, + width: int | float, + height: int | float, + base_short_edge: int = MINIMAX_H3_BASE_SHORT_EDGE, +) -> dict[str, Any]: + """Resolve one display ratio with the ``adapt_shape_v1`` math. + + This is the only implementation of adaptive target geometry. Callers may + pass an explicit aspect-ratio pair or probed display dimensions; only the + ratio is significant. The supported ratio range is inclusive 1:4 to 4:1. + The returned dimensions are always 32px aligned; nearest-grid rounding may + leave the final area slightly above the pre-round soft pixel budget. + """ + base_short_edge = _validate_base_short_edge(base_short_edge) + try: + source_width = float(width) + source_height = float(height) + except (TypeError, ValueError) as exc: + raise ValueError( + "shape width and height must be positive finite numbers" + ) from exc + if ( + not math.isfinite(source_width) + or not math.isfinite(source_height) + or source_width <= 0.0 + or source_height <= 0.0 + ): + raise ValueError("shape width and height must be positive finite numbers") + + ratio = source_width / source_height + if not math.isfinite(ratio) or ratio <= 0.0: + raise ValueError("shape ratio must be a positive finite number") + if not MINIMAX_H3_MIN_ASPECT_RATIO <= ratio <= MINIMAX_H3_MAX_ASPECT_RATIO: + raise ValueError( + "adapt_shape_v1 ratio must be within the inclusive range " + f"1:4 to 4:1, got {source_width:g}:{source_height:g}" + ) + + if ratio >= 1.0: + nominal_width = float(base_short_edge) * ratio + nominal_height = float(base_short_edge) + else: + nominal_width = float(base_short_edge) + nominal_height = float(base_short_edge) / ratio + nominal_area = nominal_width * nominal_height + if nominal_area > MINIMAX_H3_MAX_PIXELS: + size_mode = "area" + scale = math.sqrt(float(MINIMAX_H3_MAX_PIXELS) / nominal_area) + nominal_width *= scale + nominal_height *= scale + else: + size_mode = "short_edge" + + resolved_width = _nearest_multiple(nominal_width, MINIMAX_H3_CANVAS_MULTIPLE) + resolved_height = _nearest_multiple(nominal_height, MINIMAX_H3_CANVAS_MULTIPLE) + + return { + "geometry": "resolved_v2", + "shape_policy_version": MINIMAX_H3_SHAPE_POLICY_VERSION, + "base_short_edge": base_short_edge, + "effective_short_edge": min(resolved_width, resolved_height), + "size_mode": size_mode, + "max_pixels": MINIMAX_H3_MAX_PIXELS, + "multiple": MINIMAX_H3_CANVAS_MULTIPLE, + "rounding": "nearest", + "width": resolved_width, + "height": resolved_height, + } + + +def _resolve_shape( + target: Mapping[str, Any], + *, + geometry_source: str, + auto_aspect_ratio: str | None = None, + auto_geometry_source: str | None = None, +) -> dict[str, Any]: + fps = MINIMAX_H3_SUPPORTED_FPS + if "duration_seconds" not in target: + # ref2va duration_from_audio_reference: temporal shape resolves at + # material time from the reference audio probe. Validation + # guarantees an audio condition exists. + shape: dict[str, Any] = { + "fps": fps, + "temporal": "deferred_from_audio_reference", + "geometry_source": geometry_source, + } + return _resolve_spatial( + shape, + target, + auto_aspect_ratio=auto_aspect_ratio, + auto_geometry_source=auto_geometry_source, + ) + frame_count = minimax_h3_align_frame_count( + int(round(float(target["duration_seconds"]) * fps)) + ) + duration_seconds = frame_count / fps + shape = { + "fps": fps, + "frame_count": frame_count, + "video_latent_t": minimax_h3_video_latent_t(frame_count), + "audio_latent_t": minimax_h3_audio_latent_t(duration_seconds), + "geometry_source": geometry_source, + } + return _resolve_spatial( + shape, + target, + auto_aspect_ratio=auto_aspect_ratio, + auto_geometry_source=auto_geometry_source, + ) + + +def _resolve_spatial( + shape: dict[str, Any], + target: Mapping[str, Any], + *, + auto_aspect_ratio: str | None, + auto_geometry_source: str | None, +) -> dict[str, Any]: + aspect_ratio = str(target["aspect_ratio"]) + base_short_edge = _validate_base_short_edge(target.get("short_edge")) + if aspect_ratio == "auto": + if auto_aspect_ratio is None: + # Deferred: canvas comes from material/model geometry at prepare time. + shape["geometry"] = "deferred" + shape["geometry_source"] = auto_geometry_source or shape["geometry_source"] + shape["shape_policy_version"] = MINIMAX_H3_SHAPE_POLICY_VERSION + shape["base_short_edge"] = base_short_edge + shape["size_mode"] = "deferred" + return shape + aspect_ratio = auto_aspect_ratio + shape["geometry_source"] = auto_geometry_source or "policy_default" + ar_w, ar_h = _parse_aspect_ratio(aspect_ratio) + shape.update( + minimax_h3_resolve_spatial_shape( + width=ar_w, + height=ar_h, + base_short_edge=base_short_edge, + ) + ) + return shape + + +def minimax_h3_resolve_plan(canonical: Mapping[str, Any]) -> MiniMaxH3ResolvedPlan: + """Canonical request (already validated) -> ResolvedPlan.""" + if not isinstance(canonical, Mapping): + raise ValueError("canonical request must be a mapping") + allowed_keys = { + "schema", + "task", + "prompt", + "conditions", + "target", + "seed", + "flow_shift", + "audio_flow_shift", + } + unknown = set(canonical) - allowed_keys + if unknown: + raise ValueError(f"canonical request has unknown fields: {sorted(unknown)}") + for key in ("schema", "task", "prompt", "conditions", "target"): + if key not in canonical: + raise ValueError(f"canonical request missing {key!r}") + profile = minimax_h3_task_profile(str(canonical["task"])) + if profile.task == "fl2va": + conditions = canonical["conditions"] + signatures = ( + [ + ( + condition.get("type"), + condition.get("role"), + condition.get("frame_index"), + ) + for condition in conditions + ] + if isinstance(conditions, (list, tuple)) + and all(isinstance(condition, Mapping) for condition in conditions) + else [] + ) + frame_signature = tuple(signature[2] for signature in signatures) + if ( + not signatures + or any(signature[:2] != ("image", "keyframe") for signature in signatures) + or frame_signature not in MINIMAX_H3_FL2VA_KEYFRAME_SIGNATURES + ): + raise ValueError( + "fl2va ResolvedPlan requires one or two ordered image/keyframe " + "conditions with frame_index [0], [-1], or [0, -1], got " + f"{signatures!r}" + ) + shape = _resolve_shape( + canonical["target"], + geometry_source=profile.geometry_source, + auto_aspect_ratio=profile.auto_aspect_ratio, + auto_geometry_source=profile.auto_geometry_source, + ) + + materials: list[MiniMaxH3MaterialPlanItem] = [] + visual_encode: list[int] = [] + audio_encode: list[int] = [] + keyframe_semantic_indices: list[int] = [] + keyframe_pixel_indices: list[int] = [] + seen_keyframe_pixel_indices: dict[int, int] = {} + for index, cond in enumerate(canonical["conditions"]): + rule = profile.rule_for( + role=str(cond["role"]), condition_type=str(cond["type"]) + ) + frame_index = cond.get("frame_index") + resolved_frame_index = None + if rule.requires_frame_index: + if frame_index is None: + raise ValueError(f"conditions[{index}].frame_index is required") + semantic_frame_index = int(frame_index) + frame_count = int(shape["frame_count"]) + if semantic_frame_index == -1: + resolved_frame_index = frame_count - 1 + elif 0 <= semantic_frame_index < frame_count: + resolved_frame_index = semantic_frame_index + else: + raise ValueError( + f"conditions[{index}].frame_index must be -1 or in " + f"[0, {frame_count}) after 17n+5 frame alignment, got " + f"{semantic_frame_index}" + ) + previous = seen_keyframe_pixel_indices.get(resolved_frame_index) + if previous is not None: + raise ValueError( + f"conditions[{index}].frame_index resolves to " + f"{resolved_frame_index}, already bound by " + f"conditions[{previous}]" + ) + seen_keyframe_pixel_indices[resolved_frame_index] = index + keyframe_semantic_indices.append(semantic_frame_index) + keyframe_pixel_indices.append(resolved_frame_index) + materials.append( + MiniMaxH3MaterialPlanItem( + condition_index=index, + role=str(cond["role"]), + condition_type=str(cond["type"]), + uri=str(cond["uri"]), + material_chain=rule.material_chain, + frame_index=frame_index, + resolved_frame_index=resolved_frame_index, + start_time_seconds=float(cond.get("start_time_seconds", 0.0)), + ) + ) + if rule.visual_tokenizer_encode: + visual_encode.append(index) + if rule.audio_tokenizer_encode: + audio_encode.append(index) + + encoders = { + "qwen": { + "prompt": canonical["prompt"], + "ordered_condition_indices": list(range(len(canonical["conditions"]))), + }, + "visual": visual_encode, + "audio": audio_encode, + } + + condition_mask: dict[str, Any] = {} + if keyframe_pixel_indices: + condition_mask = { + # Both arrays are request-ordered. Semantic indices feed Qwen and + # the RoPE rule; resolved + # indices are concrete output frames. + "semantic_frame_indices": keyframe_semantic_indices, + "pixel_frame_indices": keyframe_pixel_indices, + } + + return MiniMaxH3ResolvedPlan( + task=profile.task, + prompt=str(canonical["prompt"]), + seed=canonical.get("seed"), + materials=tuple(materials), + encoders=encoders, + branches=profile.branches, + default_flow_shift=float(profile.default_flow_shift), + default_audio_flow_shift=float(profile.default_audio_flow_shift), + flow_shift=( + float(canonical["flow_shift"]) + if canonical.get("flow_shift") is not None + else None + ), + audio_flow_shift=( + float(canonical["audio_flow_shift"]) + if canonical.get("audio_flow_shift") is not None + else None + ), + shape=shape, + condition_mask=condition_mask, + ) + + +MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY = "minimax_h3_canonical_request" +MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY = "minimax_h3_resolved_plan" + + +def minimax_h3_plan_from_batch(batch: Any) -> MiniMaxH3ResolvedPlan | None: + """Resolve (once) and cache the plan for a Req carrying a canonical request. + + Returns None when the request predates the canonical schema (such + requests keep their existing behavior). + """ + extra = getattr(batch, "extra", None) + if not isinstance(extra, Mapping): + return None + cached = extra.get(MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY) + if cached is not None: + if not isinstance(cached, MiniMaxH3ResolvedPlan): + raise ValueError( + f"batch.extra[{MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY!r}] must be a " + "MiniMaxH3ResolvedPlan" + ) + canonical = extra.get(MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY) + if cached is not None: + return cached + if canonical is None: + return None + plan = minimax_h3_resolve_plan(canonical) + if isinstance(extra, dict): + extra[MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY] = plan + return plan + + +__all__ = [ + "MINIMAX_H3_BASE_SHORT_EDGE", + "MINIMAX_H3_CANVAS_MULTIPLE", + "MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY", + "MINIMAX_H3_MAX_PIXELS", + "MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY", + "MiniMaxH3ResolvedPlan", + "minimax_h3_plan_from_batch", + "minimax_h3_resolve_plan", + "minimax_h3_resolve_spatial_shape", +] diff --git a/throughput/sglang-lora/inputs/uploads/warmup_image.png b/throughput/sglang-lora/inputs/uploads/warmup_image.png new file mode 100644 index 0000000..063dc98 Binary files /dev/null and b/throughput/sglang-lora/inputs/uploads/warmup_image.png differ diff --git a/throughput/sglang-lora/mixed_matrix.log b/throughput/sglang-lora/mixed_matrix.log new file mode 100644 index 0000000..f1468da --- /dev/null +++ b/throughput/sglang-lora/mixed_matrix.log @@ -0,0 +1,6 @@ +[2026-08-30 13:47:12] ===== Larry v4-600 TP=8 replicas=1 total_requests=64 grid=9 NFE=8 ===== +[2026-08-30 13:47:12] starting variant=FL2VA replica=0 GPUs=0,1,2,3,4,5,6,7 port=30010 +[2026-08-30 13:48:52] variant=FL2VA replica=0 healthy port=30010 +[2026-08-30 13:48:52] started task=fl2va client=0 port=30010 requests=32 +[2026-08-30 13:48:53] gracefully stopping 1 server(s) +[2026-08-30 13:49:09] ERROR: TP=8 task=fl2va had failed requests; inspect /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va diff --git a/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/run_config.json b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/run_config.json new file mode 100644 index 0000000..21994cd --- /dev/null +++ b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/run_config.json @@ -0,0 +1,22 @@ +{ + "framework": "sglang", + "sglang_version": "0.5.18", + "conda_env": "sglang-lora", + "tp_matrix": "8 4 2", + "tasks": "fl2va ref2va", + "resolutions": "480,720,768,1080", + "requests_per_resolution_per_task": 8, + "requests_per_task_per_tp": 32, + "total_requests_per_tp": 64, + "num_inference_steps_grid_points": 9, + "denoiser_evaluations": 8, + "base_standard_grid_points": 20, + "base_standard_denoiser_evaluations": 19, + "duration_seconds": 5.0, + "aspect_ratio": "16:9", + "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", + "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", + "lora_scale": 1.0, + "lora_merge_mode": "auto", + "ref2va_note": "experimental compatibility/throughput run; Larry v4-600 is officially validated for FL2VA" +} diff --git a/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/summary.tsv b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/summary.tsv new file mode 100644 index 0000000..b3335fb --- /dev/null +++ b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/summary.tsv @@ -0,0 +1,2 @@ +tp replicas task grid_points denoiser_evals expected recorded completed failed machine_qps latency_mean_s latency_p95_s machine_wall_s +8 1 fl2va 9 8 32 0 0 0 0.00000000 0.000000 0.000000 0.000 diff --git a/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/client_0_port30010/client.log b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/client_0_port30010/client.log new file mode 100644 index 0000000..62c5f98 --- /dev/null +++ b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/client_0_port30010/client.log @@ -0,0 +1,3 @@ +task=fl2va replica=0/1 requests=32 port=30010 +warmup 1/1: success=False latency=0.10s error=RuntimeError: submit HTTP 400: {"detail":"target.short_edge must be 768 for minimax_h3, got 480"} +warmup failed diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/model-revision.txt b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/model-revision.txt rename to throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/server.log b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/server.log new file mode 100644 index 0000000..f4c34c4 --- /dev/null +++ b/throughput/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/server.log @@ -0,0 +1,167 @@ +W0830 13:47:20.590000 997650 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:20.621000 997650 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:47:29] Applying performance_mode=speed +[08-30 13:47:29] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 8, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 8, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 8, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31000, "host": "0.0.0.0", "port": 30010, "webui": false, "webui_port": 12312, "scheduler_port": 32000, "scheduler_ports": [32000], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-mixed192-8nfe-5s-20260830-run1/tp8_replicas1/fl2va/server_0_port30010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 13:47:29] Starting server... +W0830 13:47:40.527000 997924 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.557000 997924 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.829000 997922 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.858000 997922 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.921000 997926 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.950000 997926 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:40.993000 997919 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.004000 997920 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.022000 997919 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.029000 997925 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.034000 997920 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.054000 997921 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.058000 997925 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.083000 997921 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.227000 997923 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:47:41.256000 997923 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:47:49] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32000 +[08-30 13:47:50] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 13:47:50] Initializing distributed environment with world_size=8, device=cuda:0, timeout=3600 +[08-30 13:47:50] Setting distributed timeout to 3600 seconds +[08-30 13:47:51] Found nccl from library libnccl.so.2 +[08-30 13:47:51] sglang-diffusion is using nccl==2.29.7 +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:54] CustomAllreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly. +[08-30 13:47:55] Found nccl from library libnccl.so.2 +[08-30 13:47:55] sglang-diffusion is using nccl==2.29.7 +[08-30 13:47:55] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:12.599000 945745 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:21] Applying performance_mode=speed +[08-30 12:20:21] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31000, "host": "0.0.0.0", "port": 30010, "webui": false, "webui_port": 12312, "scheduler_port": 32000, "scheduler_ports": [32000], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_0_port30010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:20:21] Starting server... +W0830 12:20:29.315000 946499 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:29.344000 946499 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:29.441000 946498 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:29.470000 946498 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:37] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32000 +[08-30 12:20:38] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:20:38] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:20:38] Setting distributed timeout to 3600 seconds +[08-30 12:20:39] Found nccl from library libnccl.so.2 +[08-30 12:20:39] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:42] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 12:20:42] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 12:20:42] Found nccl from library libnccl.so.2 +[08-30 12:20:42] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:42] No pipeline_class_name specified, using model_index.json +[08-30 12:20:43] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 12:20:43] Loading pipeline modules... +[08-30 12:20:43] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 12:20:43] Diffusers version: 0.32.2 +[08-30 12:20:43] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 12:20:43] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 12:20:43] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_0_port30010/outputs/fef0d0f3-b4c5-4f31-a78b-0b29ad31d6b6.mp4 + +[08-30 12:23:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:23:16] [InputValidationStage] started... +[08-30 12:23:16] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:23:16] [MiniMaxH3TextEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3TextEncodingStage] finished in 0.6568 seconds +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 12:23:17] INFO: 127.0.0.1:50988 - "GET /v1/videos/fef0d0f3-b4c5-4f31-a78b-0b29ad31d6b6 HTTP/1.1" 200 OK +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] finished in 0.2725 seconds +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] finished in 0.0395 seconds +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:23:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:13.354000 945815 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:22] Applying performance_mode=speed +[08-30 12:20:22] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31010, "host": "0.0.0.0", "port": 30020, "webui": false, "webui_port": 12312, "scheduler_port": 32010, "scheduler_ports": [32010], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_1_port30020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:20:22] Starting server... +W0830 12:20:29.910000 946630 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:29.939000 946630 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:29.979000 946629 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.009000 946629 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:38] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32010 +[08-30 12:20:38] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:20:38] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:20:38] Setting distributed timeout to 3600 seconds +[08-30 12:20:39] Found nccl from library libnccl.so.2 +[08-30 12:20:39] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 12:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 12:20:43] Found nccl from library libnccl.so.2 +[08-30 12:20:43] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:43] No pipeline_class_name specified, using model_index.json +[08-30 12:20:44] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 12:20:44] Loading pipeline modules... +[08-30 12:20:44] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 12:20:44] Diffusers version: 0.32.2 +[08-30 12:20:44] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 12:20:44] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 12:20:44] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_1_port30020/outputs/a78b76ad-4bbf-4a25-ac85-4ed7dc015bd5.mp4 + +[08-30 12:23:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:23:16] [InputValidationStage] started... +[08-30 12:23:16] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:23:16] [MiniMaxH3TextEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3TextEncodingStage] finished in 0.6648 seconds +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 12:23:17] INFO: 127.0.0.1:45884 - "GET /v1/videos/a78b76ad-4bbf-4a25-ac85-4ed7dc015bd5 HTTP/1.1" 200 OK +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] finished in 0.2744 seconds +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] finished in 0.0458 seconds +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:23:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:13.828000 945892 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:22] Applying performance_mode=speed +[08-30 12:20:22] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31020, "host": "0.0.0.0", "port": 30030, "webui": false, "webui_port": 12312, "scheduler_port": 32020, "scheduler_ports": [32020], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_2_port30030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:20:22] Starting server... +W0830 12:20:30.320000 946761 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.320000 946760 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.348000 946760 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.348000 946761 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:38] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32020 +[08-30 12:20:39] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:20:39] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:20:39] Setting distributed timeout to 3600 seconds +[08-30 12:20:40] Found nccl from library libnccl.so.2 +[08-30 12:20:40] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:44] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 12:20:44] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 12:20:44] Found nccl from library libnccl.so.2 +[08-30 12:20:44] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:44] No pipeline_class_name specified, using model_index.json +[08-30 12:20:44] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 12:20:44] Loading pipeline modules... +[08-30 12:20:44] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 12:20:44] Diffusers version: 0.32.2 +[08-30 12:20:44] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 12:20:44] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_2_port30030/outputs/d0a7abce-025e-4932-910f-032acb21dadf.mp4 + +[08-30 12:23:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:23:16] [InputValidationStage] started... +[08-30 12:23:16] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 12:23:16] [MiniMaxH3TextEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3TextEncodingStage] finished in 0.6482 seconds +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] finished in 0.2614 seconds +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] started... +[2026-08-30 12:23:17] INFO: 127.0.0.1:42706 - "GET /v1/videos/d0a7abce-025e-4932-910f-032acb21dadf HTTP/1.1" 200 OK +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] finished in 0.0396 seconds +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 12:23:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:14.070000 945903 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:22] Applying performance_mode=speed +[08-30 12:20:22] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31030, "host": "0.0.0.0", "port": 30040, "webui": false, "webui_port": 12312, "scheduler_port": 32030, "scheduler_ports": [32030], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_3_port30040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:20:22] Starting server... +W0830 12:20:30.739000 946890 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.768000 946890 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.806000 946891 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:20:30.834000 946891 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Failed to get device capability: SM 12.x requires CUDA >= 12.9. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:20:38] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32030 +[08-30 12:20:39] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:20:39] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:20:39] Setting distributed timeout to 3600 seconds +[08-30 12:20:40] Found nccl from library libnccl.so.2 +[08-30 12:20:40] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 12:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 12:20:43] Found nccl from library libnccl.so.2 +[08-30 12:20:43] sglang-diffusion is using nccl==2.29.7 +[08-30 12:20:43] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run1/server_3_port30040/outputs/9133d34b-dad8-482d-b40e-76389dcf9e34.mp4 + +[08-30 12:23:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:23:16] [InputValidationStage] started... +[08-30 12:23:16] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:23:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:23:16] [MiniMaxH3TextEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3TextEncodingStage] finished in 0.6537 seconds +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3VisualEncodingStage] finished in 0.2573 seconds +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:23:17] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] started... +[2026-08-30 12:23:17] INFO: 127.0.0.1:40246 - "GET /v1/videos/9133d34b-dad8-482d-b40e-76389dcf9e34 HTTP/1.1" 200 OK +[08-30 12:23:17] [MiniMaxH3LatentPreparationStage] finished in 0.0382 seconds +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:23:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 12:23:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:26:41.336000 953734 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:26:50] Applying performance_mode=speed +[08-30 12:26:50] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31000, "host": "0.0.0.0", "port": 30010, "webui": false, "webui_port": 12312, "scheduler_port": 32000, "scheduler_ports": [32000], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:26:50] Starting server... +W0830 12:27:01.417000 954465 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:01.447000 954465 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.798000 954464 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.827000 954464 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:27:11] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32000 +[08-30 12:27:12] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:27:12] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:27:12] Setting distributed timeout to 3600 seconds +[08-30 12:27:13] Found nccl from library libnccl.so.2 +[08-30 12:27:13] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 12:27:16] Found nccl from library libnccl.so.2 +[08-30 12:27:16] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:16] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/14386ebf-e8c9-40d2-a9d1-559c5c639555.mp4 + +[08-30 12:29:58] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:29:58] [InputValidationStage] started... +[08-30 12:29:58] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:29:58] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:29:58] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 12:29:58] [MiniMaxH3TextEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] finished in 0.6170 seconds +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] finished in 0.2244 seconds +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:29:59] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:29:59] [MiniMaxH3LatentPreparationStage] finished in 0.0279 seconds +[08-30 12:29:59] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:29:59] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 12:29:59] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/9a29ed57-965b-40ab-bc53-e4dc9e2225fe.mp4 + +[08-30 12:32:05] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:32:05] [InputValidationStage] started... +[08-30 12:32:05] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:32:05] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:32:05] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:32:05] [MiniMaxH3TextEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3TextEncodingStage] finished in 0.3900 seconds +[08-30 12:32:06] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3VisualEncodingStage] finished in 0.1938 seconds +[08-30 12:32:06] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:32:06] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:32:06] [MiniMaxH3LatentPreparationStage] finished in 0.0264 seconds +[08-30 12:32:06] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:32:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:32:06] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/f7c21345-2f82-4cb7-8c14-bb0f1df57ada.mp4 + +[08-30 12:34:11] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:34:11] [InputValidationStage] started... +[08-30 12:34:11] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:34:11] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:34:11] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:34:11] [MiniMaxH3TextEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3TextEncodingStage] finished in 0.4054 seconds +[08-30 12:34:11] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3VisualEncodingStage] finished in 0.1903 seconds +[08-30 12:34:11] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:34:11] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3LatentPreparationStage] finished in 0.0292 seconds +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:34:11] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1109 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/e74601d8-df59-4a18-be76-236a31409027.mp4 + +[08-30 12:36:16] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:36:16] [InputValidationStage] started... +[08-30 12:36:16] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:36:16] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:36:16] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:36:16] [MiniMaxH3TextEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3TextEncodingStage] finished in 0.3999 seconds +[08-30 12:36:17] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3VisualEncodingStage] finished in 0.1886 seconds +[08-30 12:36:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:36:17] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:36:17] [MiniMaxH3LatentPreparationStage] finished in 0.0260 seconds +[08-30 12:36:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:36:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:36:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1113 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/a0ab019f-010e-41ee-8612-ec331b26ab68.mp4 + +[08-30 12:38:22] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:38:22] [InputValidationStage] started... +[08-30 12:38:22] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:38:22] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:38:22] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:38:22] [MiniMaxH3TextEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3TextEncodingStage] finished in 0.3906 seconds +[08-30 12:38:23] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:38:23] [MiniMaxH3VisualEncodingStage] finished in 0.1865 seconds +[08-30 12:38:23] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:38:23] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:38:23] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:38:23] [MiniMaxH3LatentPreparationStage] finished in 0.0264 seconds +[08-30 12:38:23] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:38:23] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:38:23] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1117 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/4abbf2b8-164f-49af-acf5-68d2bd75b89f.mp4 + +[08-30 12:40:28] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:40:28] [InputValidationStage] started... +[08-30 12:40:28] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:40:28] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:40:28] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:40:28] [MiniMaxH3TextEncodingStage] started... +[08-30 12:40:28] [MiniMaxH3TextEncodingStage] finished in 0.4007 seconds +[08-30 12:40:28] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:40:28] [MiniMaxH3VisualEncodingStage] finished in 0.1901 seconds +[08-30 12:40:28] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:40:28] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:40:28] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:40:28] [MiniMaxH3LatentPreparationStage] finished in 0.0290 seconds +[08-30 12:40:28] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:40:28] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:40:28] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1121 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/06076de8-7296-4dca-a543-becb4a1851a3.mp4 + +[08-30 12:42:33] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:42:33] [InputValidationStage] started... +[08-30 12:42:33] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:42:33] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:42:33] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:42:33] [MiniMaxH3TextEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3TextEncodingStage] finished in 0.4037 seconds +[08-30 12:42:34] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3VisualEncodingStage] finished in 0.1860 seconds +[08-30 12:42:34] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:42:34] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:42:34] [MiniMaxH3LatentPreparationStage] finished in 0.0311 seconds +[08-30 12:42:34] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:42:34] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:42:34] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1125 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/90319dde-074c-4390-8fc1-776009237a77.mp4 + +[08-30 12:44:39] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:44:39] [InputValidationStage] started... +[08-30 12:44:39] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:44:39] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:44:39] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:44:39] [MiniMaxH3TextEncodingStage] started... +[08-30 12:44:39] [MiniMaxH3TextEncodingStage] finished in 0.4055 seconds +[08-30 12:44:40] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:44:40] [MiniMaxH3VisualEncodingStage] finished in 0.1894 seconds +[08-30 12:44:40] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:44:40] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:44:40] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:44:40] [MiniMaxH3LatentPreparationStage] finished in 0.0344 seconds +[08-30 12:44:40] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:44:40] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:44:40] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1129 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_0_port30010/outputs/f3bf250a-b5a4-4193-b8da-7b0bffde740d.mp4 + +[08-30 12:46:45] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:46:45] [InputValidationStage] started... +[08-30 12:46:45] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:46:45] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:46:45] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:46:45] [MiniMaxH3TextEncodingStage] started... +[08-30 12:46:45] [MiniMaxH3TextEncodingStage] finished in 0.4002 seconds +[08-30 12:46:45] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:46:45] [MiniMaxH3VisualEncodingStage] finished in 0.1894 seconds +[08-30 12:46:45] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:46:45] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:46:45] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:46:45] [MiniMaxH3LatentPreparationStage] finished in 0.0255 seconds +[08-30 12:46:45] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:46:45] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:46:45] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:26:41.758000 953804 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:26:50] Applying performance_mode=speed +[08-30 12:26:50] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31010, "host": "0.0.0.0", "port": 30020, "webui": false, "webui_port": 12312, "scheduler_port": 32010, "scheduler_ports": [32010], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:26:50] Starting server... +W0830 12:27:02.780000 954723 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.812000 954723 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.843000 954722 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.872000 954722 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:27:11] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32010 +[08-30 12:27:12] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:27:12] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:27:12] Setting distributed timeout to 3600 seconds +[08-30 12:27:13] Found nccl from library libnccl.so.2 +[08-30 12:27:13] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 12:27:16] Found nccl from library libnccl.so.2 +[08-30 12:27:16] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:16] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/803e5f2c-7004-4689-94a3-d91a97200690.mp4 + +[08-30 12:29:59] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:29:59] [InputValidationStage] started... +[08-30 12:29:59] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] finished in 0.6489 seconds +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] finished in 0.2356 seconds +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:29:59] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:30:00] [MiniMaxH3LatentPreparationStage] finished in 0.0312 seconds +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 12:30:00] [MiniMaxH3DenoisingStage] started... +[2026-08-30 12:30:00] INFO: 127.0.0.1:47162 - "GET /v1/videos/803e5f2c-7004-4689-94a3-d91a97200690 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/adf67b12-d463-46ae-870a-8710c233ca0d.mp4 + +[08-30 12:32:05] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:32:05] [InputValidationStage] started... +[08-30 12:32:05] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:32:05] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:32:05] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:32:05] [MiniMaxH3TextEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3TextEncodingStage] finished in 0.4054 seconds +[08-30 12:32:06] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3VisualEncodingStage] finished in 0.1886 seconds +[08-30 12:32:06] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:32:06] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:32:06] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:32:06] [MiniMaxH3LatentPreparationStage] finished in 0.0269 seconds +[08-30 12:32:06] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:32:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:32:06] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/9b6537e8-195a-4d58-84c8-27bd5a718669.mp4 + +[08-30 12:34:11] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:34:11] [InputValidationStage] started... +[08-30 12:34:11] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:34:11] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:34:11] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:34:11] [MiniMaxH3TextEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3TextEncodingStage] finished in 0.4083 seconds +[08-30 12:34:11] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:34:12] [MiniMaxH3VisualEncodingStage] finished in 0.1863 seconds +[08-30 12:34:12] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:34:12] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:34:12] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:34:12] [MiniMaxH3LatentPreparationStage] finished in 0.0254 seconds +[08-30 12:34:12] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:34:12] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:34:12] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1110 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/569fa5bd-ad55-42a9-b749-19f6b385cb55.mp4 + +[08-30 12:36:17] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:36:17] [InputValidationStage] started... +[08-30 12:36:17] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:36:17] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:36:17] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:36:17] [MiniMaxH3TextEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3TextEncodingStage] finished in 0.4182 seconds +[08-30 12:36:17] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3VisualEncodingStage] finished in 0.1893 seconds +[08-30 12:36:17] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:36:17] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:36:17] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:36:17] [MiniMaxH3LatentPreparationStage] finished in 0.0273 seconds +[08-30 12:36:17] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:36:17] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:36:17] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1114 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/3a7c4ac2-5633-400e-b69a-99e694a4188a.mp4 + +[08-30 12:38:22] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:38:22] [InputValidationStage] started... +[08-30 12:38:22] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:38:22] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:38:22] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:38:22] [MiniMaxH3TextEncodingStage] started... +[08-30 12:38:23] [MiniMaxH3TextEncodingStage] finished in 0.4014 seconds +[08-30 12:38:23] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:38:23] [MiniMaxH3VisualEncodingStage] finished in 0.1891 seconds +[08-30 12:38:23] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:38:23] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:38:23] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:38:23] [MiniMaxH3LatentPreparationStage] finished in 0.0302 seconds +[08-30 12:38:23] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:38:23] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:38:23] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1118 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/18bfb7d9-1a16-4b22-8aca-88803ceac6eb.mp4 + +[08-30 12:40:28] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:40:28] [InputValidationStage] started... +[08-30 12:40:28] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:40:28] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:40:28] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:40:28] [MiniMaxH3TextEncodingStage] started... +[08-30 12:40:28] [MiniMaxH3TextEncodingStage] finished in 0.3980 seconds +[08-30 12:40:28] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:40:29] [MiniMaxH3VisualEncodingStage] finished in 0.1865 seconds +[08-30 12:40:29] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:40:29] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:40:29] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:40:29] [MiniMaxH3LatentPreparationStage] finished in 0.0339 seconds +[08-30 12:40:29] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:40:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:40:29] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1122 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/6b42863a-e3a3-4641-bbb5-cdf87c25cac8.mp4 + +[08-30 12:42:34] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:42:34] [InputValidationStage] started... +[08-30 12:42:34] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:42:34] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:42:34] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:42:34] [MiniMaxH3TextEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3TextEncodingStage] finished in 0.3988 seconds +[08-30 12:42:34] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3VisualEncodingStage] finished in 0.1904 seconds +[08-30 12:42:34] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:42:34] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:42:34] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:42:34] [MiniMaxH3LatentPreparationStage] finished in 0.0323 seconds +[08-30 12:42:34] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:42:34] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:42:34] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1126 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/354e55cf-dc1f-450d-8c81-3c9ba76d3764.mp4 + +[08-30 12:44:39] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:44:39] [InputValidationStage] started... +[08-30 12:44:39] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:44:39] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:44:39] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:44:39] [MiniMaxH3TextEncodingStage] started... +[08-30 12:44:40] [MiniMaxH3TextEncodingStage] finished in 0.4062 seconds +[08-30 12:44:40] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:44:40] [MiniMaxH3VisualEncodingStage] finished in 0.1877 seconds +[08-30 12:44:40] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:44:40] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:44:40] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:44:40] [MiniMaxH3LatentPreparationStage] finished in 0.0263 seconds +[08-30 12:44:40] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:44:40] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:44:40] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1130 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_1_port30020/outputs/e508be88-831d-46da-bc22-3b7528492adb.mp4 + +[08-30 12:46:45] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:46:45] [InputValidationStage] started... +[08-30 12:46:45] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:46:45] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:46:45] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:46:45] [MiniMaxH3TextEncodingStage] started... +[08-30 12:46:45] [MiniMaxH3TextEncodingStage] finished in 0.4017 seconds +[08-30 12:46:45] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:46:46] [MiniMaxH3VisualEncodingStage] finished in 0.1886 seconds +[08-30 12:46:46] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:46:46] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:46:46] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:46:46] [MiniMaxH3LatentPreparationStage] finished in 0.0306 seconds +[08-30 12:46:46] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:46:46] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:46:46] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:26:41.350000 953872 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:26:50] Applying performance_mode=speed +[08-30 12:26:50] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31020, "host": "0.0.0.0", "port": 30030, "webui": false, "webui_port": 12312, "scheduler_port": 32020, "scheduler_ports": [32020], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:26:50] Starting server... +W0830 12:27:01.930000 954461 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:01.959000 954461 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.584000 954462 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.613000 954462 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:27:10] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32020 +[08-30 12:27:10] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:27:10] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:27:10] Setting distributed timeout to 3600 seconds +[08-30 12:27:12] Found nccl from library libnccl.so.2 +[08-30 12:27:12] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:14] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 12:27:14] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 12:27:14] Found nccl from library libnccl.so.2 +[08-30 12:27:14] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:15] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/4392fd6a-086b-4a39-97d3-ddaf18cd0906.mp4 + +[08-30 12:29:59] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:29:59] [InputValidationStage] started... +[08-30 12:29:59] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] finished in 0.6429 seconds +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] finished in 0.2346 seconds +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:29:59] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:29:59] [MiniMaxH3LatentPreparationStage] finished in 0.0344 seconds +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:30:00] [MiniMaxH3DenoisingStage] started... +[2026-08-30 12:30:00] INFO: 127.0.0.1:54030 - "GET /v1/videos/4392fd6a-086b-4a39-97d3-ddaf18cd0906 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/f4695611-878b-4293-a53b-6d020410118e.mp4 + +[08-30 12:32:04] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:32:04] [InputValidationStage] started... +[08-30 12:32:04] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:32:04] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:32:04] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:32:04] [MiniMaxH3TextEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3TextEncodingStage] finished in 0.4025 seconds +[08-30 12:32:05] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3VisualEncodingStage] finished in 0.1891 seconds +[08-30 12:32:05] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:32:05] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:32:05] [MiniMaxH3LatentPreparationStage] finished in 0.0278 seconds +[08-30 12:32:05] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:32:05] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:32:05] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/d9ea7ada-13d5-4e6f-944b-5ca61de48b7c.mp4 + +[08-30 12:34:10] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:34:10] [InputValidationStage] started... +[08-30 12:34:10] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:34:10] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:34:10] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:34:10] [MiniMaxH3TextEncodingStage] started... +[08-30 12:34:10] [MiniMaxH3TextEncodingStage] finished in 0.3982 seconds +[08-30 12:34:10] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:34:10] [MiniMaxH3VisualEncodingStage] finished in 0.1880 seconds +[08-30 12:34:10] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:34:10] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:34:10] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3LatentPreparationStage] finished in 0.0290 seconds +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:34:11] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1111 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/028e0f15-e7f6-4aa6-bdf7-be3a37b7d164.mp4 + +[08-30 12:36:15] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:36:15] [InputValidationStage] started... +[08-30 12:36:15] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:36:15] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:36:15] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:36:15] [MiniMaxH3TextEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3TextEncodingStage] finished in 0.3960 seconds +[08-30 12:36:16] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3VisualEncodingStage] finished in 0.1888 seconds +[08-30 12:36:16] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 12:36:16] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:36:16] [MiniMaxH3LatentPreparationStage] finished in 0.0493 seconds +[08-30 12:36:16] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:36:16] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:36:16] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1115 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/b7bc97de-bc92-48f5-810a-21368d719b71.mp4 + +[08-30 12:38:21] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:38:21] [InputValidationStage] started... +[08-30 12:38:21] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:38:21] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:38:21] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:38:21] [MiniMaxH3TextEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3TextEncodingStage] finished in 0.4020 seconds +[08-30 12:38:22] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3VisualEncodingStage] finished in 0.1918 seconds +[08-30 12:38:22] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 12:38:22] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:38:22] [MiniMaxH3LatentPreparationStage] finished in 0.0289 seconds +[08-30 12:38:22] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:38:22] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:38:22] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1119 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/35e5a8b0-943c-4a3c-b3c3-cb6e5575ae82.mp4 + +[08-30 12:40:27] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:40:27] [InputValidationStage] started... +[08-30 12:40:27] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:40:27] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:40:27] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:40:27] [MiniMaxH3TextEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3TextEncodingStage] finished in 0.3978 seconds +[08-30 12:40:27] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3VisualEncodingStage] finished in 0.1857 seconds +[08-30 12:40:27] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:40:27] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:40:27] [MiniMaxH3LatentPreparationStage] finished in 0.0257 seconds +[08-30 12:40:27] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:40:27] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 12:40:27] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1123 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/6caa61af-7291-440e-9544-ab6436f92fb8.mp4 + +[08-30 12:42:32] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:42:32] [InputValidationStage] started... +[08-30 12:42:32] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:42:32] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:42:32] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:42:32] [MiniMaxH3TextEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3TextEncodingStage] finished in 0.4017 seconds +[08-30 12:42:33] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3VisualEncodingStage] finished in 0.1866 seconds +[08-30 12:42:33] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:42:33] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:42:33] [MiniMaxH3LatentPreparationStage] finished in 0.0273 seconds +[08-30 12:42:33] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:42:33] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:42:33] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1127 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/9662cd4a-d4c8-4ed2-8444-f3a4c0f7696a.mp4 + +[08-30 12:44:38] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:44:38] [InputValidationStage] started... +[08-30 12:44:38] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:44:38] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:44:38] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:44:38] [MiniMaxH3TextEncodingStage] started... +[08-30 12:44:38] [MiniMaxH3TextEncodingStage] finished in 0.3855 seconds +[08-30 12:44:39] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:44:39] [MiniMaxH3VisualEncodingStage] finished in 0.1897 seconds +[08-30 12:44:39] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:44:39] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:44:39] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:44:39] [MiniMaxH3LatentPreparationStage] finished in 0.0280 seconds +[08-30 12:44:39] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:44:39] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 12:44:39] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1131 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_2_port30030/outputs/040723d4-7b9b-4960-9def-2aba88d7422d.mp4 + +[08-30 12:46:44] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:46:44] [InputValidationStage] started... +[08-30 12:46:44] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:46:44] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:46:44] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:46:44] [MiniMaxH3TextEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3TextEncodingStage] finished in 0.3982 seconds +[08-30 12:46:44] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3VisualEncodingStage] finished in 0.1896 seconds +[08-30 12:46:44] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:46:44] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:46:44] [MiniMaxH3LatentPreparationStage] finished in 0.0275 seconds +[08-30 12:46:44] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:46:44] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:46:44] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:26:41.809000 953881 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:26:50] Applying performance_mode=speed +[08-30 12:26:50] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31030, "host": "0.0.0.0", "port": 30040, "webui": false, "webui_port": 12312, "scheduler_port": 32030, "scheduler_ports": [32030], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 12:26:50] Starting server... +W0830 12:27:02.565000 954720 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.593000 954720 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.828000 954719 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 12:27:02.857000 954719 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 12:27:12] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32030 +[08-30 12:27:12] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 12:27:12] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 12:27:12] Setting distributed timeout to 3600 seconds +[08-30 12:27:13] Found nccl from library libnccl.so.2 +[08-30 12:27:13] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 12:27:16] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 12:27:17] Found nccl from library libnccl.so.2 +[08-30 12:27:17] sglang-diffusion is using nccl==2.29.7 +[08-30 12:27:17] No pipeline_class_name specified, using model_index.json +[08-30 12:27:17] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 12:27:17] Loading pipeline modules... +[08-30 12:27:17] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 12:27:17] Diffusers version: 0.32.2 +[08-30 12:27:17] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 12:27:17] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 12:27:17] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/3bb93532-ec9f-4d7b-b155-e5adab330388.mp4 + +[08-30 12:29:59] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:29:59] [InputValidationStage] started... +[08-30 12:29:59] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:29:59] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] started... +[08-30 12:29:59] [MiniMaxH3TextEncodingStage] finished in 0.6580 seconds +[08-30 12:29:59] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:30:00] [MiniMaxH3VisualEncodingStage] finished in 0.2376 seconds +[08-30 12:30:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:30:00] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:30:00] [MiniMaxH3LatentPreparationStage] started... +[2026-08-30 12:30:00] INFO: 127.0.0.1:34924 - "GET /v1/videos/3bb93532-ec9f-4d7b-b155-e5adab330388 HTTP/1.1" 200 OK +[08-30 12:30:00] [MiniMaxH3LatentPreparationStage] finished in 0.0364 seconds +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:30:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:30:00] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/1c361e5a-8a57-49c7-abc8-06a2afdf5513.mp4 + +[08-30 12:32:04] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:32:04] [InputValidationStage] started... +[08-30 12:32:04] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:32:04] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:32:04] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:32:04] [MiniMaxH3TextEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3TextEncodingStage] finished in 0.3952 seconds +[08-30 12:32:05] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3VisualEncodingStage] finished in 0.1882 seconds +[08-30 12:32:05] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:32:05] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:32:05] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:32:05] [MiniMaxH3LatentPreparationStage] finished in 0.0255 seconds +[08-30 12:32:05] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:32:05] [MiniMaxH3TimestepPreparationStage] finished in 0.0005 seconds +[08-30 12:32:05] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/914a59d9-e0fc-4ad8-802b-83563528d0d5.mp4 + +[08-30 12:34:10] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:34:10] [InputValidationStage] started... +[08-30 12:34:10] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:34:10] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:34:10] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:34:10] [MiniMaxH3TextEncodingStage] started... +[08-30 12:34:10] [MiniMaxH3TextEncodingStage] finished in 0.4083 seconds +[08-30 12:34:10] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3VisualEncodingStage] finished in 0.1854 seconds +[08-30 12:34:11] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:34:11] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:34:11] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3LatentPreparationStage] finished in 0.0314 seconds +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:34:11] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:34:11] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1112 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/ab7162a0-aa1b-472a-a847-807e4db9e421.mp4 + +[08-30 12:36:15] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:36:15] [InputValidationStage] started... +[08-30 12:36:15] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:36:15] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:36:15] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:36:15] [MiniMaxH3TextEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3TextEncodingStage] finished in 0.5619 seconds +[08-30 12:36:16] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3VisualEncodingStage] finished in 0.1856 seconds +[08-30 12:36:16] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:36:16] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:36:16] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:36:16] [MiniMaxH3LatentPreparationStage] finished in 0.0295 seconds +[08-30 12:36:16] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:36:16] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:36:16] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1116 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/c570089d-c259-41e4-aebf-cea1b50b59ea.mp4 + +[08-30 12:38:21] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:38:21] [InputValidationStage] started... +[08-30 12:38:21] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:38:21] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:38:21] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:38:21] [MiniMaxH3TextEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3TextEncodingStage] finished in 0.4058 seconds +[08-30 12:38:22] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3VisualEncodingStage] finished in 0.1880 seconds +[08-30 12:38:22] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:38:22] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:38:22] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:38:22] [MiniMaxH3LatentPreparationStage] finished in 0.0295 seconds +[08-30 12:38:22] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:38:22] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:38:22] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1120 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/fcfbb5fe-e1ae-4e9a-a275-8ee2abc229b9.mp4 + +[08-30 12:40:27] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:40:27] [InputValidationStage] started... +[08-30 12:40:27] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:40:27] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:40:27] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:40:27] [MiniMaxH3TextEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3TextEncodingStage] finished in 0.3984 seconds +[08-30 12:40:27] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3VisualEncodingStage] finished in 0.1906 seconds +[08-30 12:40:27] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:40:27] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:40:27] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:40:27] [MiniMaxH3LatentPreparationStage] finished in 0.0321 seconds +[08-30 12:40:27] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:40:27] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:40:27] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1124 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/2f3a7e32-f272-49a3-8123-606b84a9fcf3.mp4 + +[08-30 12:42:32] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:42:32] [InputValidationStage] started... +[08-30 12:42:32] [InputValidationStage] finished in 0.0001 seconds +[08-30 12:42:32] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:42:32] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:42:32] [MiniMaxH3TextEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3TextEncodingStage] finished in 0.3941 seconds +[08-30 12:42:33] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3VisualEncodingStage] finished in 0.1864 seconds +[08-30 12:42:33] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:42:33] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:42:33] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:42:33] [MiniMaxH3LatentPreparationStage] finished in 0.0356 seconds +[08-30 12:42:33] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:42:33] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:42:33] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1128 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/fd839e3a-dc19-4636-a065-f44662008d54.mp4 + +[08-30 12:44:38] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:44:38] [InputValidationStage] started... +[08-30 12:44:38] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:44:38] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:44:38] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:44:38] [MiniMaxH3TextEncodingStage] started... +[08-30 12:44:38] [MiniMaxH3TextEncodingStage] finished in 0.4003 seconds +[08-30 12:44:38] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:44:39] [MiniMaxH3VisualEncodingStage] finished in 0.1884 seconds +[08-30 12:44:39] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:44:39] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:44:39] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:44:39] [MiniMaxH3LatentPreparationStage] finished in 0.0316 seconds +[08-30 12:44:39] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:44:39] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:44:39] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1132 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-768p-8nfe-5s-20260830-run2/server_3_port30040/outputs/8f71f0cf-1421-4b8d-9712-573197904f55.mp4 + +[08-30 12:46:44] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 12:46:44] [InputValidationStage] started... +[08-30 12:46:44] [InputValidationStage] finished in 0.0002 seconds +[08-30 12:46:44] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 12:46:44] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 12:46:44] [MiniMaxH3TextEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3TextEncodingStage] finished in 0.3979 seconds +[08-30 12:46:44] [MiniMaxH3VisualEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3VisualEncodingStage] finished in 0.1857 seconds +[08-30 12:46:44] [MiniMaxH3AudioEncodingStage] started... +[08-30 12:46:44] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 12:46:44] [MiniMaxH3LatentPreparationStage] started... +[08-30 12:46:44] [MiniMaxH3LatentPreparationStage] finished in 0.0245 seconds +[08-30 12:46:44] [MiniMaxH3TimestepPreparationStage] started... +[08-30 12:46:44] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 12:46:44] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:03.118000 1003880 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:09] Applying performance_mode=speed +[08-30 13:55:09] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31000, "host": "0.0.0.0", "port": 30010, "webui": false, "webui_port": 12312, "scheduler_port": 32000, "scheduler_ports": [32000], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 13:55:09] Starting server... +W0830 13:55:16.415000 1004590 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:16.443000 1004590 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:16.614000 1004591 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:16.643000 1004591 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:25] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32000 +[08-30 13:55:25] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 13:55:25] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 13:55:25] Setting distributed timeout to 3600 seconds +[08-30 13:55:26] Found nccl from library libnccl.so.2 +[08-30 13:55:26] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:27] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 13:55:27] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 13:55:27] Found nccl from library libnccl.so.2 +[08-30 13:55:27] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:28] No pipeline_class_name specified, using model_index.json +[08-30 13:55:28] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 13:55:28] Loading pipeline modules... +[08-30 13:55:28] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 13:55:28] Diffusers version: 0.32.2 +[08-30 13:55:28] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 13:55:28] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 13:55:28] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/8ede76f5-3c47-47fa-90ab-d37e08abb795.mp4 + +[08-30 13:57:14] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:14] [InputValidationStage] started... +[08-30 13:57:14] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:57:14] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3TextEncodingStage] finished in 0.3380 seconds +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] finished in 0.1551 seconds +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] finished in 0.0150 seconds +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:57:15] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/7c9b4ae5-48fb-4abf-82da-1b50aa23798e.mp4 + +[08-30 13:57:53] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:53] [InputValidationStage] started... +[08-30 13:57:53] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] finished in 0.2619 seconds +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] finished in 0.1058 seconds +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] finished in 0.0105 seconds +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:57:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/dd4ba410-6c51-41aa-952d-437d401c1110.mp4 + +[08-30 13:58:31] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:58:31] [InputValidationStage] started... +[08-30 13:58:31] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] started... +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] finished in 0.3820 seconds +[08-30 13:58:31] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3VisualEncodingStage] finished in 0.1872 seconds +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] finished in 0.0292 seconds +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:58:32] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/07fa9bb6-d3df-454c-9ede-722c61f11e41.mp4 + +[08-30 14:00:23] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:00:23] [InputValidationStage] started... +[08-30 14:00:23] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:00:23] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:00:23] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:00:23] [MiniMaxH3TextEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3TextEncodingStage] finished in 0.3997 seconds +[08-30 14:00:23] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3VisualEncodingStage] finished in 0.1881 seconds +[08-30 14:00:23] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:00:23] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:00:23] [MiniMaxH3LatentPreparationStage] finished in 0.0341 seconds +[08-30 14:00:23] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:00:23] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:00:23] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/254913a8-7a55-4251-83e1-2f80f22046d6.mp4 + +[08-30 14:02:28] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:02:28] [InputValidationStage] started... +[08-30 14:02:28] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:02:28] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:02:28] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:02:28] [MiniMaxH3TextEncodingStage] started... +[08-30 14:02:29] [MiniMaxH3TextEncodingStage] finished in 0.6639 seconds +[08-30 14:02:29] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:02:29] INFO: 127.0.0.1:48362 - "GET /v1/videos/254913a8-7a55-4251-83e1-2f80f22046d6 HTTP/1.1" 200 OK +[08-30 14:02:29] [MiniMaxH3VisualEncodingStage] finished in 0.3937 seconds +[08-30 14:02:29] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:02:29] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:02:29] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3LatentPreparationStage] finished in 0.0618 seconds +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:02:29] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/aee96e08-c368-4c38-aaf0-039741b70639.mp4 + +[08-30 14:08:54] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:08:54] [InputValidationStage] started... +[08-30 14:08:54] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:08:54] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:08:54] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:08:54] [MiniMaxH3TextEncodingStage] started... +[08-30 14:08:54] [MiniMaxH3TextEncodingStage] finished in 0.2610 seconds +[08-30 14:08:54] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:08:54] [MiniMaxH3VisualEncodingStage] finished in 0.1069 seconds +[08-30 14:08:54] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:08:54] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:08:54] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:08:54] [MiniMaxH3LatentPreparationStage] finished in 0.0124 seconds +[08-30 14:08:54] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:08:54] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:08:54] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/7d0d1d9c-fe18-4db4-ab8f-4a969f4c9ed8.mp4 + +[08-30 14:09:32] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:09:32] [InputValidationStage] started... +[08-30 14:09:32] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:09:32] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:09:32] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 14:09:32] [MiniMaxH3TextEncodingStage] started... +[08-30 14:09:32] [MiniMaxH3TextEncodingStage] finished in 0.3637 seconds +[08-30 14:09:32] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:09:33] [MiniMaxH3VisualEncodingStage] finished in 0.1885 seconds +[08-30 14:09:33] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:09:33] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:09:33] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:09:33] [MiniMaxH3LatentPreparationStage] finished in 0.0304 seconds +[08-30 14:09:33] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:09:33] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:09:33] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/e4727ab4-0962-4614-bc79-2ef8dfc04e16.mp4 + +[08-30 14:11:24] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:11:24] [InputValidationStage] started... +[08-30 14:11:24] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:11:24] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:11:24] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:11:24] [MiniMaxH3TextEncodingStage] started... +[08-30 14:11:24] [MiniMaxH3TextEncodingStage] finished in 0.3974 seconds +[08-30 14:11:24] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:11:24] [MiniMaxH3VisualEncodingStage] finished in 0.1859 seconds +[08-30 14:11:24] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:11:24] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:11:24] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:11:24] [MiniMaxH3LatentPreparationStage] finished in 0.0275 seconds +[08-30 14:11:24] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:11:24] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:11:24] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_0_port30010/outputs/728c1188-cd95-49f6-8886-f050aff78941.mp4 + +[08-30 14:13:29] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:13:29] [InputValidationStage] started... +[08-30 14:13:29] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:13:29] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:13:29] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:13:29] [MiniMaxH3TextEncodingStage] started... +[08-30 14:13:30] [MiniMaxH3TextEncodingStage] finished in 0.6582 seconds +[08-30 14:13:30] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:13:30] INFO: 127.0.0.1:48362 - "GET /v1/videos/728c1188-cd95-49f6-8886-f050aff78941 HTTP/1.1" 200 OK +[08-30 14:13:30] [MiniMaxH3VisualEncodingStage] finished in 0.3955 seconds +[08-30 14:13:30] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:13:30] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:13:30] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:13:30] [MiniMaxH3LatentPreparationStage] finished in 0.0554 seconds +[08-30 14:13:30] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:13:30] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:13:30] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:04.127000 1003950 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:11] Applying performance_mode=speed +[08-30 13:55:11] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31010, "host": "0.0.0.0", "port": 30020, "webui": false, "webui_port": 12312, "scheduler_port": 32010, "scheduler_ports": [32010], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 13:55:11] Starting server... +W0830 13:55:21.020000 1004748 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.049000 1004748 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.173000 1004747 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.202000 1004747 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:29] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32010 +[08-30 13:55:29] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 13:55:29] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 13:55:29] Setting distributed timeout to 3600 seconds +[08-30 13:55:31] Found nccl from library libnccl.so.2 +[08-30 13:55:31] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:32] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 13:55:32] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 13:55:32] Found nccl from library libnccl.so.2 +[08-30 13:55:32] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:32] No pipeline_class_name specified, using model_index.json +[08-30 13:55:33] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 13:55:33] Loading pipeline modules... +[08-30 13:55:33] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 13:55:33] Diffusers version: 0.32.2 +[08-30 13:55:33] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 13:55:33] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 13:55:33] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/d5e2cc40-09cb-4493-8cba-2fafb723b9ae.mp4 + +[08-30 13:57:14] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:14] [InputValidationStage] started... +[08-30 13:57:14] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 13:57:14] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3TextEncodingStage] finished in 0.3416 seconds +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] finished in 0.1553 seconds +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] finished in 0.0153 seconds +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:15] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/026cdbce-bdf4-41c0-bb00-10b3d12579f6.mp4 + +[08-30 13:57:53] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:53] [InputValidationStage] started... +[08-30 13:57:53] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] finished in 0.2601 seconds +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] finished in 0.1059 seconds +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] finished in 0.0103 seconds +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/e4fb5d39-08b5-4318-abc9-98d7d14c3b77.mp4 + +[08-30 13:58:31] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:58:31] [InputValidationStage] started... +[08-30 13:58:31] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] started... +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] finished in 0.3750 seconds +[08-30 13:58:31] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3VisualEncodingStage] finished in 0.1854 seconds +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] finished in 0.0223 seconds +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:58:32] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/a0474c74-d7f1-4e8e-92cc-710657d0bd05.mp4 + +[08-30 14:00:22] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:00:22] [InputValidationStage] started... +[08-30 14:00:22] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:00:22] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:00:22] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:00:22] [MiniMaxH3TextEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3TextEncodingStage] finished in 0.4084 seconds +[08-30 14:00:22] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3VisualEncodingStage] finished in 0.1882 seconds +[08-30 14:00:22] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:00:22] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:00:22] [MiniMaxH3LatentPreparationStage] finished in 0.0276 seconds +[08-30 14:00:22] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:00:22] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:00:22] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/c870162f-9917-448d-9b12-ac5ae3cdd25c.mp4 + +[08-30 14:02:27] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:02:27] [InputValidationStage] started... +[08-30 14:02:27] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:02:27] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:02:27] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:02:27] [MiniMaxH3TextEncodingStage] started... +[08-30 14:02:28] [MiniMaxH3TextEncodingStage] finished in 0.6705 seconds +[08-30 14:02:28] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:02:28] INFO: 127.0.0.1:36506 - "GET /v1/videos/c870162f-9917-448d-9b12-ac5ae3cdd25c HTTP/1.1" 200 OK +[08-30 14:02:29] [MiniMaxH3VisualEncodingStage] finished in 0.3959 seconds +[08-30 14:02:29] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:02:29] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:02:29] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3LatentPreparationStage] finished in 0.0546 seconds +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:02:29] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/844df4ee-bbc3-4f15-a27d-3607dee7f2b8.mp4 + +[08-30 14:08:51] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:08:51] [InputValidationStage] started... +[08-30 14:08:51] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:08:51] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:08:51] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:08:51] [MiniMaxH3TextEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3TextEncodingStage] finished in 0.2594 seconds +[08-30 14:08:51] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3VisualEncodingStage] finished in 0.1070 seconds +[08-30 14:08:51] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:08:51] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:08:51] [MiniMaxH3LatentPreparationStage] finished in 0.0113 seconds +[08-30 14:08:51] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:08:51] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:08:51] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/4d1c05fc-c6ea-4563-b191-36a52dd29b83.mp4 + +[08-30 14:09:29] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:09:29] [InputValidationStage] started... +[08-30 14:09:29] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:09:29] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:09:29] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 14:09:29] [MiniMaxH3TextEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3TextEncodingStage] finished in 0.3675 seconds +[08-30 14:09:30] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3VisualEncodingStage] finished in 0.1855 seconds +[08-30 14:09:30] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:09:30] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:09:30] [MiniMaxH3LatentPreparationStage] finished in 0.0308 seconds +[08-30 14:09:30] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:09:30] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:09:30] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/bdcba2c7-5deb-4240-a005-4ba15792ff6c.mp4 + +[08-30 14:11:20] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:11:20] [InputValidationStage] started... +[08-30 14:11:20] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:11:20] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:11:20] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:11:20] [MiniMaxH3TextEncodingStage] started... +[08-30 14:11:20] [MiniMaxH3TextEncodingStage] finished in 0.3874 seconds +[08-30 14:11:20] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:11:21] [MiniMaxH3VisualEncodingStage] finished in 0.1904 seconds +[08-30 14:11:21] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:11:21] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:11:21] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:11:21] [MiniMaxH3LatentPreparationStage] finished in 0.0299 seconds +[08-30 14:11:21] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:11:21] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:11:21] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_1_port30020/outputs/56ffaa09-858b-40cf-9b4a-a34ab6971c28.mp4 + +[08-30 14:13:25] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:13:25] [InputValidationStage] started... +[08-30 14:13:25] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:13:25] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:13:25] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:13:25] [MiniMaxH3TextEncodingStage] started... +[08-30 14:13:25] [MiniMaxH3TextEncodingStage] finished in 0.6663 seconds +[08-30 14:13:25] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:13:26] INFO: 127.0.0.1:36506 - "GET /v1/videos/56ffaa09-858b-40cf-9b4a-a34ab6971c28 HTTP/1.1" 200 OK +[08-30 14:13:26] [MiniMaxH3VisualEncodingStage] finished in 0.3942 seconds +[08-30 14:13:26] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:13:26] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:13:26] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:13:26] [MiniMaxH3LatentPreparationStage] finished in 0.0641 seconds +[08-30 14:13:26] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:13:26] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:13:26] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:04.402000 1004020 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:11] Applying performance_mode=speed +[08-30 13:55:11] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31020, "host": "0.0.0.0", "port": 30030, "webui": false, "webui_port": 12312, "scheduler_port": 32020, "scheduler_ports": [32020], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 13:55:11] Starting server... +W0830 13:55:21.596000 1004876 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.625000 1004876 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.967000 1004877 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.997000 1004877 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:29] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32020 +[08-30 13:55:30] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 13:55:30] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 13:55:30] Setting distributed timeout to 3600 seconds +[08-30 13:55:31] Found nccl from library libnccl.so.2 +[08-30 13:55:31] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:33] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 13:55:33] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 13:55:33] Found nccl from library libnccl.so.2 +[08-30 13:55:33] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:33] No pipeline_class_name specified, using model_index.json +[08-30 13:55:33] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 13:55:33] Loading pipeline modules... +[08-30 13:55:33] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 13:55:33] Diffusers version: 0.32.2 +[08-30 13:55:33] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 13:55:33] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 13:55:33] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/eba17bf3-5407-4771-b9dd-e4e6c12b0aed.mp4 + +[08-30 13:57:14] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:14] [InputValidationStage] started... +[08-30 13:57:14] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 13:57:14] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3TextEncodingStage] finished in 0.3474 seconds +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] finished in 0.1542 seconds +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] finished in 0.0152 seconds +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:15] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/7f5319fe-dc9f-419a-a743-e5a7889eb0a6.mp4 + +[08-30 13:57:53] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:53] [InputValidationStage] started... +[08-30 13:57:53] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] finished in 0.2993 seconds +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] finished in 0.1059 seconds +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] finished in 0.0106 seconds +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/8f520ab0-6bed-48e8-980b-d336d5e3d264.mp4 + +[08-30 13:58:31] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:58:31] [InputValidationStage] started... +[08-30 13:58:31] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] started... +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] finished in 0.3855 seconds +[08-30 13:58:31] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3VisualEncodingStage] finished in 0.1871 seconds +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] finished in 0.0298 seconds +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:58:32] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/55c999b2-73c7-4125-b456-aace6aac6602.mp4 + +[08-30 14:00:22] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:00:22] [InputValidationStage] started... +[08-30 14:00:22] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:00:22] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:00:22] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:00:22] [MiniMaxH3TextEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3TextEncodingStage] finished in 0.4863 seconds +[08-30 14:00:22] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3VisualEncodingStage] finished in 0.1863 seconds +[08-30 14:00:22] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:00:22] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:00:22] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:00:22] [MiniMaxH3LatentPreparationStage] finished in 0.0291 seconds +[08-30 14:00:22] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:00:22] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:00:22] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/2e253e48-cf9b-44c6-8818-89f8e905e4a0.mp4 + +[08-30 14:02:27] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:02:27] [InputValidationStage] started... +[08-30 14:02:27] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:02:27] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:02:27] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:02:27] [MiniMaxH3TextEncodingStage] started... +[08-30 14:02:28] [MiniMaxH3TextEncodingStage] finished in 0.6659 seconds +[08-30 14:02:28] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:02:28] INFO: 127.0.0.1:54972 - "GET /v1/videos/2e253e48-cf9b-44c6-8818-89f8e905e4a0 HTTP/1.1" 200 OK +[08-30 14:02:28] [MiniMaxH3VisualEncodingStage] finished in 0.4060 seconds +[08-30 14:02:28] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:02:28] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:02:28] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3LatentPreparationStage] finished in 0.0654 seconds +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:02:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:02:29] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/715b1bea-9c9e-4077-9945-57324c2732b3.mp4 + +[08-30 14:08:51] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:08:51] [InputValidationStage] started... +[08-30 14:08:51] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:08:51] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:08:51] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:08:51] [MiniMaxH3TextEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3TextEncodingStage] finished in 0.2674 seconds +[08-30 14:08:51] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3VisualEncodingStage] finished in 0.1062 seconds +[08-30 14:08:51] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:08:51] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:08:51] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:08:51] [MiniMaxH3LatentPreparationStage] finished in 0.0121 seconds +[08-30 14:08:51] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:08:51] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:08:51] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/8eb188a4-4b7c-4d17-a971-73d14e13654c.mp4 + +[08-30 14:09:29] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:09:29] [InputValidationStage] started... +[08-30 14:09:29] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:09:29] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:09:29] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:09:29] [MiniMaxH3TextEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3TextEncodingStage] finished in 0.3762 seconds +[08-30 14:09:30] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3VisualEncodingStage] finished in 0.1853 seconds +[08-30 14:09:30] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:09:30] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:09:30] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:09:30] [MiniMaxH3LatentPreparationStage] finished in 0.0244 seconds +[08-30 14:09:30] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:09:30] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:09:30] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/4cb3f844-6beb-4e05-bc5f-f4a977a402e6.mp4 + +[08-30 14:11:20] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:11:20] [InputValidationStage] started... +[08-30 14:11:20] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:11:20] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:11:20] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:11:20] [MiniMaxH3TextEncodingStage] started... +[08-30 14:11:20] [MiniMaxH3TextEncodingStage] finished in 0.4306 seconds +[08-30 14:11:20] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:11:20] [MiniMaxH3VisualEncodingStage] finished in 0.1859 seconds +[08-30 14:11:20] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:11:20] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:11:20] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:11:20] [MiniMaxH3LatentPreparationStage] finished in 0.0325 seconds +[08-30 14:11:20] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:11:20] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:11:20] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_2_port30030/outputs/5a412742-1939-4a65-af56-95d2d270ee78.mp4 + +[08-30 14:13:25] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:13:25] [InputValidationStage] started... +[08-30 14:13:25] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:13:25] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:13:25] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:13:25] [MiniMaxH3TextEncodingStage] started... +[08-30 14:13:26] [MiniMaxH3TextEncodingStage] finished in 0.6623 seconds +[08-30 14:13:26] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:13:26] INFO: 127.0.0.1:54972 - "GET /v1/videos/5a412742-1939-4a65-af56-95d2d270ee78 HTTP/1.1" 200 OK +[08-30 14:13:27] [MiniMaxH3VisualEncodingStage] finished in 0.3952 seconds +[08-30 14:13:27] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:13:27] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:13:27] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:13:27] [MiniMaxH3LatentPreparationStage] finished in 0.0586 seconds +[08-30 14:13:27] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:13:27] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:13:27] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:04.624000 1004027 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:12] Applying performance_mode=speed +[08-30 13:55:12] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "FL2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31030, "host": "0.0.0.0", "port": 30040, "webui": false, "webui_port": 12312, "scheduler_port": 32030, "scheduler_ports": [32030], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 13:55:12] Starting server... +W0830 13:55:21.871000 1004879 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.899000 1004879 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:21.991000 1004880 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 13:55:22.021000 1004880 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 13:55:30] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32030 +[08-30 13:55:31] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 13:55:31] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 13:55:31] Setting distributed timeout to 3600 seconds +[08-30 13:55:32] Found nccl from library libnccl.so.2 +[08-30 13:55:32] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:33] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 13:55:33] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 13:55:33] Found nccl from library libnccl.so.2 +[08-30 13:55:33] sglang-diffusion is using nccl==2.29.7 +[08-30 13:55:33] No pipeline_class_name specified, using model_index.json +[08-30 13:55:34] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 13:55:34] Loading pipeline modules... +[08-30 13:55:34] Model path: /data/hf_models/MiniMax-H3/FL2VA +[08-30 13:55:34] Diffusers version: 0.32.2 +[08-30 13:55:34] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'fl2va', 'tasks': ['t2va', 'fl2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 13:55:34] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 13:55:34] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/458014af-da41-4925-b5cb-f0bb57b852d2.mp4 + +[08-30 13:57:14] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:14] [InputValidationStage] started... +[08-30 13:57:14] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:14] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 13:57:14] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3TextEncodingStage] finished in 0.3420 seconds +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3VisualEncodingStage] finished in 0.1578 seconds +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:15] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3LatentPreparationStage] finished in 0.0157 seconds +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:15] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:15] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/bb7646cc-8ff7-4c3d-9cf8-b20b06c10bfc.mp4 + +[08-30 13:57:53] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:57:53] [InputValidationStage] started... +[08-30 13:57:53] [InputValidationStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:57:53] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3TextEncodingStage] finished in 0.3279 seconds +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3VisualEncodingStage] finished in 0.1089 seconds +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:57:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3LatentPreparationStage] finished in 0.0110 seconds +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:57:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 13:57:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/d8659732-5dc7-4dc0-ba68-70a31daa0eee.mp4 + +[08-30 13:58:31] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 13:58:31] [InputValidationStage] started... +[08-30 13:58:31] [InputValidationStage] finished in 0.0002 seconds +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 13:58:31] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] started... +[08-30 13:58:31] [MiniMaxH3TextEncodingStage] finished in 0.3783 seconds +[08-30 13:58:32] [MiniMaxH3VisualEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3VisualEncodingStage] finished in 0.1939 seconds +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] started... +[08-30 13:58:32] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3LatentPreparationStage] finished in 0.0238 seconds +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] started... +[08-30 13:58:32] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 13:58:32] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/b71518af-27c5-43b2-b934-dd042aabedae.mp4 + +[08-30 14:00:23] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:00:23] [InputValidationStage] started... +[08-30 14:00:23] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:00:23] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:00:23] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:00:23] [MiniMaxH3TextEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3TextEncodingStage] finished in 0.3996 seconds +[08-30 14:00:23] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3VisualEncodingStage] finished in 0.1881 seconds +[08-30 14:00:23] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:00:23] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:00:23] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:00:23] [MiniMaxH3LatentPreparationStage] finished in 0.0361 seconds +[08-30 14:00:23] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:00:23] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:00:23] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/60fc4778-8f75-4689-a3ee-ee480db9bdf8.mp4 + +[08-30 14:02:28] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:02:28] [InputValidationStage] started... +[08-30 14:02:28] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:02:28] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:02:28] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:02:28] [MiniMaxH3TextEncodingStage] started... +[08-30 14:02:29] [MiniMaxH3TextEncodingStage] finished in 0.6571 seconds +[08-30 14:02:29] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:02:29] INFO: 127.0.0.1:58184 - "GET /v1/videos/60fc4778-8f75-4689-a3ee-ee480db9bdf8 HTTP/1.1" 200 OK +[08-30 14:02:30] [MiniMaxH3VisualEncodingStage] finished in 0.3950 seconds +[08-30 14:02:30] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:02:30] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:02:30] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:02:30] [MiniMaxH3LatentPreparationStage] finished in 0.0568 seconds +[08-30 14:02:30] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:02:30] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:02:30] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/61f1d8be-5393-4d32-9587-34751b949008.mp4 + +[08-30 14:08:53] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:08:53] [InputValidationStage] started... +[08-30 14:08:53] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:08:53] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:08:53] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:08:53] [MiniMaxH3TextEncodingStage] started... +[08-30 14:08:53] [MiniMaxH3TextEncodingStage] finished in 0.2625 seconds +[08-30 14:08:53] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:08:53] [MiniMaxH3VisualEncodingStage] finished in 0.1051 seconds +[08-30 14:08:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:08:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:08:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:08:53] [MiniMaxH3LatentPreparationStage] finished in 0.0119 seconds +[08-30 14:08:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:08:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:08:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/0f1cec8f-b72c-45e6-b9dd-db1105926906.mp4 + +[08-30 14:09:31] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:09:31] [InputValidationStage] started... +[08-30 14:09:31] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:09:31] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:09:31] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:09:31] [MiniMaxH3TextEncodingStage] started... +[08-30 14:09:32] [MiniMaxH3TextEncodingStage] finished in 0.3723 seconds +[08-30 14:09:32] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:09:32] [MiniMaxH3VisualEncodingStage] finished in 0.1880 seconds +[08-30 14:09:32] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:09:32] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:09:32] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:09:32] [MiniMaxH3LatentPreparationStage] finished in 0.0246 seconds +[08-30 14:09:32] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:09:32] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:09:32] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/c510efca-b690-46c8-92a3-19cdf43d0cb0.mp4 + +[08-30 14:11:22] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:11:22] [InputValidationStage] started... +[08-30 14:11:22] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:11:22] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:11:22] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:11:22] [MiniMaxH3TextEncodingStage] started... +[08-30 14:11:22] [MiniMaxH3TextEncodingStage] finished in 0.3979 seconds +[08-30 14:11:22] [MiniMaxH3VisualEncodingStage] started... +[08-30 14:11:22] [MiniMaxH3VisualEncodingStage] finished in 0.1875 seconds +[08-30 14:11:22] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:11:22] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:11:22] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:11:22] [MiniMaxH3LatentPreparationStage] finished in 0.0297 seconds +[08-30 14:11:22] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:11:22] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:11:22] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/server_3_port30040/outputs/3347cbdf-e7f0-4fa1-939e-5bd0e7009c2d.mp4 + +[08-30 14:13:27] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:13:27] [InputValidationStage] started... +[08-30 14:13:27] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:13:27] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:13:27] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:13:27] [MiniMaxH3TextEncodingStage] started... +[08-30 14:13:28] [MiniMaxH3TextEncodingStage] finished in 0.6655 seconds +[08-30 14:13:28] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:13:28] INFO: 127.0.0.1:58184 - "GET /v1/videos/3347cbdf-e7f0-4fa1-939e-5bd0e7009c2d HTTP/1.1" 200 OK +[08-30 14:13:29] [MiniMaxH3VisualEncodingStage] finished in 0.3938 seconds +[08-30 14:13:29] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:13:29] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:13:29] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:13:29] [MiniMaxH3LatentPreparationStage] finished in 0.0512 seconds +[08-30 14:13:29] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:13:29] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:13:29] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:15.208000 1025906 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:23] Applying performance_mode=speed +[08-30 14:20:23] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31000, "host": "0.0.0.0", "port": 30010, "webui": false, "webui_port": 12312, "scheduler_port": 32000, "scheduler_ports": [32000], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 14:20:23] Starting server... +W0830 14:20:31.366000 1026586 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:31.393000 1026586 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:31.614000 1026585 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:31.648000 1026585 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:39] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32000 +[08-30 14:20:39] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 14:20:39] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 14:20:39] Setting distributed timeout to 3600 seconds +[08-30 14:20:40] Found nccl from library libnccl.so.2 +[08-30 14:20:40] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:41] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 14:20:41] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_0,1.json +[08-30 14:20:41] Found nccl from library libnccl.so.2 +[08-30 14:20:41] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:41] No pipeline_class_name specified, using model_index.json +[08-30 14:20:42] Using pipeline from model_index.json: MiniMaxH3Pipeline +[08-30 14:20:42] Loading pipeline modules... +[08-30 14:20:42] Model path: /data/hf_models/MiniMax-H3/Ref2VA +[08-30 14:20:42] Diffusers version: 0.32.2 +[08-30 14:20:42] Loading pipeline modules from config: {'_class_name': 'MiniMaxH3Pipeline', '_diffusers_version': '0.32.2', 'text_encoder': ['transformers', 'MiniMaxH3Qwen3VLHFEncoder'], 'tokenizer': ['transformers', 'Qwen2TokenizerFast'], 'video_vae': ['diffusers', 'MiniMaxH3VideoVAE'], 'audio_vae': ['diffusers', 'MiniMaxH3AudioVAE'], 'scheduler': None, 'transformer': ['diffusers', 'MiniMaxH3DiTModel'], 'processor': ['transformers', 'Qwen3VLProcessor'], '_minimax_h3': {'schema_version': 1, 'partition': 'ref2va', 'tasks': ['ref2va'], 'task_aliases': {}, 'sigma_shift_scales': {'video': 12.0, 'audio': 3.0}}} +[08-30 14:20:42] Loading required components: ['processor', 'text_encoder', 'tokenizer', 'video_vae', 'audio_vae', 'transformer'] +[08-30 14:20:42] Memory-aware component load order: ['text_encoder', 'transformer', 'audio_vae', 'video_vae', 'processor', 'tokenizer'] + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/834ae8f2-bbc8-430b-b906-38e1405bc71e.mp4 + +[08-30 14:22:49] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:22:49] [InputValidationStage] started... +[08-30 14:22:49] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:22:49] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:22:50] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:51] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:52] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:53] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:54] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:55] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:56] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:57] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:58] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:22:59] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:00] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:01] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:02] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:03] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:04] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:05] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:06] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:07] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:08] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:09] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[08-30 14:23:10] [MiniMaxH3TextEncodingStage] finished in 20.6739 seconds +[2026-08-30 14:23:10] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[08-30 14:23:11] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:23:11] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[2026-08-30 14:23:12] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK +[08-30 14:23:13] [MiniMaxH3VisualEncodingStage] finished in 2.1699 seconds +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] finished in 0.0107 seconds +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:23:13] [MiniMaxH3DenoisingStage] started... +[2026-08-30 14:23:13] INFO: 127.0.0.1:41148 - "GET /v1/videos/834ae8f2-bbc8-430b-b906-38e1405bc71e HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/971dd22b-eba1-433c-b10f-b3c484fc7991.mp4 + +[08-30 14:25:06] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:25:06] [InputValidationStage] started... +[08-30 14:25:06] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:25:07] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[2026-08-30 14:25:08] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[2026-08-30 14:25:09] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[2026-08-30 14:25:10] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[2026-08-30 14:25:11] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[08-30 14:25:11] [MiniMaxH3TextEncodingStage] finished in 5.1201 seconds +[2026-08-30 14:25:12] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[08-30 14:25:12] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:25:13] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[2026-08-30 14:25:14] INFO: 127.0.0.1:41148 - "GET /v1/videos/971dd22b-eba1-433c-b10f-b3c484fc7991 HTTP/1.1" 200 OK +[08-30 14:25:14] [MiniMaxH3VisualEncodingStage] finished in 2.1453 seconds +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] finished in 0.0105 seconds +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:25:14] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/ea88b50b-b2f6-41ae-a29a-76c6a77e3605.mp4 + +[08-30 14:27:07] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:27:07] [InputValidationStage] started... +[08-30 14:27:07] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:27:07] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:27:08] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[2026-08-30 14:27:09] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[2026-08-30 14:27:10] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[2026-08-30 14:27:11] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[2026-08-30 14:27:12] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[08-30 14:27:12] [MiniMaxH3TextEncodingStage] finished in 5.0883 seconds +[2026-08-30 14:27:13] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[08-30 14:27:13] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:27:14] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[2026-08-30 14:27:15] INFO: 127.0.0.1:41148 - "GET /v1/videos/ea88b50b-b2f6-41ae-a29a-76c6a77e3605 HTTP/1.1" 200 OK +[08-30 14:27:16] [MiniMaxH3VisualEncodingStage] finished in 2.1630 seconds +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] finished in 0.0268 seconds +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:27:16] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/181d6b0f-083b-4936-bc1f-553d629aca19.mp4 + +[08-30 14:30:50] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:30:50] [InputValidationStage] started... +[08-30 14:30:50] [InputValidationStage] finished in 0.0003 seconds +[08-30 14:30:50] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:30:50] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:30:50] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:30:51] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[2026-08-30 14:30:52] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[2026-08-30 14:30:53] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[2026-08-30 14:30:54] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[2026-08-30 14:30:55] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[08-30 14:30:55] [MiniMaxH3TextEncodingStage] finished in 5.0945 seconds +[2026-08-30 14:30:56] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[08-30 14:30:56] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:30:57] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[2026-08-30 14:30:58] INFO: 127.0.0.1:41148 - "GET /v1/videos/181d6b0f-083b-4936-bc1f-553d629aca19 HTTP/1.1" 200 OK +[08-30 14:30:58] [MiniMaxH3VisualEncodingStage] finished in 2.1718 seconds +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:30:58] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:30:59] [MiniMaxH3LatentPreparationStage] finished in 0.0318 seconds +[08-30 14:30:59] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:30:59] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:30:59] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1101 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9.mp4 + +[08-30 14:34:52] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:34:52] [InputValidationStage] started... +[08-30 14:34:52] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:34:52] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:34:52] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:34:52] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:34:53] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:34:54] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:34:55] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:34:56] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:34:57] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[08-30 14:34:57] [MiniMaxH3TextEncodingStage] finished in 5.0188 seconds +[08-30 14:34:58] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:34:58] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:34:59] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[2026-08-30 14:35:00] INFO: 127.0.0.1:41148 - "GET /v1/videos/009dfcc1-4dd4-4d89-a9ce-6840d688f1d9 HTTP/1.1" 200 OK +[08-30 14:35:00] [MiniMaxH3VisualEncodingStage] finished in 2.1553 seconds +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:35:01] [MiniMaxH3LatentPreparationStage] finished in 0.0585 seconds +[08-30 14:35:01] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:35:01] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:35:01] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/4403ee11-ad01-443a-a74e-279623ddf859.mp4 + +[08-30 14:44:00] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:44:00] [InputValidationStage] started... +[08-30 14:44:00] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:44:00] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:44:00] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:44:00] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:44:01] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[2026-08-30 14:44:02] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[2026-08-30 14:44:03] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[2026-08-30 14:44:04] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[2026-08-30 14:44:05] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[08-30 14:44:05] [MiniMaxH3TextEncodingStage] finished in 5.0492 seconds +[2026-08-30 14:44:06] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[08-30 14:44:06] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:44:07] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[2026-08-30 14:44:08] INFO: 127.0.0.1:41148 - "GET /v1/videos/4403ee11-ad01-443a-a74e-279623ddf859 HTTP/1.1" 200 OK +[08-30 14:44:08] [MiniMaxH3VisualEncodingStage] finished in 2.1697 seconds +[08-30 14:44:08] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:44:08] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:44:08] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:44:08] [MiniMaxH3LatentPreparationStage] finished in 0.0104 seconds +[08-30 14:44:08] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:44:08] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:44:08] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0.mp4 + +[08-30 14:46:00] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:46:00] [InputValidationStage] started... +[08-30 14:46:00] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:46:00] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:46:00] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:46:00] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:46:01] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[2026-08-30 14:46:02] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[2026-08-30 14:46:03] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[2026-08-30 14:46:04] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[08-30 14:46:05] [MiniMaxH3TextEncodingStage] finished in 4.9856 seconds +[2026-08-30 14:46:05] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[08-30 14:46:06] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:46:06] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[2026-08-30 14:46:07] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[2026-08-30 14:46:08] INFO: 127.0.0.1:41148 - "GET /v1/videos/c4d06f6c-6ac0-446c-a2c6-bcee9b4859a0 HTTP/1.1" 200 OK +[08-30 14:46:08] [MiniMaxH3VisualEncodingStage] finished in 2.1439 seconds +[08-30 14:46:08] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:46:08] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:46:08] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:46:08] [MiniMaxH3LatentPreparationStage] finished in 0.0245 seconds +[08-30 14:46:08] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:46:08] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:46:08] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/b4149014-363d-4342-ad1a-74b5726017ef.mp4 + +[08-30 14:49:42] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:49:42] [InputValidationStage] started... +[08-30 14:49:42] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:49:42] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:49:42] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:49:42] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:49:43] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[2026-08-30 14:49:44] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[2026-08-30 14:49:45] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[2026-08-30 14:49:46] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[2026-08-30 14:49:47] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[08-30 14:49:47] [MiniMaxH3TextEncodingStage] finished in 5.0545 seconds +[2026-08-30 14:49:48] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[08-30 14:49:48] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:49:49] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[2026-08-30 14:49:50] INFO: 127.0.0.1:41148 - "GET /v1/videos/b4149014-363d-4342-ad1a-74b5726017ef HTTP/1.1" 200 OK +[08-30 14:49:51] [MiniMaxH3VisualEncodingStage] finished in 2.1712 seconds +[08-30 14:49:51] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:49:51] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:49:51] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:49:51] [MiniMaxH3LatentPreparationStage] finished in 0.0296 seconds +[08-30 14:49:51] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:49:51] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:49:51] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1105 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_0_port30010/outputs/4aa5d58b-a1f4-44f9-9677-4d6562f9914a.mp4 + +[08-30 14:53:44] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:53:44] [InputValidationStage] started... +[08-30 14:53:44] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:53:44] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:53:44] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:53:44] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:53:45] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[2026-08-30 14:53:46] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[2026-08-30 14:53:47] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[2026-08-30 14:53:48] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[2026-08-30 14:53:49] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[08-30 14:53:50] [MiniMaxH3TextEncodingStage] finished in 5.0456 seconds +[2026-08-30 14:53:50] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[08-30 14:53:50] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:53:51] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[2026-08-30 14:53:52] INFO: 127.0.0.1:41148 - "GET /v1/videos/4aa5d58b-a1f4-44f9-9677-4d6562f9914a HTTP/1.1" 200 OK +[08-30 14:53:53] [MiniMaxH3VisualEncodingStage] finished in 2.1448 seconds +[08-30 14:53:53] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:53:53] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:53:53] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:53:53] [MiniMaxH3LatentPreparationStage] finished in 0.0533 seconds +[08-30 14:53:53] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:53:53] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:53:53] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:15.779000 1025977 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:23] Applying performance_mode=speed +[08-30 14:20:23] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31010, "host": "0.0.0.0", "port": 30020, "webui": false, "webui_port": 12312, "scheduler_port": 32010, "scheduler_ports": [32010], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 14:20:23] Starting server... +W0830 14:20:31.852000 1026590 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:31.873000 1026590 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:32.629000 1026591 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:32.657000 1026591 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:37] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32010 +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:37] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 14:20:37] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 14:20:37] Setting distributed timeout to 3600 seconds +[08-30 14:20:40] Found nccl from library libnccl.so.2 +[08-30 14:20:40] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:42] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 14:20:42] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_2,3.json +[08-30 14:20:42] Found nccl from library libnccl.so.2 +[08-30 14:20:42] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:42] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/984c633b-1c09-4273-8af0-3749957605d7.mp4 + +[08-30 14:22:49] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:22:49] [InputValidationStage] started... +[08-30 14:22:49] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 14:22:49] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:22:50] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:51] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:52] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:53] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:54] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:55] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:56] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:57] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:58] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:22:59] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:00] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:01] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:02] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:03] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:04] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:05] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:06] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:07] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:08] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:09] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[08-30 14:23:10] [MiniMaxH3TextEncodingStage] finished in 20.8476 seconds +[2026-08-30 14:23:10] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[08-30 14:23:11] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:23:11] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[2026-08-30 14:23:12] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK +[08-30 14:23:13] [MiniMaxH3VisualEncodingStage] finished in 2.1408 seconds +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] finished in 0.0091 seconds +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:23:13] [MiniMaxH3DenoisingStage] started... +[2026-08-30 14:23:13] INFO: 127.0.0.1:57580 - "GET /v1/videos/984c633b-1c09-4273-8af0-3749957605d7 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03.mp4 + +[08-30 14:25:06] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:25:06] [InputValidationStage] started... +[08-30 14:25:06] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:25:07] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[2026-08-30 14:25:08] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[2026-08-30 14:25:09] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[2026-08-30 14:25:10] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[2026-08-30 14:25:11] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[08-30 14:25:11] [MiniMaxH3TextEncodingStage] finished in 5.1344 seconds +[2026-08-30 14:25:12] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[08-30 14:25:12] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:25:13] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[2026-08-30 14:25:14] INFO: 127.0.0.1:57580 - "GET /v1/videos/a21af6b8-fdee-4b9b-b744-b5cbf3f7ac03 HTTP/1.1" 200 OK +[08-30 14:25:14] [MiniMaxH3VisualEncodingStage] finished in 2.1577 seconds +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] finished in 0.0124 seconds +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:25:14] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/ef09b203-418a-44d4-bc7a-58bd605850ea.mp4 + +[08-30 14:27:06] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:27:06] [InputValidationStage] started... +[08-30 14:27:06] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:27:06] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:27:06] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:27:06] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:27:07] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[2026-08-30 14:27:08] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[2026-08-30 14:27:09] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[2026-08-30 14:27:10] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[2026-08-30 14:27:11] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[08-30 14:27:11] [MiniMaxH3TextEncodingStage] finished in 5.0633 seconds +[2026-08-30 14:27:12] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[08-30 14:27:12] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:27:13] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[2026-08-30 14:27:14] INFO: 127.0.0.1:57580 - "GET /v1/videos/ef09b203-418a-44d4-bc7a-58bd605850ea HTTP/1.1" 200 OK +[08-30 14:27:14] [MiniMaxH3VisualEncodingStage] finished in 2.1771 seconds +[08-30 14:27:14] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:27:14] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:27:14] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:27:14] [MiniMaxH3LatentPreparationStage] finished in 0.0268 seconds +[08-30 14:27:14] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:27:14] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:27:14] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/30fd92f3-96b5-4146-bd68-747f8eb31d1b.mp4 + +[08-30 14:30:49] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:30:49] [InputValidationStage] started... +[08-30 14:30:49] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:30:49] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:30:49] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:30:49] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:30:50] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[2026-08-30 14:30:51] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[2026-08-30 14:30:52] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[2026-08-30 14:30:53] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[2026-08-30 14:30:54] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[08-30 14:30:54] [MiniMaxH3TextEncodingStage] finished in 5.3227 seconds +[2026-08-30 14:30:55] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[08-30 14:30:55] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:30:56] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[2026-08-30 14:30:57] INFO: 127.0.0.1:57580 - "GET /v1/videos/30fd92f3-96b5-4146-bd68-747f8eb31d1b HTTP/1.1" 200 OK +[08-30 14:30:58] [MiniMaxH3VisualEncodingStage] finished in 2.1550 seconds +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:30:58] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:30:58] [MiniMaxH3LatentPreparationStage] finished in 0.0254 seconds +[08-30 14:30:58] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:30:58] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:30:58] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1102 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71.mp4 + +[08-30 14:34:51] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:34:51] [InputValidationStage] started... +[08-30 14:34:51] [InputValidationStage] finished in 0.0004 seconds +[08-30 14:34:51] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:34:51] [MiniMaxH3PartitionAdmissionStage] finished in 0.0002 seconds +[08-30 14:34:51] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:34:52] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[2026-08-30 14:34:53] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[2026-08-30 14:34:54] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[2026-08-30 14:34:55] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[2026-08-30 14:34:56] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[08-30 14:34:57] [MiniMaxH3TextEncodingStage] finished in 5.3424 seconds +[2026-08-30 14:34:57] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[08-30 14:34:58] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:34:58] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[2026-08-30 14:34:59] INFO: 127.0.0.1:57580 - "GET /v1/videos/67acf0cf-6c0c-4be0-abb2-ac3d768d5e71 HTTP/1.1" 200 OK +[08-30 14:35:00] [MiniMaxH3VisualEncodingStage] finished in 2.1749 seconds +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] finished in 0.0667 seconds +[08-30 14:35:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:35:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:35:00] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/b14ce017-2c54-4247-bee4-12d36290bfc2.mp4 + +[08-30 14:43:56] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:43:56] [InputValidationStage] started... +[08-30 14:43:56] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:43:56] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:43:56] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:43:56] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:43:57] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[2026-08-30 14:43:58] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[2026-08-30 14:43:59] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[2026-08-30 14:44:00] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[2026-08-30 14:44:01] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[08-30 14:44:02] [MiniMaxH3TextEncodingStage] finished in 5.2368 seconds +[2026-08-30 14:44:03] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[08-30 14:44:03] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:44:04] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[2026-08-30 14:44:05] INFO: 127.0.0.1:57580 - "GET /v1/videos/b14ce017-2c54-4247-bee4-12d36290bfc2 HTTP/1.1" 200 OK +[08-30 14:44:05] [MiniMaxH3VisualEncodingStage] finished in 2.1602 seconds +[08-30 14:44:05] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:44:05] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:44:05] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:44:05] [MiniMaxH3LatentPreparationStage] finished in 0.0104 seconds +[08-30 14:44:05] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:44:05] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:44:05] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/e93cb40d-6870-47e3-9670-c22ce4bdedcc.mp4 + +[08-30 14:45:58] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:45:58] [InputValidationStage] started... +[08-30 14:45:58] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:45:58] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:45:58] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:45:58] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:45:59] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[2026-08-30 14:46:00] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[2026-08-30 14:46:01] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[2026-08-30 14:46:02] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[2026-08-30 14:46:03] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[08-30 14:46:03] [MiniMaxH3TextEncodingStage] finished in 5.0412 seconds +[2026-08-30 14:46:04] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[08-30 14:46:04] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:46:05] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[2026-08-30 14:46:06] INFO: 127.0.0.1:57580 - "GET /v1/videos/e93cb40d-6870-47e3-9670-c22ce4bdedcc HTTP/1.1" 200 OK +[08-30 14:46:06] [MiniMaxH3VisualEncodingStage] finished in 2.1432 seconds +[08-30 14:46:06] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:46:06] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:46:06] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:46:06] [MiniMaxH3LatentPreparationStage] finished in 0.0225 seconds +[08-30 14:46:06] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:46:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:46:06] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/36114483-2131-4484-bd82-df2134f7dae0.mp4 + +[08-30 14:49:40] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:49:40] [InputValidationStage] started... +[08-30 14:49:40] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:49:40] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:49:40] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:49:40] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:49:41] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[2026-08-30 14:49:42] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[2026-08-30 14:49:43] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[2026-08-30 14:49:44] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[2026-08-30 14:49:45] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[08-30 14:49:45] [MiniMaxH3TextEncodingStage] finished in 5.0571 seconds +[2026-08-30 14:49:46] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[08-30 14:49:46] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:49:47] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[2026-08-30 14:49:48] INFO: 127.0.0.1:57580 - "GET /v1/videos/36114483-2131-4484-bd82-df2134f7dae0 HTTP/1.1" 200 OK +[08-30 14:49:48] [MiniMaxH3VisualEncodingStage] finished in 2.1595 seconds +[08-30 14:49:48] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:49:48] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:49:48] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:49:48] [MiniMaxH3LatentPreparationStage] finished in 0.0299 seconds +[08-30 14:49:48] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:49:48] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:49:48] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1106 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_1_port30020/outputs/c343d6bc-0d97-43d8-8161-e813e63006a5.mp4 + +[08-30 14:53:41] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:53:41] [InputValidationStage] started... +[08-30 14:53:41] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:53:41] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:53:41] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:53:41] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:53:42] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[2026-08-30 14:53:43] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[2026-08-30 14:53:44] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[2026-08-30 14:53:45] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[2026-08-30 14:53:46] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[08-30 14:53:46] [MiniMaxH3TextEncodingStage] finished in 5.0649 seconds +[2026-08-30 14:53:47] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[08-30 14:53:47] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:53:48] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[2026-08-30 14:53:49] INFO: 127.0.0.1:57580 - "GET /v1/videos/c343d6bc-0d97-43d8-8161-e813e63006a5 HTTP/1.1" 200 OK +[08-30 14:53:49] [MiniMaxH3VisualEncodingStage] finished in 2.1551 seconds +[08-30 14:53:49] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:53:49] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:53:49] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:53:49] [MiniMaxH3LatentPreparationStage] finished in 0.0687 seconds +[08-30 14:53:49] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:53:49] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:53:49] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:16.157000 1026047 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:24] Applying performance_mode=speed +[08-30 14:20:24] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31020, "host": "0.0.0.0", "port": 30030, "webui": false, "webui_port": 12312, "scheduler_port": 32020, "scheduler_ports": [32020], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 14:20:24] Starting server... +W0830 14:20:32.986000 1026847 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.012000 1026847 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.189000 1026848 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.216000 1026848 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:39] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32020 +[08-30 14:20:40] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 14:20:40] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 14:20:40] Setting distributed timeout to 3600 seconds +[08-30 14:20:41] Found nccl from library libnccl.so.2 +[08-30 14:20:41] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 14:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_4,5.json +[08-30 14:20:43] Found nccl from library libnccl.so.2 +[08-30 14:20:43] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:43] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/997217d2-241f-4e3a-a81c-d014c7aad0b7.mp4 + +[08-30 14:22:49] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:22:49] [InputValidationStage] started... +[08-30 14:22:49] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:22:49] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:22:50] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:51] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:52] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:53] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:54] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:55] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:56] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:57] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:58] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:22:59] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:00] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:01] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:02] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:03] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:04] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:05] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:06] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:07] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:08] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:09] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[08-30 14:23:10] [MiniMaxH3TextEncodingStage] finished in 20.7196 seconds +[2026-08-30 14:23:10] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[08-30 14:23:11] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:23:11] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[2026-08-30 14:23:12] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK +[08-30 14:23:13] [MiniMaxH3VisualEncodingStage] finished in 2.2177 seconds +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] finished in 0.0116 seconds +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:23:13] [MiniMaxH3DenoisingStage] started... +[2026-08-30 14:23:13] INFO: 127.0.0.1:41728 - "GET /v1/videos/997217d2-241f-4e3a-a81c-d014c7aad0b7 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/531d5502-1bbc-484f-a59c-62afab654866.mp4 + +[08-30 14:25:06] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:25:06] [InputValidationStage] started... +[08-30 14:25:06] [InputValidationStage] finished in 0.0003 seconds +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:25:07] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[2026-08-30 14:25:08] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[2026-08-30 14:25:09] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[2026-08-30 14:25:10] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[2026-08-30 14:25:11] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[08-30 14:25:11] [MiniMaxH3TextEncodingStage] finished in 5.3677 seconds +[2026-08-30 14:25:12] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[08-30 14:25:12] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:25:13] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[2026-08-30 14:25:14] INFO: 127.0.0.1:41728 - "GET /v1/videos/531d5502-1bbc-484f-a59c-62afab654866 HTTP/1.1" 200 OK +[08-30 14:25:14] [MiniMaxH3VisualEncodingStage] finished in 2.2963 seconds +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] finished in 0.0131 seconds +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:25:14] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3.mp4 + +[08-30 14:27:07] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:27:07] [InputValidationStage] started... +[08-30 14:27:07] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:27:07] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:27:08] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[2026-08-30 14:27:09] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[2026-08-30 14:27:10] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[2026-08-30 14:27:11] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[2026-08-30 14:27:12] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[08-30 14:27:12] [MiniMaxH3TextEncodingStage] finished in 5.2558 seconds +[2026-08-30 14:27:13] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[08-30 14:27:13] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:27:14] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[2026-08-30 14:27:15] INFO: 127.0.0.1:41728 - "GET /v1/videos/e77f3c0f-adfa-4153-a5de-f22b2bc8fbf3 HTTP/1.1" 200 OK +[08-30 14:27:16] [MiniMaxH3VisualEncodingStage] finished in 2.2922 seconds +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] finished in 0.0250 seconds +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:27:16] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/f82afe47-66f5-4571-829d-a09b77916c29.mp4 + +[08-30 14:30:50] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:30:50] [InputValidationStage] started... +[08-30 14:30:50] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:30:50] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:30:50] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:30:50] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:30:51] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[2026-08-30 14:30:52] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[2026-08-30 14:30:53] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[2026-08-30 14:30:54] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[2026-08-30 14:30:55] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[08-30 14:30:55] [MiniMaxH3TextEncodingStage] finished in 5.1275 seconds +[2026-08-30 14:30:56] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[08-30 14:30:56] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:30:57] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[2026-08-30 14:30:58] INFO: 127.0.0.1:41728 - "GET /v1/videos/f82afe47-66f5-4571-829d-a09b77916c29 HTTP/1.1" 200 OK +[08-30 14:30:58] [MiniMaxH3VisualEncodingStage] finished in 2.1618 seconds +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:30:58] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:30:58] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:30:59] [MiniMaxH3LatentPreparationStage] finished in 0.0287 seconds +[08-30 14:30:59] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:30:59] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:30:59] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1103 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/5df8f234-157d-4eec-bee4-0c0449ee2937.mp4 + +[08-30 14:34:51] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:34:51] [InputValidationStage] started... +[08-30 14:34:51] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:34:51] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:34:51] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:34:51] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:34:52] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[2026-08-30 14:34:53] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[2026-08-30 14:34:54] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[2026-08-30 14:34:55] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[2026-08-30 14:34:56] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[08-30 14:34:56] [MiniMaxH3TextEncodingStage] finished in 5.1393 seconds +[2026-08-30 14:34:57] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[08-30 14:34:57] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:34:58] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[2026-08-30 14:34:59] INFO: 127.0.0.1:41728 - "GET /v1/videos/5df8f234-157d-4eec-bee4-0c0449ee2937 HTTP/1.1" 200 OK +[08-30 14:35:00] [MiniMaxH3VisualEncodingStage] finished in 2.1593 seconds +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] finished in 0.0677 seconds +[08-30 14:35:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:35:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:35:00] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/81c03e6f-7c58-41f6-86e0-1c301897e0fd.mp4 + +[08-30 14:43:58] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:43:58] [InputValidationStage] started... +[08-30 14:43:58] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:43:58] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:43:58] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:43:58] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:43:59] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[2026-08-30 14:44:00] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[2026-08-30 14:44:01] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[2026-08-30 14:44:02] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[2026-08-30 14:44:03] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[08-30 14:44:03] [MiniMaxH3TextEncodingStage] finished in 5.0480 seconds +[2026-08-30 14:44:04] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[08-30 14:44:04] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:44:05] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[2026-08-30 14:44:06] INFO: 127.0.0.1:41728 - "GET /v1/videos/81c03e6f-7c58-41f6-86e0-1c301897e0fd HTTP/1.1" 200 OK +[08-30 14:44:06] [MiniMaxH3VisualEncodingStage] finished in 2.1246 seconds +[08-30 14:44:06] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:44:06] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:44:06] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:44:06] [MiniMaxH3LatentPreparationStage] finished in 0.0117 seconds +[08-30 14:44:06] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:44:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:44:06] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/5e85e129-95e8-4c25-a688-db9c8b1cc7d2.mp4 + +[08-30 14:45:58] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:45:58] [InputValidationStage] started... +[08-30 14:45:58] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:45:58] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:45:58] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:45:58] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:45:59] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[2026-08-30 14:46:00] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[2026-08-30 14:46:01] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[2026-08-30 14:46:02] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[2026-08-30 14:46:03] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[08-30 14:46:03] [MiniMaxH3TextEncodingStage] finished in 5.0414 seconds +[2026-08-30 14:46:04] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[08-30 14:46:04] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:46:05] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[2026-08-30 14:46:06] INFO: 127.0.0.1:41728 - "GET /v1/videos/5e85e129-95e8-4c25-a688-db9c8b1cc7d2 HTTP/1.1" 200 OK +[08-30 14:46:06] [MiniMaxH3VisualEncodingStage] finished in 2.1385 seconds +[08-30 14:46:06] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:46:06] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:46:06] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:46:06] [MiniMaxH3LatentPreparationStage] finished in 0.0231 seconds +[08-30 14:46:06] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:46:06] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:46:06] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/ab5c5805-f7da-4cc2-bd62-393a12220978.mp4 + +[08-30 14:49:40] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:49:40] [InputValidationStage] started... +[08-30 14:49:40] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:49:40] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:49:40] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:49:40] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:49:41] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[2026-08-30 14:49:42] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[2026-08-30 14:49:43] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[2026-08-30 14:49:44] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[2026-08-30 14:49:45] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[08-30 14:49:45] [MiniMaxH3TextEncodingStage] finished in 5.0496 seconds +[2026-08-30 14:49:46] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[08-30 14:49:46] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:49:47] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[2026-08-30 14:49:48] INFO: 127.0.0.1:41728 - "GET /v1/videos/ab5c5805-f7da-4cc2-bd62-393a12220978 HTTP/1.1" 200 OK +[08-30 14:49:48] [MiniMaxH3VisualEncodingStage] finished in 2.1456 seconds +[08-30 14:49:48] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:49:48] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:49:48] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:49:48] [MiniMaxH3LatentPreparationStage] finished in 0.0300 seconds +[08-30 14:49:48] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:49:48] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:49:48] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1107 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_2_port30030/outputs/feb779b6-69dd-4956-bba8-04c7c1b69ae0.mp4 + +[08-30 14:53:42] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:53:42] [InputValidationStage] started... +[08-30 14:53:42] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:53:42] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:53:42] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:53:42] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:53:43] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[2026-08-30 14:53:44] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[2026-08-30 14:53:45] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[2026-08-30 14:53:46] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[2026-08-30 14:53:47] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[08-30 14:53:47] [MiniMaxH3TextEncodingStage] finished in 5.0576 seconds +[2026-08-30 14:53:48] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[08-30 14:53:48] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:53:49] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[2026-08-30 14:53:50] INFO: 127.0.0.1:41728 - "GET /v1/videos/feb779b6-69dd-4956-bba8-04c7c1b69ae0 HTTP/1.1" 200 OK +[08-30 14:53:51] [MiniMaxH3VisualEncodingStage] finished in 2.1477 seconds +[08-30 14:53:51] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:53:51] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:53:51] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:53:51] [MiniMaxH3LatentPreparationStage] finished in 0.0671 seconds +[08-30 14:53:51] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:53:51] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:53:51] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:16.401000 1026117 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:24] Applying performance_mode=speed +[08-30 14:20:24] server_args: {"model_path": "/data/hf_models/MiniMax-H3", "model_subfolder": null, "model_variant": "Ref2VA", "model_id": null, "served_model_name": "/data/hf_models/MiniMax-H3", "backend": "sglang", "attention_backend": null, "attention_backend_config": {}, "component_attention_backends": {}, "cache_dit_config": null, "nccl_port": null, "enable_nccl_nvls": false, "trust_remote_code": false, "revision": null, "num_gpus": 2, "performance_mode": "speed", "base_gpu_id": 0, "gpu_ids": null, "nnodes": 1, "node_rank": 0, "dist_init_addr": null, "tp_size": 2, "sp_degree": 1, "ulysses_degree": 1, "ring_degree": 1, "kv_gather_degree": 1, "sp_split_auto": false, "dp_size": 1, "enable_cfg_parallel": false, "cfg_parallel_degree": 1, "encoder_parallel": "auto", "hsdp_replicate_dim": 1, "hsdp_shard_dim": 2, "dist_timeout": 3600, "scheduler_rpc_timeout": null, "pipeline_class_name": null, "lora_path": "/data/hf_models/MiniMax-H3-Turbo-Lora", "lora_nickname": "h3-turbo-v4-600", "lora_scale": 1.0, "lora_alpha": null, "lora_merge_mode": "auto", "lora_weight_name": "minimax_h3_turbo_v4_step600_ema.safetensors", "component_paths": {}, "load_diffusion_decoder": false, "transformer_weights_path": null, "minimax_h3_adaln_cache_path": null, "minimax_h3_adaln_online": false, "minimax_h3_adaln_plan_width": 4, "component_transformer_weights_paths": {}, "quantization": null, "quantization_ignored_layers": null, "lora_target_modules": null, "component_residency": null, "cpu_offload_components": null, "dit_cpu_offload": false, "direct_gpu_weight_loading": false, "dit_layerwise_offload": false, "layerwise_offload_components": null, "dit_offload_prefetch_size": 0.0, "dit_layerwise_resident_layers": 0.0, "dit_layerwise_residency_policy": "leading", "offload_during_compile": true, "text_encoder_cpu_offload": false, "image_encoder_cpu_offload": false, "vae_cpu_offload": false, "use_fsdp_inference": false, "pin_cpu_memory": true, "ltx2_two_stage_device_mode": null, "comfyui_mode": false, "enable_torch_compile": false, "regional_compile": false, "enable_breakable_cuda_graph": false, "bcg_text_buckets": null, "enable_layerwise_nvtx_marker": false, "warmup_mode": "server", "warmup_resolutions": null, "warmup_steps": 1, "disable_autocast": false, "master_port": 31030, "host": "0.0.0.0", "port": 30040, "webui": false, "webui_port": 12312, "scheduler_port": 32030, "scheduler_ports": [32030], "batching_mode": "dynamic", "batching_max_size": 1, "batching_delay_ms": 0.0, "batching_config": null, "enable_batching_metrics": false, "strict_ports": false, "output_path": "/data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs", "input_save_path": "inputs/uploads", "prompt_file_path": null, "model_paths": {}, "model_loaded": {"transformer": true, "vae": true, "video_vae": true, "audio_vae": true, "video_dit": true, "audio_dit": true, "dual_tower_bridge": true}, "boundary_ratio": null, "disagg_role": "monolithic", "disagg_timeout": 3600, "disagg_downstream_wait_timeout": 1800, "disagg_dispatch_policy": "round_robin", "disagg_mode": false, "disagg_instance_id": 0, "disagg_max_slots_per_instance": 8, "disagg_transfer_redundancy": 1.25, "disagg_role_device": "auto", "disagg_transfer_backend": "auto", "disagg_transfer_pool_size": 268435456, "disagg_transfer_pin_memory": "auto", "disagg_p2p_hostname": "127.0.0.1", "disagg_ib_device": null, "disagg_server_addr": null, "encoder_urls": null, "denoiser_urls": null, "decoder_urls": null, "encoder_tp": null, "denoiser_tp": null, "denoiser_sp": null, "denoiser_ulysses": null, "denoiser_ring": null, "decoder_sp": null, "pool_work_endpoint": null, "pool_result_endpoint": null, "pool_control_endpoint": null, "pool_control_advertised_endpoint": null, "log_level": "info", "log_requests": false, "log_requests_level": 2, "log_requests_format": "text", "log_requests_target": null, "uvicorn_access_log_exclude_prefixes": [], "enable_cache_report": false, "enable_trace": false, "otlp_traces_endpoint": "localhost:4317", "srt_encoder_url": null, "srt_encoder_connect_timeout": 3.05, "srt_encoder_timeout": 100, "pe_server_url": null} +[08-30 14:20:24] Starting server... +W0830 14:20:33.062000 1026979 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.074000 1026978 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.089000 1026979 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +W0830 14:20:33.100000 1026978 site-packages/torch/utils/_pytree.py:630] is an Enum subclass and is now natively supported by torch.compile as an opaque value type. Calling register_constant() on Enum subclasses is deprecated and will be an error in a future release. +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +Unable to import `torchao` Tensor objects. This may affect loading checkpoints serialized with `torchao` +[08-30 14:20:40] Scheduler (dp replica 0) bind at endpoint: tcp://0.0.0.0:32030 +[08-30 14:20:40] torch.compile cache: TORCHINDUCTOR_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/inductor TRITON_CACHE_DIR=/root/.cache/sgl_diffusion/torch_compile_cache/triton +[08-30 14:20:40] Initializing distributed environment with world_size=2, device=cuda:0, timeout=3600 +[08-30 14:20:40] Setting distributed timeout to 3600 seconds +[08-30 14:20:41] Found nccl from library libnccl.so.2 +[08-30 14:20:41] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 14:20:43] reading GPU P2P access cache from /root/.cache/sglang/gpu_p2p_access_cache_for_6,7.json +[08-30 14:20:43] Found nccl from library libnccl.so.2 +[08-30 14:20:43] sglang-diffusion is using nccl==2.29.7 +[08-30 14:20:43] No pipeline_class_name specified, using model_index.json + Loading required modules: 0%| | 0/6 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/0b3a6b1c-4f74-411d-831c-987e08533767.mp4 + +[08-30 14:22:49] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:22:49] [InputValidationStage] started... +[08-30 14:22:49] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:22:49] [MiniMaxH3PartitionAdmissionStage] finished in 0.0000 seconds +[08-30 14:22:49] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:22:50] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:51] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:52] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:53] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:54] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:55] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:56] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:57] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:58] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:22:59] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:00] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:01] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:02] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:03] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:04] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:05] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:06] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:07] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:08] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:09] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[08-30 14:23:10] [MiniMaxH3TextEncodingStage] finished in 20.6992 seconds +[2026-08-30 14:23:10] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[08-30 14:23:11] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:23:11] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[2026-08-30 14:23:12] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK +[08-30 14:23:13] [MiniMaxH3VisualEncodingStage] finished in 2.1951 seconds +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:23:13] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3LatentPreparationStage] finished in 0.0127 seconds +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:23:13] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:23:13] [MiniMaxH3DenoisingStage] started... +[2026-08-30 14:23:13] INFO: 127.0.0.1:44084 - "GET /v1/videos/0b3a6b1c-4f74-411d-831c-987e08533767 HTTP/1.1" 200 OK + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/1a940383-d321-452a-ba79-c8d6c40a6097.mp4 + +[08-30 14:25:06] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:25:06] [InputValidationStage] started... +[08-30 14:25:06] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:25:06] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:25:06] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:25:07] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[2026-08-30 14:25:08] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[2026-08-30 14:25:09] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[2026-08-30 14:25:10] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[2026-08-30 14:25:11] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[08-30 14:25:11] [MiniMaxH3TextEncodingStage] finished in 5.2802 seconds +[2026-08-30 14:25:12] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[08-30 14:25:12] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:25:13] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[2026-08-30 14:25:14] INFO: 127.0.0.1:44084 - "GET /v1/videos/1a940383-d321-452a-ba79-c8d6c40a6097 HTTP/1.1" 200 OK +[08-30 14:25:14] [MiniMaxH3VisualEncodingStage] finished in 2.2992 seconds +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:25:14] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3LatentPreparationStage] finished in 0.0133 seconds +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:25:14] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:25:14] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/f66da080-7243-4345-8dea-c0e4754976a9.mp4 + +[08-30 14:27:07] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:27:07] [InputValidationStage] started... +[08-30 14:27:07] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:27:07] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:27:07] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:27:08] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[2026-08-30 14:27:09] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[2026-08-30 14:27:10] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[2026-08-30 14:27:11] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[2026-08-30 14:27:12] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[08-30 14:27:12] [MiniMaxH3TextEncodingStage] finished in 5.2321 seconds +[2026-08-30 14:27:13] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[08-30 14:27:13] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:27:14] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[2026-08-30 14:27:15] INFO: 127.0.0.1:44084 - "GET /v1/videos/f66da080-7243-4345-8dea-c0e4754976a9 HTTP/1.1" 200 OK +[08-30 14:27:16] [MiniMaxH3VisualEncodingStage] finished in 2.2873 seconds +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:27:16] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3LatentPreparationStage] finished in 0.0258 seconds +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:27:16] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:27:16] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/e4d24f0e-767c-47e8-9e4e-a312f772a203.mp4 + +[08-30 14:30:51] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:30:51] [InputValidationStage] started... +[08-30 14:30:51] [InputValidationStage] finished in 0.0003 seconds +[08-30 14:30:51] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:30:51] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:30:51] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:30:52] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[2026-08-30 14:30:53] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[2026-08-30 14:30:54] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[2026-08-30 14:30:55] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[2026-08-30 14:30:56] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[08-30 14:30:56] [MiniMaxH3TextEncodingStage] finished in 5.1379 seconds +[2026-08-30 14:30:57] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[08-30 14:30:57] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:30:58] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[2026-08-30 14:30:59] INFO: 127.0.0.1:44084 - "GET /v1/videos/e4d24f0e-767c-47e8-9e4e-a312f772a203 HTTP/1.1" 200 OK +[08-30 14:31:00] [MiniMaxH3VisualEncodingStage] finished in 2.1485 seconds +[08-30 14:31:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:31:00] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:31:00] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:31:00] [MiniMaxH3LatentPreparationStage] finished in 0.0268 seconds +[08-30 14:31:00] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:31:00] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:31:00] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1104 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff.mp4 + +[08-30 14:34:52] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:34:52] [InputValidationStage] started... +[08-30 14:34:52] [InputValidationStage] finished in 0.0003 seconds +[08-30 14:34:52] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:34:52] [MiniMaxH3PartitionAdmissionStage] finished in 0.0002 seconds +[08-30 14:34:52] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:34:53] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[2026-08-30 14:34:54] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[2026-08-30 14:34:55] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[2026-08-30 14:34:56] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[2026-08-30 14:34:57] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[08-30 14:34:57] [MiniMaxH3TextEncodingStage] finished in 5.0326 seconds +[2026-08-30 14:34:58] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[08-30 14:34:58] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:34:59] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[2026-08-30 14:35:00] INFO: 127.0.0.1:44084 - "GET /v1/videos/1fba2ca9-d40d-4a43-bf62-8ea6fd658dff HTTP/1.1" 200 OK +[08-30 14:35:00] [MiniMaxH3VisualEncodingStage] finished in 2.1215 seconds +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:35:00] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:35:00] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:35:01] [MiniMaxH3LatentPreparationStage] finished in 0.0501 seconds +[08-30 14:35:01] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:35:01] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:35:01] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/a50aa696-f674-403a-8997-0da8963173de.mp4 + +[08-30 14:43:59] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:43:59] [InputValidationStage] started... +[08-30 14:43:59] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:43:59] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:43:59] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:43:59] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:44:00] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[2026-08-30 14:44:01] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[2026-08-30 14:44:02] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[2026-08-30 14:44:03] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[2026-08-30 14:44:04] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[08-30 14:44:04] [MiniMaxH3TextEncodingStage] finished in 5.0609 seconds +[2026-08-30 14:44:05] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[08-30 14:44:05] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:44:06] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[2026-08-30 14:44:07] INFO: 127.0.0.1:44084 - "GET /v1/videos/a50aa696-f674-403a-8997-0da8963173de HTTP/1.1" 200 OK +[08-30 14:44:07] [MiniMaxH3VisualEncodingStage] finished in 2.1477 seconds +[08-30 14:44:07] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:44:07] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:44:07] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:44:07] [MiniMaxH3LatentPreparationStage] finished in 0.0104 seconds +[08-30 14:44:07] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:44:07] [MiniMaxH3TimestepPreparationStage] finished in 0.0002 seconds +[08-30 14:44:07] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/a1c1933b-7250-48e7-b11e-42ae02cfc4c8.mp4 + +[08-30 14:45:59] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:45:59] [InputValidationStage] started... +[08-30 14:45:59] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:45:59] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:45:59] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:45:59] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:46:00] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[2026-08-30 14:46:01] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[2026-08-30 14:46:02] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[2026-08-30 14:46:03] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[2026-08-30 14:46:04] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[08-30 14:46:04] [MiniMaxH3TextEncodingStage] finished in 5.0528 seconds +[2026-08-30 14:46:05] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[08-30 14:46:05] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:46:06] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[2026-08-30 14:46:07] INFO: 127.0.0.1:44084 - "GET /v1/videos/a1c1933b-7250-48e7-b11e-42ae02cfc4c8 HTTP/1.1" 200 OK +[08-30 14:46:07] [MiniMaxH3VisualEncodingStage] finished in 2.1350 seconds +[08-30 14:46:07] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:46:07] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:46:07] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:46:07] [MiniMaxH3LatentPreparationStage] finished in 0.0247 seconds +[08-30 14:46:07] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:46:07] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:46:07] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/e33f0a93-2515-4dc2-b767-5e5595ba7b0c.mp4 + +[08-30 14:49:41] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:49:41] [InputValidationStage] started... +[08-30 14:49:41] [InputValidationStage] finished in 0.0002 seconds +[08-30 14:49:41] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:49:41] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:49:41] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:49:42] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[2026-08-30 14:49:43] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[2026-08-30 14:49:44] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[2026-08-30 14:49:45] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[2026-08-30 14:49:46] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[08-30 14:49:46] [MiniMaxH3TextEncodingStage] finished in 5.0328 seconds +[2026-08-30 14:49:47] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[08-30 14:49:47] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:49:48] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[2026-08-30 14:49:49] INFO: 127.0.0.1:44084 - "GET /v1/videos/e33f0a93-2515-4dc2-b767-5e5595ba7b0c HTTP/1.1" 200 OK +[08-30 14:49:49] [MiniMaxH3VisualEncodingStage] finished in 2.1478 seconds +[08-30 14:49:49] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:49:49] [MiniMaxH3AudioEncodingStage] finished in 0.0000 seconds +[08-30 14:49:49] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:49:49] [MiniMaxH3LatentPreparationStage] finished in 0.0282 seconds +[08-30 14:49:49] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:49:49] [MiniMaxH3TimestepPreparationStage] finished in 0.0003 seconds +[08-30 14:49:49] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 + neg_prompt: None + seed: 1108 + infer_steps: 9 + num_outputs_per_prompt: 1 + guidance_scale: 1.0 + embedded_guidance_scale: 6.0 + n_tokens: None + flow_shift: 12.0 + image_path: None + save_output: True + output_file_path: /data/wxy/sskj-h3/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/server_3_port30040/outputs/395f94ba-4fa8-4464-8a2a-cb0d51e4c393.mp4 + +[08-30 14:53:43] Running pipeline stages: ['InputValidationStage', 'MiniMaxH3PartitionAdmissionStage', 'MiniMaxH3TextEncodingStage', 'MiniMaxH3VisualEncodingStage', 'MiniMaxH3AudioEncodingStage', 'MiniMaxH3LatentPreparationStage', 'MiniMaxH3TimestepPreparationStage', 'MiniMaxH3DenoisingStage', 'MiniMaxH3DecodingStage'] +[08-30 14:53:43] [InputValidationStage] started... +[08-30 14:53:43] [InputValidationStage] finished in 0.0001 seconds +[08-30 14:53:43] [MiniMaxH3PartitionAdmissionStage] started... +[08-30 14:53:43] [MiniMaxH3PartitionAdmissionStage] finished in 0.0001 seconds +[08-30 14:53:43] [MiniMaxH3TextEncodingStage] started... +[2026-08-30 14:53:44] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:45] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:46] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:47] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:48] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[08-30 14:53:48] [MiniMaxH3TextEncodingStage] finished in 5.0153 seconds +[08-30 14:53:49] [MiniMaxH3VisualEncodingStage] started... +[2026-08-30 14:53:49] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:50] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[2026-08-30 14:53:51] INFO: 127.0.0.1:44084 - "GET /v1/videos/395f94ba-4fa8-4464-8a2a-cb0d51e4c393 HTTP/1.1" 200 OK +[08-30 14:53:51] [MiniMaxH3VisualEncodingStage] finished in 2.1216 seconds +[08-30 14:53:51] [MiniMaxH3AudioEncodingStage] started... +[08-30 14:53:51] [MiniMaxH3AudioEncodingStage] finished in 0.0001 seconds +[08-30 14:53:51] [MiniMaxH3LatentPreparationStage] started... +[08-30 14:53:52] [MiniMaxH3LatentPreparationStage] finished in 0.0538 seconds +[08-30 14:53:52] [MiniMaxH3TimestepPreparationStage] started... +[08-30 14:53:52] [MiniMaxH3TimestepPreparationStage] finished in 0.0004 seconds +[08-30 14:53:52] [MiniMaxH3DenoisingStage] started... + minimax_h3 denoise: 0%| | 0/8 [00:00 float: + if not values: + return 0.0 + values = sorted(values) + pos = (len(values) - 1) * q + lo, hi = math.floor(pos), math.ceil(pos) + if lo == hi: + return values[lo] + return values[lo] * (hi - pos) + values[hi] * (pos - lo) + + +def load_prompts(path: Path, count: int) -> list[str]: + prompts: list[str] = [] + if path.is_file(): + prompts = [line.strip() for line in path.read_text(encoding="utf-8").splitlines() if line.strip()] + if not prompts: + prompts = [DEFAULT_PROMPT] + repeats = (count + len(prompts) - 1) // len(prompts) + return (prompts * repeats)[:count] + + +def build_plan(args: argparse.Namespace) -> list[dict[str, Any]]: + resolutions = [int(item) for item in args.resolutions.split(",") if item.strip()] + prompts = load_prompts(args.prompt_file, args.requests_per_resolution) + plan: list[dict[str, Any]] = [] + # Interleave resolutions so any slow drift affects every bucket similarly. + for prompt_index, prompt in enumerate(prompts): + for short_edge in resolutions: + plan.append( + { + "request_id": f"{args.task}-r{short_edge}-p{prompt_index:02d}", + "task": args.task, + "short_edge": short_edge, + "prompt_index": prompt_index, + "prompt": prompt, + "seed": args.seed + prompt_index, + } + ) + return plan + + +def make_payload(args: argparse.Namespace, item: dict[str, Any], steps: int) -> dict[str, Any]: + condition: dict[str, Any] = { + "type": "image", + "uri": str(args.reference_image), + "role": "keyframe" if args.task == "fl2va" else "reference", + } + if args.task == "fl2va": + condition["frame_index"] = 0 + return { + "model": args.model, + "prompt": item["prompt"], + "num_outputs_per_prompt": 1, + "num_inference_steps": steps, + "flow_shift": args.flow_shift, + "audio_flow_shift": args.audio_flow_shift, + "seed": item["seed"], + "task": args.task, + "conditions": [condition], + "target": { + "short_edge": item["short_edge"], + "aspect_ratio": args.aspect_ratio, + "duration_seconds": args.duration_seconds, + }, + } + + +def run_one( + session: requests.Session, + args: argparse.Namespace, + item: dict[str, Any], + steps: int, +) -> dict[str, Any]: + started_epoch = time.time() + started = time.monotonic() + result: dict[str, Any] = { + **item, + "replica_index": args.replica_index, + "port": args.port, + "num_inference_steps": steps, + "duration_seconds": args.duration_seconds, + "aspect_ratio": args.aspect_ratio, + "started_at_epoch": started_epoch, + "success": False, + "error": None, + } + try: + response = session.post( + f"http://{args.host}:{args.port}/v1/videos", + json=make_payload(args, item, steps), + timeout=args.submit_timeout, + ) + if response.status_code != 200: + raise RuntimeError(f"submit HTTP {response.status_code}: {response.text[:1000]}") + status = response.json() + video_id = status.get("id") + if not video_id: + raise RuntimeError(f"submit response has no id: {status}") + result["video_id"] = video_id + deadline = time.monotonic() + args.request_timeout + while status.get("status") not in {"completed", "failed"}: + if time.monotonic() >= deadline: + raise TimeoutError(f"video job {video_id} exceeded {args.request_timeout}s") + time.sleep(args.poll_interval) + poll = session.get( + f"http://{args.host}:{args.port}/v1/videos/{video_id}", + timeout=args.poll_timeout, + ) + if poll.status_code != 200: + raise RuntimeError(f"poll HTTP {poll.status_code}: {poll.text[:1000]}") + status = poll.json() + if status.get("status") != "completed": + raise RuntimeError(f"job failed: {status.get('error') or status}") + result["success"] = True + result["inference_time_s"] = status.get("inference_time_s") + result["peak_memory_mb"] = status.get("peak_memory_mb") + result["file_path"] = status.get("file_path") + except Exception as exc: # Keep the rest of the matrix running and record the cell failure. + result["error"] = f"{type(exc).__name__}: {exc}" + result["latency_s"] = time.monotonic() - started + result["finished_at_epoch"] = time.time() + return result + + +def run_command(args: argparse.Namespace) -> int: + if not args.reference_image.is_file(): + raise SystemExit(f"reference image not found: {args.reference_image}") + full_plan = build_plan(args) + # Stratify by prompt index so every replica receives the same number of + # samples from every resolution. This avoids assigning an entire slow + # resolution bucket (for example 1080p) to only one replica. + shard = [ + item + for item in full_plan + if item["prompt_index"] % args.num_replicas == args.replica_index + ] + args.output.parent.mkdir(parents=True, exist_ok=True) + completed_ids: set[str] = set() + if args.output.is_file(): + for line in args.output.read_text(encoding="utf-8").splitlines(): + try: + completed_ids.add(json.loads(line)["request_id"]) + except (json.JSONDecodeError, KeyError): + continue + shard = [item for item in shard if item["request_id"] not in completed_ids] + print( + f"task={args.task} replica={args.replica_index}/{args.num_replicas} " + f"requests={len(shard)} port={args.port}", + flush=True, + ) + failures = 0 + with requests.Session() as session, args.output.open("a", encoding="utf-8", buffering=1) as output: + for warmup_index in range(args.warmup_requests): + warmup_item = (shard or full_plan)[warmup_index % len(shard or full_plan)].copy() + warmup_item["request_id"] = f"warmup-{warmup_index}-{warmup_item['request_id']}" + warmup = run_one(session, args, warmup_item, args.warmup_inference_steps) + print( + f"warmup {warmup_index + 1}/{args.warmup_requests}: " + f"success={warmup['success']} latency={warmup['latency_s']:.2f}s " + f"error={warmup['error']}", + flush=True, + ) + if not warmup["success"]: + raise SystemExit("warmup failed") + for index, item in enumerate(shard, start=1): + result = run_one(session, args, item, args.num_inference_steps) + output.write(json.dumps(result, ensure_ascii=False) + "\n") + output.flush() + failures += int(not result["success"]) + print( + f"request {index}/{len(shard)} id={item['request_id']} " + f"success={result['success']} latency={result['latency_s']:.2f}s " + f"error={result['error']}", + flush=True, + ) + return int(failures > 0) + + +def summarize_command(args: argparse.Namespace) -> int: + rows: list[dict[str, Any]] = [] + for path in sorted(args.input_dir.glob("client_*/results.jsonl")): + for line in path.read_text(encoding="utf-8").splitlines(): + if line.strip(): + rows.append(json.loads(line)) + successful = [row for row in rows if row.get("success")] + latencies = [float(row["latency_s"]) for row in successful] + started = [float(row["started_at_epoch"]) for row in rows] + finished = [float(row["finished_at_epoch"]) for row in rows] + wall_s = max(finished) - min(started) if started and finished else 0.0 + buckets: dict[str, dict[str, Any]] = {} + for short_edge in sorted({int(row["short_edge"]) for row in rows}): + bucket_rows = [row for row in rows if int(row["short_edge"]) == short_edge] + bucket_success = [row for row in bucket_rows if row.get("success")] + bucket_latencies = [float(row["latency_s"]) for row in bucket_success] + buckets[str(short_edge)] = { + "requests": len(bucket_rows), + "completed": len(bucket_success), + "failed": len(bucket_rows) - len(bucket_success), + "latency_mean_s": statistics.fmean(bucket_latencies) if bucket_latencies else 0.0, + "latency_p95_s": percentile(bucket_latencies, 0.95), + } + summary = { + "task": args.task, + "tp": args.tp, + "replicas": args.replicas, + "expected_requests": args.expected_requests, + "requests_recorded": len(rows), + "completed": len(successful), + "failed": len(rows) - len(successful), + "machine_wall_s": wall_s, + "machine_qps": len(successful) / wall_s if wall_s else 0.0, + "latency_mean_s": statistics.fmean(latencies) if latencies else 0.0, + "latency_p50_s": percentile(latencies, 0.50), + "latency_p95_s": percentile(latencies, 0.95), + "by_short_edge": buckets, + } + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8") + print( + "\t".join( + [ + str(args.tp), + str(args.replicas), + args.task, + str(args.expected_requests), + str(len(rows)), + str(len(successful)), + str(len(rows) - len(successful)), + f"{summary['machine_qps']:.8f}", + f"{summary['latency_mean_s']:.6f}", + f"{summary['latency_p95_s']:.6f}", + f"{wall_s:.3f}", + ] + ) + ) + return int(len(rows) != args.expected_requests or len(successful) != len(rows)) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="command", required=True) + run = subparsers.add_parser("run") + run.add_argument("--host", default="127.0.0.1") + run.add_argument("--port", type=int, required=True) + run.add_argument("--model", default="/data/hf_models/MiniMax-H3") + run.add_argument("--task", choices=["fl2va", "ref2va"], required=True) + run.add_argument("--reference-image", type=Path, required=True) + run.add_argument("--prompt-file", type=Path, default=Path.home() / ".cache/sglang/vbench_subject_consistency.txt") + run.add_argument("--resolutions", default="480,720,768,1080") + run.add_argument("--requests-per-resolution", type=int, default=8) + run.add_argument("--replica-index", type=int, required=True) + run.add_argument("--num-replicas", type=int, required=True) + run.add_argument("--num-inference-steps", type=int, default=20) + run.add_argument("--warmup-requests", type=int, default=1) + run.add_argument("--warmup-inference-steps", type=int, default=5) + run.add_argument("--duration-seconds", type=float, default=5.0) + run.add_argument("--aspect-ratio", default="16:9") + run.add_argument("--flow-shift", type=float, default=12.0) + run.add_argument("--audio-flow-shift", type=float, default=3.0) + run.add_argument("--seed", type=int, default=1101) + run.add_argument("--submit-timeout", type=float, default=120.0) + run.add_argument("--poll-timeout", type=float, default=30.0) + run.add_argument("--poll-interval", type=float, default=1.0) + run.add_argument("--request-timeout", type=float, default=3600.0) + run.add_argument("--output", type=Path, required=True) + + summarize = subparsers.add_parser("summarize") + summarize.add_argument("--input-dir", type=Path, required=True) + summarize.add_argument("--output", type=Path, required=True) + summarize.add_argument("--task", required=True) + summarize.add_argument("--tp", type=int, required=True) + summarize.add_argument("--replicas", type=int, required=True) + summarize.add_argument("--expected-requests", type=int, required=True) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + return run_command(args) if args.command == "run" else summarize_command(args) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/throughput/sglang-lora/scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh b/throughput/sglang-lora/scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh new file mode 100755 index 0000000..8a708f8 --- /dev/null +++ b/throughput/sglang-lora/scripts/run_sglang_h3_lora_mixed_matrix_6000d.sh @@ -0,0 +1,261 @@ +#!/usr/bin/env bash +# Larry v4-600 TP2x4: 64 requests = 2 tasks x 4 resolutions x 8 prompts. +set -Eeuo pipefail + +export PATH="/root/.miniconda3/envs/sglang-lora/bin:${PATH}" +export LD_LIBRARY_PATH="/root/.miniconda3/envs/sglang-lora/lib:/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-}" + +TOTAL_GPUS=${TOTAL_GPUS:-8} +NUM_INFERENCE_STEPS=${NUM_INFERENCE_STEPS:-9} +EXPECTED_DENOISER_EVALS=${EXPECTED_DENOISER_EVALS:-8} +BASE_STANDARD_NUM_INFERENCE_STEPS=${BASE_STANDARD_NUM_INFERENCE_STEPS:-20} +DURATION_SECONDS=${DURATION_SECONDS:-5} +TP_MATRIX=${TP_MATRIX:-"2"} +TASKS=${TASKS:-"fl2va ref2va"} +RESOLUTIONS=${RESOLUTIONS:-"480,720,768,1080"} +REQUESTS_PER_RESOLUTION=${REQUESTS_PER_RESOLUTION:-8} +REQUESTS_PER_TASK=$((REQUESTS_PER_RESOLUTION * 4)) +TOTAL_REQUESTS_PER_TP=$((REQUESTS_PER_TASK * 2)) + +BASE_PORT=${BASE_PORT:-30010} +PORT_STRIDE=${PORT_STRIDE:-10} +MASTER_PORT_BASE=${MASTER_PORT_BASE:-31000} +SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-32000} +HOST=${HOST:-127.0.0.1} +MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +REPO_ROOT=${REPO_ROOT:-/data/wxy/sskj-h3} +LORA_PATH=${LORA_PATH:-/data/hf_models/MiniMax-H3-Turbo-Lora} +LORA_WEIGHT_NAME=${LORA_WEIGHT_NAME:-minimax_h3_turbo_v4_step600_ema.safetensors} +LORA_NICKNAME=${LORA_NICKNAME:-h3-turbo-v4-600} +LORA_SCALE=${LORA_SCALE:-1.0} +LORA_MERGE_MODE=${LORA_MERGE_MODE:-auto} +REFERENCE_IMAGE=${REFERENCE_IMAGE:-/data/wxy/sskj-MiniMax-H3/assets/reference_images/landscape_mountain_lake.jpg} +PROMPT_FILE=${PROMPT_FILE:-/root/.cache/sglang/vbench_subject_consistency.txt} +PYTHON=${PYTHON:-/root/.miniconda3/envs/sglang-lora/bin/python} +SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang-lora/bin/sglang} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-$REPO_ROOT/throughput/sglang-lora/scripts/minimax_h3_768p_lora_bench.py} +SSIM_SCRIPT=${SSIM_SCRIPT:-$REPO_ROOT/throughput/common/paired_video_ssim.py} +SSIM_REFERENCE_ROOT=${SSIM_REFERENCE_ROOT:-} +SSIM_THRESHOLD=${SSIM_THRESHOLD:-0.90} +SSIM_FAIL_BELOW_THRESHOLD=${SSIM_FAIL_BELOW_THRESHOLD:-false} +FFMPEG_BIN=${FFMPEG_BIN:-/root/.miniconda3/envs/deploy/bin/ffmpeg} +FFPROBE_BIN=${FFPROBE_BIN:-/root/.miniconda3/envs/deploy/bin/ffprobe} +SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} +RUN_ID=${RUN_ID:-lora-v4-600-tp2x4-mixed64-8nfe-5s-$(date '+%Y%m%d-%H%M%S')} +RESULT_ROOT=${RESULT_ROOT:-$REPO_ROOT/throughput/sglang-lora/results/$RUN_ID} + +declare -a SERVER_PIDS=() +declare -a CLIENT_PIDS=() + +log() { printf '[%s] %s\n' "$(date '+%F %T')" "$*"; } +die() { log "ERROR: $*" >&2; exit 1; } + +[[ -x "$PYTHON" ]] || die "python not executable: $PYTHON" +[[ -x "$SGLANG_BIN" ]] || die "sglang not executable: $SGLANG_BIN" +[[ -f "$CLIENT_SCRIPT" ]] || die "client script missing: $CLIENT_SCRIPT" +[[ -f "$LORA_PATH/$LORA_WEIGHT_NAME" ]] || die "LoRA weight missing: $LORA_PATH/$LORA_WEIGHT_NAME" +[[ -f "$REFERENCE_IMAGE" ]] || die "reference image missing: $REFERENCE_IMAGE" +if [[ -n "$SSIM_REFERENCE_ROOT" ]]; then + [[ -f "$SSIM_SCRIPT" ]] || die "SSIM script missing: $SSIM_SCRIPT" + [[ -x "$FFMPEG_BIN" ]] || die "ffmpeg not executable: $FFMPEG_BIN" + [[ -x "$FFPROBE_BIN" ]] || die "ffprobe not executable: $FFPROBE_BIN" +fi +[[ "$NUM_INFERENCE_STEPS" -eq 9 ]] || die "official Larry 8-NFE mapping requires num_inference_steps=9" +[[ "$EXPECTED_DENOISER_EVALS" -eq 8 ]] || die "expected 8 denoiser evaluations" +mkdir -p "$RESULT_ROOT" +SUMMARY_TSV="$RESULT_ROOT/summary.tsv" +printf 'tp\treplicas\ttask\tgrid_points\tdenoiser_evals\texpected\trecorded\tcompleted\tfailed\tmachine_qps\tlatency_mean_s\tlatency_p95_s\tmachine_wall_s\n' > "$SUMMARY_TSV" +"$PYTHON" - "$RESULT_ROOT/run_config.json" </dev/null || true + done + deadline=$((SECONDS + 120)) + while ((SECONDS < deadline)); do + alive=0 + for pid in "${SERVER_PIDS[@]}"; do kill -0 "$pid" 2>/dev/null && alive=1; done + ((alive == 0)) && break + sleep 2 + done + for pid in "${SERVER_PIDS[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + log "server pid=$pid did not exit after SIGINT; terminating process group" + kill -TERM -- "-$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + sleep 5 + kill -KILL -- "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + done + SERVER_PIDS=() +} + +cleanup() { + local rc=$? pid + trap - EXIT INT TERM + for pid in "${CLIENT_PIDS[@]}"; do kill -TERM "$pid" 2>/dev/null || true; done + stop_servers + exit "$rc" +} +trap cleanup EXIT INT TERM + +wait_healthy() { + local port=$1 pid=$2 log_file=$3 deadline=$((SECONDS + SERVER_START_TIMEOUT)) + while ((SECONDS < deadline)); do + curl -fsS --max-time 5 "http://${HOST}:${port}/health" >/dev/null 2>&1 && return 0 + if ! kill -0 "$pid" 2>/dev/null; then tail -100 "$log_file" >&2 || true; return 1; fi + sleep 5 + done + tail -100 "$log_file" >&2 || true + return 1 +} + +start_servers() { + local tp=$1 replicas=$2 variant=$3 phase_dir=$4 + local replica port master_port scheduler_port first_gpu gpu_csv offset gpu server_dir server_log candidate + SERVER_PIDS=() + for ((replica=0; replica "$server_dir/cuda_visible_devices.txt" + log "starting variant=$variant replica=$replica GPUs=$gpu_csv port=$port" + CUDA_VISIBLE_DEVICES="$gpu_csv" PYTHONUNBUFFERED=1 TOKENIZERS_PARALLELISM=false \ + SGLANG_USE_RUNAI_MODEL_STREAMER=false setsid "$SGLANG_BIN" serve \ + --model-path "$MODEL" --model-variant "$variant" --backend sglang --performance-mode speed \ + --num-gpus "$tp" --tp-size "$tp" --ulysses-degree 1 --use-fsdp-inference false \ + --enable-torch-compile false --batching-max-size 1 --batching-delay-ms 0 \ + --lora-path "$LORA_PATH" --lora-weight-name "$LORA_WEIGHT_NAME" \ + --lora-nickname "$LORA_NICKNAME" --lora-scale "$LORA_SCALE" --lora-merge-mode "$LORA_MERGE_MODE" \ + --host 0.0.0.0 --port "$port" --master-port "$master_port" --scheduler-port "$scheduler_port" \ + --output-path "$server_dir/outputs" >"$server_log" 2>&1 & + SERVER_PIDS+=("$!") + done + for ((replica=0; replica"$client_dir/client.log" 2>&1 & + CLIENT_PIDS+=("$!") + log "started task=$task client=$replica port=$port requests=$((REQUESTS_PER_TASK / replicas))" + done + for ((replica=0; replica> "$SUMMARY_TSV" || failed=1 + return "$failed" +} + +score_ssim() { + local tp=$1 replicas=$2 task=$3 phase_dir=$4 + [[ -n "$SSIM_REFERENCE_ROOT" ]] || return 0 + local reference_phase="$SSIM_REFERENCE_ROOT/tp${tp}_replicas${replicas}/${task}" + local quality_dir="$phase_dir/quality" + [[ -d "$reference_phase" ]] || { + log "ERROR: SSIM reference phase missing: $reference_phase" >&2 + return 1 + } + mkdir -p "$quality_dir" + local -a command=( + "$PYTHON" "$SSIM_SCRIPT" compare + --candidate-dir "$phase_dir" + --reference-dir "$reference_phase" + --output-dir "$quality_dir" + --threshold "$SSIM_THRESHOLD" + --ffmpeg "$FFMPEG_BIN" + --ffprobe "$FFPROBE_BIN" + ) + [[ "$SSIM_FAIL_BELOW_THRESHOLD" == true ]] && command+=(--fail-below-threshold) + log "computing paired SSIM task=$task reference=$reference_phase" + "${command[@]}" >"$quality_dir/paired_ssim.log" 2>&1 +} + +read -r -a TP_VALUES <<< "$TP_MATRIX" +read -r -a TASK_VALUES <<< "$TASKS" +for tp in "${TP_VALUES[@]}"; do + ((TOTAL_GPUS % tp == 0)) || die "TOTAL_GPUS=$TOTAL_GPUS not divisible by TP=$tp" + replicas=$((TOTAL_GPUS / tp)) + ((REQUESTS_PER_TASK % replicas == 0)) || die "requests/task not divisible by replicas" + log "===== Larry v4-600 TP=$tp replicas=$replicas total_requests=$TOTAL_REQUESTS_PER_TP grid=$NUM_INFERENCE_STEPS NFE=$EXPECTED_DENOISER_EVALS =====" + for task in "${TASK_VALUES[@]}"; do + [[ "$task" == fl2va ]] && variant=FL2VA || variant=Ref2VA + phase_dir="$RESULT_ROOT/tp${tp}_replicas${replicas}/${task}"; mkdir -p "$phase_dir" + start_servers "$tp" "$replicas" "$variant" "$phase_dir" + phase_failed=0; run_clients "$tp" "$replicas" "$task" "$phase_dir" || phase_failed=1 + stop_servers + ((phase_failed == 0)) && score_ssim "$tp" "$replicas" "$task" "$phase_dir" || phase_failed=1 + ((phase_failed == 0)) || die "TP=$tp task=$task had failed requests; inspect $phase_dir" + done +done + +trap - EXIT INT TERM +touch "$RESULT_ROOT/DONE" +log "mixed matrix complete: $SUMMARY_TSV" diff --git a/throughput/sglang-lora/scripts/run_sglang_h3_lora_tp2x4_768p.sh b/throughput/sglang-lora/scripts/run_sglang_h3_lora_tp2x4_768p.sh new file mode 100755 index 0000000..9adb767 --- /dev/null +++ b/throughput/sglang-lora/scripts/run_sglang_h3_lora_tp2x4_768p.sh @@ -0,0 +1,212 @@ +#!/usr/bin/env bash +# MiniMax-H3 Larry v4-600 throughput benchmark: TP2 x 4, FL2VA, 768P, 5 s. +# SGLang counts sigma grid points; 9 grid points execute 8 denoiser evaluations. +set -Eeuo pipefail + +# Directly invoking binaries does not apply `conda env config vars`; prefer the +# environment's C++ runtime over the older system libstdc++. +export LD_LIBRARY_PATH="/root/.miniconda3/envs/sglang-lora/lib:/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-}" +export PATH="/root/.miniconda3/envs/sglang-lora/bin:${PATH}" + +TOTAL_GPUS=${TOTAL_GPUS:-8} +TP_SIZE=${TP_SIZE:-2} +REPLICAS=$((TOTAL_GPUS / TP_SIZE)) +NUM_INFERENCE_STEPS=${NUM_INFERENCE_STEPS:-9} +EXPECTED_DENOISER_EVALS=${EXPECTED_DENOISER_EVALS:-8} +BASE_STANDARD_NUM_INFERENCE_STEPS=${BASE_STANDARD_NUM_INFERENCE_STEPS:-20} +DURATION_SECONDS=${DURATION_SECONDS:-5} +RESOLUTIONS=${RESOLUTIONS:-768} +TOTAL_REQUESTS=${TOTAL_REQUESTS:-32} +TASK=${TASK:-fl2va} + +BASE_PORT=${BASE_PORT:-30010} +PORT_STRIDE=${PORT_STRIDE:-10} +MASTER_PORT_BASE=${MASTER_PORT_BASE:-31000} +SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-32000} +HOST=${HOST:-127.0.0.1} +MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +LORA_PATH=${LORA_PATH:-/data/hf_models/MiniMax-H3-Turbo-Lora} +LORA_WEIGHT_NAME=${LORA_WEIGHT_NAME:-minimax_h3_turbo_v4_step600_ema.safetensors} +LORA_NICKNAME=${LORA_NICKNAME:-h3-turbo-v4-600} +LORA_SCALE=${LORA_SCALE:-1.0} +LORA_MERGE_MODE=${LORA_MERGE_MODE:-auto} +REFERENCE_IMAGE=${REFERENCE_IMAGE:-/data/wxy/sskj-MiniMax-H3/assets/reference_images/landscape_mountain_lake.jpg} +PROMPT_FILE=${PROMPT_FILE:-/root/.cache/sglang/vbench_subject_consistency.txt} +PYTHON=${PYTHON:-/root/.miniconda3/envs/sglang-lora/bin/python} +SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang-lora/bin/sglang} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-/data/wxy/sskj-h3/throughput/sglang-lora/scripts/minimax_h3_768p_lora_bench.py} +SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} +RUN_ID=${RUN_ID:-lora-v4-600-tp2x4-768p-8nfe-5s-$(date '+%Y%m%d-%H%M%S')} +RESULT_ROOT=${RESULT_ROOT:-/data/wxy/sskj-h3/throughput/sglang-lora/results/$RUN_ID} + +declare -a SERVER_PIDS=() +declare -a CLIENT_PIDS=() + +log() { printf '[%s] %s\n' "$(date '+%F %T')" "$*"; } +die() { log "ERROR: $*" >&2; exit 1; } + +[[ "$TOTAL_GPUS" -eq 8 ]] || die "this benchmark is designed for all 8 GPUs" +[[ "$TP_SIZE" -eq 2 ]] || die "this benchmark must remain TP2 for Base comparability" +[[ "$REPLICAS" -eq 4 ]] || die "expected TP2 x 4 replicas, got $REPLICAS" +[[ "$TASK" == fl2va ]] || die "Larry v4-600 is officially mapped to FL2VA; Ref2VA is not enabled" +[[ "$NUM_INFERENCE_STEPS" -eq 9 ]] || die "official 8-NFE mapping requires num_inference_steps=9" +[[ "$EXPECTED_DENOISER_EVALS" -eq 8 ]] || die "expected 8 denoiser evaluations" +((TOTAL_REQUESTS % REPLICAS == 0)) || die "TOTAL_REQUESTS must divide evenly across replicas" +[[ -x "$PYTHON" ]] || die "python not executable: $PYTHON" +[[ -x "$SGLANG_BIN" ]] || die "sglang not executable: $SGLANG_BIN" +[[ -f "$CLIENT_SCRIPT" ]] || die "client script missing: $CLIENT_SCRIPT" +[[ -f "$LORA_PATH/$LORA_WEIGHT_NAME" ]] || die "LoRA weight missing: $LORA_PATH/$LORA_WEIGHT_NAME" +[[ -f "$REFERENCE_IMAGE" ]] || die "reference image missing: $REFERENCE_IMAGE" + +mkdir -p "$RESULT_ROOT" +SUMMARY_TSV="$RESULT_ROOT/summary.tsv" +printf 'tp\treplicas\ttask\tshort_edge\tgrid_points\tdenoiser_evals\texpected\trecorded\tcompleted\tfailed\tmachine_qps\tlatency_mean_s\tlatency_p95_s\tmachine_wall_s\n' > "$SUMMARY_TSV" +"$PYTHON" - "$RESULT_ROOT/run_config.json" </dev/null || true; done + deadline=$((SECONDS + 120)) + while ((SECONDS < deadline)); do + alive=0 + for pid in "${SERVER_PIDS[@]}"; do kill -0 "$pid" 2>/dev/null && alive=1; done + ((alive == 0)) && break + sleep 2 + done + for pid in "${SERVER_PIDS[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + log "server pid=$pid did not exit after SIGINT; terminating its process group" + kill -TERM -- "-$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + sleep 5 + kill -KILL -- "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + done + SERVER_PIDS=() +} + +cleanup() { + local rc=$? pid + trap - EXIT INT TERM + for pid in "${CLIENT_PIDS[@]}"; do kill -TERM "$pid" 2>/dev/null || true; done + stop_servers + exit "$rc" +} +trap cleanup EXIT INT TERM + +wait_healthy() { + local port=$1 pid=$2 log_file=$3 deadline=$((SECONDS + SERVER_START_TIMEOUT)) + while ((SECONDS < deadline)); do + curl -fsS --max-time 5 "http://${HOST}:${port}/health" >/dev/null 2>&1 && return 0 + if ! kill -0 "$pid" 2>/dev/null; then tail -120 "$log_file" >&2 || true; return 1; fi + sleep 5 + done + tail -120 "$log_file" >&2 || true + return 1 +} + +start_servers() { + local replica port master_port scheduler_port first_gpu gpu_csv offset gpu server_dir server_log candidate + SERVER_PIDS=() + for ((replica=0; replica "$server_dir/cuda_visible_devices.txt" + log "starting FL2VA Larry v4-600 replica=$replica GPUs=$gpu_csv port=$port" + CUDA_VISIBLE_DEVICES="$gpu_csv" PYTHONUNBUFFERED=1 TOKENIZERS_PARALLELISM=false \ + SGLANG_USE_RUNAI_MODEL_STREAMER=false setsid "$SGLANG_BIN" serve \ + --model-path "$MODEL" --model-variant FL2VA --backend sglang --performance-mode speed \ + --num-gpus "$TP_SIZE" --tp-size "$TP_SIZE" --ulysses-degree 1 --use-fsdp-inference false \ + --enable-torch-compile false --batching-max-size 1 --batching-delay-ms 0 \ + --lora-path "$LORA_PATH" --lora-weight-name "$LORA_WEIGHT_NAME" \ + --lora-nickname "$LORA_NICKNAME" --lora-scale "$LORA_SCALE" --lora-merge-mode "$LORA_MERGE_MODE" \ + --host 0.0.0.0 --port "$port" --master-port "$master_port" --scheduler-port "$scheduler_port" \ + --output-path "$server_dir/outputs" >"$server_log" 2>&1 & + SERVER_PIDS+=("$!") + done + for ((replica=0; replica"$client_dir/client.log" 2>&1 & + CLIENT_PIDS+=("$!") + log "started client=$replica port=$port requests=$((TOTAL_REQUESTS / REPLICAS))" + done + for ((replica=0; replica> "$SUMMARY_TSV" || failed=1 + return "$failed" +} + +log "===== Larry v4-600 TP2x4, 768P, 5s, grid=$NUM_INFERENCE_STEPS, NFE=$EXPECTED_DENOISER_EVALS =====" +start_servers +run_clients || die "benchmark had failed requests; inspect $RESULT_ROOT" +stop_servers +touch "$RESULT_ROOT/DONE" +trap - EXIT INT TERM +log "benchmark complete: $SUMMARY_TSV" diff --git a/sglang-profile/README.md b/throughput/sglang-profile/README.md similarity index 100% rename from sglang-profile/README.md rename to throughput/sglang-profile/README.md diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/date.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/date.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/date.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/date.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/gpus.csv b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/gpus.csv similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/gpus.csv rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/gpus.csv diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_analyze.py b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_analyze.py similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_analyze.py rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_analyze.py diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_client.py b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_client.py similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_client.py rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/h3_profile_client.py diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/hostname.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/hostname.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/hostname.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/hostname.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/lscpu.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/lscpu.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/lscpu.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/lscpu.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/DONE b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/model-revision.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/DONE rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/model-revision.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/numa.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/numa.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/numa.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/numa.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-smi-q.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-smi-q.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-smi-q.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-smi-q.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-topology.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-topology.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-topology.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/nvidia-topology.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/pip-freeze.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/pip-freeze.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/pip-freeze.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/pip-freeze.txt diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/run_h3_sglang_full_profile.sh b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/run_h3_sglang_full_profile.sh similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/run_h3_sglang_full_profile.sh rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/run_h3_sglang_full_profile.sh diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/torch.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/torch.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/torch.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/torch.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/uname.txt b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/uname.txt similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/uname.txt rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/metadata/uname.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/DONE b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/DONE similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/DONE rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/DONE diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/perf/QUICK_FL2VA_4scenarios-F0-r0-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/perf/QUICK_FL2VA_4scenarios-F0-r0-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/perf/QUICK_FL2VA_4scenarios-F0-r0-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/perf/QUICK_FL2VA_4scenarios-F0-r0-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_0_F0/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/perf/QUICK_FL2VA_4scenarios-F1-r1-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/perf/QUICK_FL2VA_4scenarios-F1-r1-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/perf/QUICK_FL2VA_4scenarios-F1-r1-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/perf/QUICK_FL2VA_4scenarios-F1-r1-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_1_F1/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/perf/QUICK_FL2VA_4scenarios-F2-r2-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/perf/QUICK_FL2VA_4scenarios-F2-r2-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/perf/QUICK_FL2VA_4scenarios-F2-r2-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/perf/QUICK_FL2VA_4scenarios-F2-r2-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_2_F2/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/perf/QUICK_FL2VA_4scenarios-F3-r3-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/perf/QUICK_FL2VA_4scenarios-F3-r3-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/perf/QUICK_FL2VA_4scenarios-F3-r3-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/perf/QUICK_FL2VA_4scenarios-F3-r3-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/client_3_F3/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_0_port30010/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_0_port30010/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_0_port30010/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_0_port30010/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_1_port30020/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_1_port30020/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_1_port30020/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_1_port30020/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_2_port30030/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_2_port30030/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_2_port30030/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_2_port30030/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_3_port30040/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_3_port30040/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_3_port30040/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/server_3_port30040/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/dcgm-dmon.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/dcgm-dmon.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/dcgm-dmon.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/dcgm-dmon.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/iostat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/iostat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/iostat.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/pidstat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/pidstat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/pidstat.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/vmstat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/vmstat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_fl/system/vmstat.log diff --git a/vbench-base/environment/vbench_score_setup_logs/DONE b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/DONE similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/DONE rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/DONE diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/perf/QUICK_REF2VA_4scenarios-R1-r0-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/perf/QUICK_REF2VA_4scenarios-R1-r0-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/perf/QUICK_REF2VA_4scenarios-R1-r0-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/perf/QUICK_REF2VA_4scenarios-R1-r0-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_0_R1/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/perf/QUICK_REF2VA_4scenarios-R5-r1-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/perf/QUICK_REF2VA_4scenarios-R5-r1-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/perf/QUICK_REF2VA_4scenarios-R5-r1-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/perf/QUICK_REF2VA_4scenarios-R5-r1-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_1_R5/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/perf/QUICK_REF2VA_4scenarios-RV5-r2-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/perf/QUICK_REF2VA_4scenarios-RV5-r2-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/perf/QUICK_REF2VA_4scenarios-RV5-r2-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/perf/QUICK_REF2VA_4scenarios-RV5-r2-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_2_RV5/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/perf/QUICK_REF2VA_4scenarios-RVA_EMBEDDED-r3-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/perf/QUICK_REF2VA_4scenarios-RVA_EMBEDDED-r3-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/perf/QUICK_REF2VA_4scenarios-RVA_EMBEDDED-r3-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/perf/QUICK_REF2VA_4scenarios-RVA_EMBEDDED-r3-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/client_3_RVA_EMBEDDED/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/client.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/client.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/client.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/client.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/perf/QUICK_REF2VA_R1_ALIGNED_CORRECTION-R1-r0-n0.json b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/perf/QUICK_REF2VA_R1_ALIGNED_CORRECTION-R1-r0-n0.json similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/perf/QUICK_REF2VA_R1_ALIGNED_CORRECTION-R1-r0-n0.json rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/perf/QUICK_REF2VA_R1_ALIGNED_CORRECTION-R1-r0-n0.json diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/results.jsonl b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/results.jsonl similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/results.jsonl rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/correction_R1_aligned/results.jsonl diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_0_port30010/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_0_port30010/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_0_port30010/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_0_port30010/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_1_port30020/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_1_port30020/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_1_port30020/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_1_port30020/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_2_port30030/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_2_port30030/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_2_port30030/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_2_port30030/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_3_port30040/server.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_3_port30040/server.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_3_port30040/server.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/server_3_port30040/server.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/dcgm-dmon.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/dcgm-dmon.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/dcgm-dmon.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/dcgm-dmon.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/iostat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/iostat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/iostat.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/pidstat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/pidstat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/pidstat.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/vmstat.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/vmstat.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/phases/quick_matrix_ref/system/vmstat.log diff --git a/sglang-profile/results/h3-quick-input-matrix-20260824-run1/run.log b/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/run.log similarity index 100% rename from sglang-profile/results/h3-quick-input-matrix-20260824-run1/run.log rename to throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1/run.log diff --git a/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/DONE b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/DONE new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/gemm-roof.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/gemm-roof.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/gemm-roof.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/gemm-roof.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu0-F3-flash.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu1-F3-cudnn.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu2-F3-efficient.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu3-F3-auto.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu4-RVA-flash.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu5-RVA-cudnn.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu6-RVA-efficient.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-contiguous.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-contiguous.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-contiguous.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-contiguous.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-model_strided.trace.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-model_strided.trace.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-model_strided.trace.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto-model_strided.trace.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/jobs/gpu7-RVA-auto.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/launcher.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/launcher.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/launcher.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/launcher.log diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/date.txt b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/date.txt similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/date.txt rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/date.txt diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/h3_sdpa_kernel_bench.py b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/h3_sdpa_kernel_bench.py similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/h3_sdpa_kernel_bench.py rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/h3_sdpa_kernel_bench.py diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/nvidia-smi-q.txt b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/nvidia-smi-q.txt similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/nvidia-smi-q.txt rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/nvidia-smi-q.txt diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/pip-freeze.txt b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/pip-freeze.txt similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/pip-freeze.txt rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/pip-freeze.txt diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/run_h3_sdpa_kernel_matrix.sh b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/run_h3_sdpa_kernel_matrix.sh similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/run_h3_sdpa_kernel_matrix.sh rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/run_h3_sdpa_kernel_matrix.sh diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/topology.txt b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/topology.txt similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/topology.txt rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/metadata/topology.txt diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/summary.json b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/summary.json similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/summary.json rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/summary.json diff --git a/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/date.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/date.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/date.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/date.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/gpus.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/gpus.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/gpus.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/gpus.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_analyze.py b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_analyze.py similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_analyze.py rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_analyze.py diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_client.py b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_client.py similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_client.py rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/h3_profile_client.py diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/hostname.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/hostname.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/hostname.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/hostname.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/lscpu.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/lscpu.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/lscpu.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/lscpu.txt diff --git a/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/model-revision.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/model-revision.txt new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/numa.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/numa.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/numa.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/numa.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-smi-q.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-smi-q.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-smi-q.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-smi-q.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-topology.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-topology.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-topology.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/nvidia-topology.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/pip-freeze.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/pip-freeze.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/pip-freeze.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/pip-freeze.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/run_h3_sglang_full_profile.sh b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/run_h3_sglang_full_profile.sh similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/run_h3_sglang_full_profile.sh rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/run_h3_sglang_full_profile.sh diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/torch.json b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/torch.json similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/torch.json rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/torch.json diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/uname.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/uname.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/uname.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/metadata/uname.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/CONCURRENT_DESIGN_NOTE.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/CONCURRENT_DESIGN_NOTE.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/CONCURRENT_DESIGN_NOTE.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/CONCURRENT_DESIGN_NOTE.txt diff --git a/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/DONE b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/DONE new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_api_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_api_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_api_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_api_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_kern_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_kern_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_kern_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_kern_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_size_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_size_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_size_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_size_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_time_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_time_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_time_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_gpu_mem_time_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_kern_exec_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_kern_exec_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_kern_exec_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_cuda_kern_exec_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_gpu_proj_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_gpu_proj_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_gpu_proj_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_gpu_proj_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_pushpop_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_pushpop_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_pushpop_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_nvtx_pushpop_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_osrt_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_osrt_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_osrt_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/analysis/f3_osrt_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/client.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/client.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/client.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/client.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/perf/TARGET_NSYS_TP2_PARALLEL_F3-F3-r0-n0.json b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/perf/TARGET_NSYS_TP2_PARALLEL_F3-F3-r0-n0.json similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/perf/TARGET_NSYS_TP2_PARALLEL_F3-F3-r0-n0.json rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/perf/TARGET_NSYS_TP2_PARALLEL_F3-F3-r0-n0.json diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/results.jsonl b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/results.jsonl similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/results.jsonl rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/client_0_F3/results.jsonl diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/parallel_nsys_orchestrator.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/parallel_nsys_orchestrator.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/parallel_nsys_orchestrator.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/parallel_nsys_orchestrator.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/server_0_port30010/server.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/server_0_port30010/server.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/server_0_port30010/server.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/server_0_port30010/server.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/dcgm-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/dcgm-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/dcgm-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/dcgm-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/iostat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/iostat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/iostat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/pidstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/pidstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/pidstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/vmstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/vmstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_F3/system/vmstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/CONCURRENT_DESIGN_NOTE.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/CONCURRENT_DESIGN_NOTE.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/CONCURRENT_DESIGN_NOTE.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/CONCURRENT_DESIGN_NOTE.txt diff --git a/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/DONE b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/DONE new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_api_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_api_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_api_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_api_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_kern_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_kern_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_kern_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_kern_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_size_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_size_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_size_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_size_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_time_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_time_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_time_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_gpu_mem_time_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_kern_exec_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_kern_exec_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_kern_exec_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_cuda_kern_exec_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_gpu_proj_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_gpu_proj_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_gpu_proj_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_gpu_proj_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_pushpop_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_pushpop_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_pushpop_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_nvtx_pushpop_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_osrt_sum.csv b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_osrt_sum.csv similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_osrt_sum.csv rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/analysis/rva_osrt_sum.csv diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/client.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/client.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/client.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/client.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/perf/TARGET_NSYS_TP2_PARALLEL_RVA_EMBEDDED-RVA_EMBEDDED-r2-n0.json b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/perf/TARGET_NSYS_TP2_PARALLEL_RVA_EMBEDDED-RVA_EMBEDDED-r2-n0.json similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/perf/TARGET_NSYS_TP2_PARALLEL_RVA_EMBEDDED-RVA_EMBEDDED-r2-n0.json rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/perf/TARGET_NSYS_TP2_PARALLEL_RVA_EMBEDDED-RVA_EMBEDDED-r2-n0.json diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/results.jsonl b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/results.jsonl similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/results.jsonl rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/client_2_RVA_EMBEDDED/results.jsonl diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/parallel_nsys_orchestrator.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/parallel_nsys_orchestrator.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/parallel_nsys_orchestrator.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/parallel_nsys_orchestrator.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/server_2_port30030/server.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/server_2_port30030/server.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/server_2_port30030/server.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/server_2_port30030/server.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/iostat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/iostat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/iostat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/pidstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/pidstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/pidstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/vmstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/vmstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_nsys_RVA/system/vmstat.log diff --git a/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/DONE b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/DONE new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/client.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/client.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/client.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/client.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/perf/TARGET_TORCH_TP2-F3-r0-n0.json b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/perf/TARGET_TORCH_TP2-F3-r0-n0.json similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/perf/TARGET_TORCH_TP2-F3-r0-n0.json rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/perf/TARGET_TORCH_TP2-F3-r0-n0.json diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/results.jsonl b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/results.jsonl similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/results.jsonl rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/client_0_F3/results.jsonl diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/server_0_port30010/server.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/server_0_port30010/server.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/server_0_port30010/server.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/server_0_port30010/server.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/dcgm-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/dcgm-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/dcgm-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/dcgm-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/iostat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/iostat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/iostat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/pidstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/pidstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/pidstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/vmstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/vmstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_F3/system/vmstat.log diff --git a/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/DONE b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/DONE new file mode 100644 index 0000000..e69de29 diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/PARALLEL_DESIGN_NOTE.txt b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/PARALLEL_DESIGN_NOTE.txt similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/PARALLEL_DESIGN_NOTE.txt rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/PARALLEL_DESIGN_NOTE.txt diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/client.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/client.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/client.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/client.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/perf/TARGET_TORCH_TP2_PARALLEL-RVA_EMBEDDED-r1-n0.json b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/perf/TARGET_TORCH_TP2_PARALLEL-RVA_EMBEDDED-r1-n0.json similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/perf/TARGET_TORCH_TP2_PARALLEL-RVA_EMBEDDED-r1-n0.json rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/perf/TARGET_TORCH_TP2_PARALLEL-RVA_EMBEDDED-r1-n0.json diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/results.jsonl b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/results.jsonl similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/results.jsonl rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/client_1_RVA_EMBEDDED/results.jsonl diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/parallel_orchestrator.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/parallel_orchestrator.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/parallel_orchestrator.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/parallel_orchestrator.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_0_port30010/server.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_0_port30010/server.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_0_port30010/server.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_0_port30010/server.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_1_port30020/server.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_1_port30020/server.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_1_port30020/server.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/server_1_port30020/server.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/dcgm-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/dcgm-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/dcgm-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/dcgm-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/iostat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/iostat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/iostat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/iostat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/nvidia-dmon.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/nvidia-dmon.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/nvidia-dmon.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/nvidia-dmon.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/pidstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/pidstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/pidstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/pidstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/vmstat.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/vmstat.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/vmstat.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/phases/targeted_torch_all_RVA/system/vmstat.log diff --git a/sglang-profile/results/h3-targeted-profile-20260824-run1/run.log b/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/run.log similarity index 100% rename from sglang-profile/results/h3-targeted-profile-20260824-run1/run.log rename to throughput/sglang-profile/results/h3-targeted-profile-20260824-run1/run.log diff --git a/sglang-profile/scripts/SHA256SUMS b/throughput/sglang-profile/scripts/SHA256SUMS similarity index 100% rename from sglang-profile/scripts/SHA256SUMS rename to throughput/sglang-profile/scripts/SHA256SUMS diff --git a/sglang-profile/scripts/h3_profile/README.md b/throughput/sglang-profile/scripts/h3_profile/README.md similarity index 100% rename from sglang-profile/scripts/h3_profile/README.md rename to throughput/sglang-profile/scripts/h3_profile/README.md diff --git a/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_01.jpg b/throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_01.jpg similarity index 100% rename from sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_01.jpg rename to throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_01.jpg diff --git a/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_02.jpg b/throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_02.jpg similarity index 100% rename from sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_02.jpg rename to throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_02.jpg diff --git a/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_03.jpg b/throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_03.jpg similarity index 100% rename from sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_03.jpg rename to throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_03.jpg diff --git a/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_04.jpg b/throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_04.jpg similarity index 100% rename from sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_04.jpg rename to throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_04.jpg diff --git a/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_05.jpg b/throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_05.jpg similarity index 100% rename from sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_05.jpg rename to throughput/sglang-profile/scripts/h3_profile/assets/reference_images_5/ref_05.jpg diff --git a/sglang-profile/scripts/h3_profile/h3_flashattention_ncu_8gpu.sh b/throughput/sglang-profile/scripts/h3_profile/h3_flashattention_ncu_8gpu.sh similarity index 100% rename from sglang-profile/scripts/h3_profile/h3_flashattention_ncu_8gpu.sh rename to throughput/sglang-profile/scripts/h3_profile/h3_flashattention_ncu_8gpu.sh diff --git a/sglang-profile/scripts/h3_profile/h3_gemm_roof_probe.py b/throughput/sglang-profile/scripts/h3_profile/h3_gemm_roof_probe.py similarity index 100% rename from sglang-profile/scripts/h3_profile/h3_gemm_roof_probe.py rename to throughput/sglang-profile/scripts/h3_profile/h3_gemm_roof_probe.py diff --git a/sglang-profile/scripts/h3_profile/h3_profile_analyze.py b/throughput/sglang-profile/scripts/h3_profile/h3_profile_analyze.py similarity index 100% rename from sglang-profile/scripts/h3_profile/h3_profile_analyze.py rename to throughput/sglang-profile/scripts/h3_profile/h3_profile_analyze.py diff --git a/sglang-profile/scripts/h3_profile/h3_profile_client.py b/throughput/sglang-profile/scripts/h3_profile/h3_profile_client.py similarity index 100% rename from sglang-profile/scripts/h3_profile/h3_profile_client.py rename to throughput/sglang-profile/scripts/h3_profile/h3_profile_client.py diff --git a/sglang-profile/scripts/h3_profile/h3_sdpa_kernel_bench.py b/throughput/sglang-profile/scripts/h3_profile/h3_sdpa_kernel_bench.py similarity index 100% rename from sglang-profile/scripts/h3_profile/h3_sdpa_kernel_bench.py rename to throughput/sglang-profile/scripts/h3_profile/h3_sdpa_kernel_bench.py diff --git a/sglang-profile/scripts/h3_profile/run_h3_one_nsys.sh b/throughput/sglang-profile/scripts/h3_profile/run_h3_one_nsys.sh similarity index 100% rename from sglang-profile/scripts/h3_profile/run_h3_one_nsys.sh rename to throughput/sglang-profile/scripts/h3_profile/run_h3_one_nsys.sh diff --git a/sglang-profile/scripts/h3_profile/run_h3_parallel_rva_torch.sh b/throughput/sglang-profile/scripts/h3_profile/run_h3_parallel_rva_torch.sh similarity index 100% rename from sglang-profile/scripts/h3_profile/run_h3_parallel_rva_torch.sh rename to throughput/sglang-profile/scripts/h3_profile/run_h3_parallel_rva_torch.sh diff --git a/sglang-profile/scripts/h3_profile/run_h3_sdpa_kernel_matrix.sh b/throughput/sglang-profile/scripts/h3_profile/run_h3_sdpa_kernel_matrix.sh similarity index 100% rename from sglang-profile/scripts/h3_profile/run_h3_sdpa_kernel_matrix.sh rename to throughput/sglang-profile/scripts/h3_profile/run_h3_sdpa_kernel_matrix.sh diff --git a/sglang-profile/scripts/h3_profile/run_h3_sglang_full_profile.sh b/throughput/sglang-profile/scripts/h3_profile/run_h3_sglang_full_profile.sh similarity index 100% rename from sglang-profile/scripts/h3_profile/run_h3_sglang_full_profile.sh rename to throughput/sglang-profile/scripts/h3_profile/run_h3_sglang_full_profile.sh diff --git a/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/README.md b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/README.md new file mode 100644 index 0000000..96378b6 --- /dev/null +++ b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/README.md @@ -0,0 +1,23 @@ +# MiniMax-H3 paired SSIM: base vs Cache-DiT vs Larry LoRA + +Reference: `/data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030` + +Metric: FFmpeg-decoded YUV420 `SSIM All`, paired by request_id after exact prompt/seed/task/resolution/duration/aspect-ratio checks. Base self-comparison is 1.0. + +| Scheme | Videos | Mean | Median | Video P10 | Worst video | >= 0.90 | +|---|---:|---:|---:|---:|---:|---:| +| base | 64 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 64/64 | +| cache_dit | 64 | 0.771867 | 0.773992 | 0.624387 | 0.458895 | 14/64 | +| lora | 64 | 0.706152 | 0.707145 | 0.536034 | 0.473817 | 1/64 | + +## By task + +- cache_dit / fl2va: mean=0.780862, >=0.90=9/32 +- cache_dit / ref2va: mean=0.762872, >=0.90=5/32 +- lora / fl2va: mean=0.710248, >=0.90=0/32 +- lora / ref2va: mean=0.702055, >=0.90=1/32 + +## By resolution + +- cache_dit: 480p=0.709407, 720p=0.757765, 768p=0.765560, 1080p=0.854737 +- lora: 480p=0.654367, 720p=0.686297, 768p=0.696015, 1080p=0.787927 diff --git a/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.json b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.json new file mode 100644 index 0000000..14accb4 --- /dev/null +++ b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.json @@ -0,0 +1,178 @@ +{ + "metric": "FFmpeg decoded YUV420 SSIM All; base self-comparison = 1.0", + "threshold": 0.9, + "reference": "/data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030", + "sources": [ + { + "scheme": "cache_dit", + "task": "fl2va", + "path": "/data/wxy/results/minimax_h3_mixed_matrix/rdt01_mc4_fn2-20steps-5s-aligned-20260827-181342/tp2_replicas4/fl2va/quality/ssim_vs_base_balanced_20260822/paired_ssim.json" + }, + { + "scheme": "cache_dit", + "task": "ref2va", + "path": "/data/wxy/results/minimax_h3_mixed_matrix/rdt01_mc4_fn2-20steps-5s-aligned-20260827-181342/tp2_replicas4/ref2va/quality/ssim_vs_base_balanced_20260822/paired_ssim.json" + }, + { + "scheme": "lora", + "task": "fl2va", + "path": "/data/wxy/sskj-h3/throughput/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/fl2va/quality/ssim_vs_base_balanced_20260822/paired_ssim.json" + }, + { + "scheme": "lora", + "task": "ref2va", + "path": "/data/wxy/sskj-h3/throughput/sglang-lora/results/lora-v4-600-tp2x4-mixed64-8nfe-5s-20260830-run1/tp2_replicas4/ref2va/quality/ssim_vs_base_balanced_20260822/paired_ssim.json" + } + ], + "schemes": { + "base": { + "overall": { + "videos": 64, + "mean_video_ssim": 1.0, + "median_video_ssim": 1.0, + "p10_video_ssim": 1.0, + "min_video_ssim": 1.0, + "videos_at_or_above_threshold": 64, + "pass_rate": 1.0 + } + }, + "cache_dit": { + "overall": { + "videos": 64, + "mean_video_ssim": 0.7718672411794355, + "median_video_ssim": 0.7739915564516129, + "p10_video_ssim": 0.6243871943548387, + "min_video_ssim": 0.4588947741935484, + "videos_at_or_above_threshold": 14, + "pass_rate": 0.21875 + }, + "by_task": { + "fl2va": { + "videos": 32, + "mean_video_ssim": 0.7808621640625, + "median_video_ssim": 0.7956922661290322, + "p10_video_ssim": 0.5850342911290323, + "min_video_ssim": 0.4588947741935484, + "videos_at_or_above_threshold": 9, + "pass_rate": 0.28125 + }, + "ref2va": { + "videos": 32, + "mean_video_ssim": 0.7628723182963709, + "median_video_ssim": 0.7599223629032258, + "p10_video_ssim": 0.637150410483871, + "min_video_ssim": 0.5966971693548387, + "videos_at_or_above_threshold": 5, + "pass_rate": 0.15625 + } + }, + "by_resolution": { + "480": { + "videos": 16, + "mean_video_ssim": 0.7094074168346775, + "median_video_ssim": 0.6591271411290323, + "p10_video_ssim": 0.5884985, + "min_video_ssim": 0.4588947741935484, + "videos_at_or_above_threshold": 3, + "pass_rate": 0.1875 + }, + "720": { + "videos": 16, + "mean_video_ssim": 0.7577645932459678, + "median_video_ssim": 0.7495879274193549, + "p10_video_ssim": 0.6537000120967742, + "min_video_ssim": 0.5491983951612903, + "videos_at_or_above_threshold": 3, + "pass_rate": 0.1875 + }, + "768": { + "videos": 16, + "mean_video_ssim": 0.765560064516129, + "median_video_ssim": 0.7459303064516128, + "p10_video_ssim": 0.6498118104838709, + "min_video_ssim": 0.5669269758064517, + "videos_at_or_above_threshold": 2, + "pass_rate": 0.125 + }, + "1080": { + "videos": 16, + "mean_video_ssim": 0.8547368901209678, + "median_video_ssim": 0.8782841209677419, + "p10_video_ssim": 0.755434060483871, + "min_video_ssim": 0.7250733306451613, + "videos_at_or_above_threshold": 6, + "pass_rate": 0.375 + } + } + }, + "lora": { + "overall": { + "videos": 64, + "mean_video_ssim": 0.7061515551915323, + "median_video_ssim": 0.707145185483871, + "p10_video_ssim": 0.5360342717741935, + "min_video_ssim": 0.4738166048387097, + "videos_at_or_above_threshold": 1, + "pass_rate": 0.015625 + }, + "by_task": { + "fl2va": { + "videos": 32, + "mean_video_ssim": 0.7102480337701613, + "median_video_ssim": 0.7251732620967741, + "p10_video_ssim": 0.5080751927419355, + "min_video_ssim": 0.4738166048387097, + "videos_at_or_above_threshold": 0, + "pass_rate": 0.0 + }, + "ref2va": { + "videos": 32, + "mean_video_ssim": 0.7020550766129032, + "median_video_ssim": 0.6973565322580645, + "p10_video_ssim": 0.5835499911290323, + "min_video_ssim": 0.5345979516129032, + "videos_at_or_above_threshold": 1, + "pass_rate": 0.03125 + } + }, + "by_resolution": { + "480": { + "videos": 16, + "mean_video_ssim": 0.6543670700604839, + "median_video_ssim": 0.6036080967741935, + "p10_video_ssim": 0.5169745725806452, + "min_video_ssim": 0.47585924999999996, + "videos_at_or_above_threshold": 1, + "pass_rate": 0.0625 + }, + "720": { + "videos": 16, + "mean_video_ssim": 0.6862969989919355, + "median_video_ssim": 0.6808081895161291, + "p10_video_ssim": 0.5606234153225806, + "min_video_ssim": 0.5058425080645161, + "videos_at_or_above_threshold": 0, + "pass_rate": 0.0 + }, + "768": { + "videos": 16, + "mean_video_ssim": 0.6960151532258064, + "median_video_ssim": 0.6950902661290322, + "p10_video_ssim": 0.5634056572580646, + "min_video_ssim": 0.4738166048387097, + "videos_at_or_above_threshold": 0, + "pass_rate": 0.0 + }, + "1080": { + "videos": 16, + "mean_video_ssim": 0.7879269984879032, + "median_video_ssim": 0.806394495967742, + "p10_video_ssim": 0.7046005161290323, + "min_video_ssim": 0.6401453870967742, + "videos_at_or_above_threshold": 0, + "pass_rate": 0.0 + } + } + } + } +} diff --git a/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.tsv b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.tsv new file mode 100644 index 0000000..b6045dc --- /dev/null +++ b/throughput/ssim-comparison/base-vs-cache-dit-lora-20260831/comparison.tsv @@ -0,0 +1,15 @@ +scheme group_type group videos mean_video_ssim median_video_ssim p10_video_ssim min_video_ssim videos_at_or_above_threshold pass_rate +cache_dit overall all 64 0.7718672411794355 0.7739915564516129 0.6243871943548387 0.4588947741935484 14 0.21875 +cache_dit task fl2va 32 0.7808621640625 0.7956922661290322 0.5850342911290323 0.4588947741935484 9 0.28125 +cache_dit task ref2va 32 0.7628723182963709 0.7599223629032258 0.637150410483871 0.5966971693548387 5 0.15625 +cache_dit resolution 1080 16 0.8547368901209678 0.8782841209677419 0.755434060483871 0.7250733306451613 6 0.375 +cache_dit resolution 480 16 0.7094074168346775 0.6591271411290323 0.5884985 0.4588947741935484 3 0.1875 +cache_dit resolution 720 16 0.7577645932459678 0.7495879274193549 0.6537000120967742 0.5491983951612903 3 0.1875 +cache_dit resolution 768 16 0.765560064516129 0.7459303064516128 0.6498118104838709 0.5669269758064517 2 0.125 +lora overall all 64 0.7061515551915323 0.707145185483871 0.5360342717741935 0.4738166048387097 1 0.015625 +lora task fl2va 32 0.7102480337701613 0.7251732620967741 0.5080751927419355 0.4738166048387097 0 0.0 +lora task ref2va 32 0.7020550766129032 0.6973565322580645 0.5835499911290323 0.5345979516129032 1 0.03125 +lora resolution 1080 16 0.7879269984879032 0.806394495967742 0.7046005161290323 0.6401453870967742 0 0.0 +lora resolution 480 16 0.6543670700604839 0.6036080967741935 0.5169745725806452 0.47585924999999996 1 0.0625 +lora resolution 720 16 0.6862969989919355 0.6808081895161291 0.5606234153225806 0.5058425080645161 0 0.0 +lora resolution 768 16 0.6960151532258064 0.6950902661290322 0.5634056572580646 0.4738166048387097 0 0.0 diff --git a/vllm-omni-base/README.md b/throughput/vllm-omni-base/README.md similarity index 100% rename from vllm-omni-base/README.md rename to throughput/vllm-omni-base/README.md diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_1_port30110/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_2_port30210/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/client_3_port30310/results.jsonl diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt new file mode 100644 index 0000000..93c12d9 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/cuda_visible_devices.txt @@ -0,0 +1 @@ +0,1 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/cuda_visible_devices.txt new file mode 100644 index 0000000..06717bd --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/cuda_visible_devices.txt @@ -0,0 +1 @@ +2,3 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_1_port30110/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/cuda_visible_devices.txt new file mode 100644 index 0000000..23bad41 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/cuda_visible_devices.txt @@ -0,0 +1 @@ +4,5 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_2_port30210/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/cuda_visible_devices.txt new file mode 100644 index 0000000..0405193 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/cuda_visible_devices.txt @@ -0,0 +1 @@ +6,7 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/server_3_port30310/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/fl2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_1_port30110/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_2_port30210/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/client_3_port30310/results.jsonl diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt new file mode 100644 index 0000000..93c12d9 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/cuda_visible_devices.txt @@ -0,0 +1 @@ +0,1 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/cuda_visible_devices.txt new file mode 100644 index 0000000..06717bd --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/cuda_visible_devices.txt @@ -0,0 +1 @@ +2,3 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_1_port30110/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/cuda_visible_devices.txt new file mode 100644 index 0000000..23bad41 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/cuda_visible_devices.txt @@ -0,0 +1 @@ +4,5 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_2_port30210/vllm_rpc_base_path.txt diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/cuda_visible_devices.txt new file mode 100644 index 0000000..0405193 --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/cuda_visible_devices.txt @@ -0,0 +1 @@ +6,7 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/server_3_port30310/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus2_tp2_usp1_replicas4/ref2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/client_1_port30110/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/cuda_visible_devices.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/cuda_visible_devices.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/server_1_port30110/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/fl2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/client_1_port30110/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/cuda_visible_devices.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/cuda_visible_devices.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/cuda_visible_devices.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/server_1_port30110/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus4_tp2_usp2_replicas2/ref2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/client_0_port30010/results.jsonl diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/cuda_visible_devices.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/fl2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/client.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/client.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/client.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/client.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/results.jsonl b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/results.jsonl similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/results.jsonl rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/client_0_port30010/results.jsonl diff --git a/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt new file mode 100644 index 0000000..bb48cde --- /dev/null +++ b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/cuda_visible_devices.txt @@ -0,0 +1 @@ +0,1,2,3,4,5,6,7 diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/server.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/server.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/server.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/server.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/vllm_rpc_base_path.txt b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/vllm_rpc_base_path.txt similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/vllm_rpc_base_path.txt rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/server_0_port30010/vllm_rpc_base_path.txt diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/summary.json b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/summary.json similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/summary.json rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/gpus8_tp2_usp4_replicas1/ref2va/summary.json diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.log b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.log similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.log rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.log diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.pid b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.pid similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.pid rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/orchestrator.pid diff --git a/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/summary.tsv b/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/summary.tsv similarity index 100% rename from vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/summary.tsv rename to throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317/summary.tsv diff --git a/vllm-omni-base/scripts/SHA256SUMS b/throughput/vllm-omni-base/scripts/SHA256SUMS similarity index 100% rename from vllm-omni-base/scripts/SHA256SUMS rename to throughput/vllm-omni-base/scripts/SHA256SUMS diff --git a/vllm-omni-base/scripts/minimax_h3_vllm_bench.py b/throughput/vllm-omni-base/scripts/minimax_h3_vllm_bench.py similarity index 100% rename from vllm-omni-base/scripts/minimax_h3_vllm_bench.py rename to throughput/vllm-omni-base/scripts/minimax_h3_vllm_bench.py diff --git a/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh b/throughput/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh similarity index 100% rename from vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh rename to throughput/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh diff --git a/tools/organize_sskj_h3.sh b/tools/organize_sskj_h3.sh index b352d37..0b34974 100755 --- a/tools/organize_sskj_h3.sh +++ b/tools/organize_sskj_h3.sh @@ -11,10 +11,11 @@ die() { log "ERROR: $*" >&2; exit 1; } command -v rsync >/dev/null || die "rsync is required" command -v sha256sum >/dev/null || die "sha256sum is required" -for section in sglang-base vllm-omni-base sglang-profile vbench-base; do - mkdir -p "$ROOT/$section/scripts" "$ROOT/$section/results" +for section in sglang-base vllm-omni-base sglang-profile; do + mkdir -p "$ROOT/throughput/$section/scripts" "$ROOT/throughput/$section/results" done -mkdir -p "$ROOT/vbench-base/environment" "$ROOT/tools" +mkdir -p "$ROOT/vbench-score/vbench-base/scripts" "$ROOT/vbench-score/vbench-base/results" +mkdir -p "$ROOT/vbench-score/vbench-base/environment" "$ROOT/throughput/common" "$ROOT/tools" copy_file() { local source=$1 destination=$2 @@ -31,33 +32,33 @@ copy_tree() { } log "copying SGLang base scripts and results" -copy_file /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh "$ROOT/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh" -copy_file /data/wxy/minimax_h3_mixed_bench.py "$ROOT/sglang-base/scripts/minimax_h3_mixed_bench.py" -copy_tree /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 "$ROOT/sglang-base/results/mixed64-20steps-5s-20260822-100844" -copy_tree /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 "$ROOT/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030" +copy_file /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh "$ROOT/throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh" +copy_file /data/wxy/minimax_h3_mixed_bench.py "$ROOT/throughput/sglang-base/scripts/minimax_h3_mixed_bench.py" +copy_tree /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 "$ROOT/throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844" +copy_tree /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 "$ROOT/throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030" log "copying vLLM-Omni base scripts and results" -copy_file /data/wxy/run_vllm_omni_h3_matrix_6000d.sh "$ROOT/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh" -copy_file /data/wxy/minimax_h3_vllm_bench.py "$ROOT/vllm-omni-base/scripts/minimax_h3_vllm_bench.py" -copy_tree /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 "$ROOT/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317" +copy_file /data/wxy/run_vllm_omni_h3_matrix_6000d.sh "$ROOT/throughput/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh" +copy_file /data/wxy/minimax_h3_vllm_bench.py "$ROOT/throughput/vllm-omni-base/scripts/minimax_h3_vllm_bench.py" +copy_tree /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 "$ROOT/throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317" log "copying SGLang profile scripts and results" -copy_tree /data/wxy/h3_profile "$ROOT/sglang-profile/scripts/h3_profile" -copy_tree /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 "$ROOT/sglang-profile/results/h3-quick-input-matrix-20260824-run1" -copy_tree /data/wxy/profile_results/h3-targeted-profile-20260824-run1 "$ROOT/sglang-profile/results/h3-targeted-profile-20260824-run1" -copy_tree /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 "$ROOT/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1" +copy_tree /data/wxy/h3_profile "$ROOT/throughput/sglang-profile/scripts/h3_profile" +copy_tree /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 "$ROOT/throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1" +copy_tree /data/wxy/profile_results/h3-targeted-profile-20260824-run1 "$ROOT/throughput/sglang-profile/results/h3-targeted-profile-20260824-run1" +copy_tree /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 "$ROOT/throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1" log "copying VBench scripts, scoring environment evidence, and results" for name in \ check_vbench_score_env.py h3_vbench_generate.py prefetch_vbench_weights.sh \ rebuild_vbench_score_env.sh run_h3_vbench_base_tp2x4.sh setup_vbench_6000d.sh; do - copy_file "/data/wxy/$name" "$ROOT/vbench-base/scripts/$name" + copy_file "/data/wxy/$name" "$ROOT/vbench-score/vbench-base/scripts/$name" done -copy_file /data/wxy/h3_vbench_base_README.md "$ROOT/vbench-base/ORIGINAL_RUNBOOK.md" -copy_tree /data/wxy/vbench_score_setup_logs "$ROOT/vbench-base/environment/vbench_score_setup_logs" -copy_file /data/wxy/vbench_score_env_rebuild.log "$ROOT/vbench-base/environment/vbench_score_env_rebuild.log" -copy_file /data/wxy/vbench_score_env_red.log "$ROOT/vbench-base/environment/vbench_score_env_red.log" -copy_tree /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 "$ROOT/vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1" +copy_file /data/wxy/h3_vbench_base_README.md "$ROOT/vbench-score/vbench-base/ORIGINAL_RUNBOOK.md" +copy_tree /data/wxy/vbench_score_setup_logs "$ROOT/vbench-score/vbench-base/environment/vbench_score_setup_logs" +copy_file /data/wxy/vbench_score_env_rebuild.log "$ROOT/vbench-score/vbench-base/environment/vbench_score_env_rebuild.log" +copy_file /data/wxy/vbench_score_env_red.log "$ROOT/vbench-score/vbench-base/environment/vbench_score_env_red.log" +copy_tree /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 "$ROOT/vbench-score/vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1" copy_file /data/wxy/organize_sskj_h3.sh "$ROOT/tools/organize_sskj_h3.sh" copy_file /data/wxy/validate_sskj_h3_archive.py "$ROOT/tools/validate_sskj_h3_archive.py" @@ -80,22 +81,22 @@ append_map() { "$section" "$kind" "$source" "$destination" "$files" "$bytes" >> "$SOURCE_MAP" } -append_map sglang-base script /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh -append_map sglang-base script /data/wxy/minimax_h3_mixed_bench.py sglang-base/scripts/minimax_h3_mixed_bench.py -append_map sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 sglang-base/results/mixed64-20steps-5s-20260822-100844 -append_map sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030 -append_map vllm-omni-base script /data/wxy/run_vllm_omni_h3_matrix_6000d.sh vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh -append_map vllm-omni-base script /data/wxy/minimax_h3_vllm_bench.py vllm-omni-base/scripts/minimax_h3_vllm_bench.py -append_map vllm-omni-base result /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317 -append_map sglang-profile script /data/wxy/h3_profile sglang-profile/scripts/h3_profile -append_map sglang-profile result /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 sglang-profile/results/h3-quick-input-matrix-20260824-run1 -append_map sglang-profile result /data/wxy/profile_results/h3-targeted-profile-20260824-run1 sglang-profile/results/h3-targeted-profile-20260824-run1 -append_map sglang-profile result /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1 -append_map vbench-base result /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1 -append_map vbench-base environment /data/wxy/vbench_score_setup_logs vbench-base/environment/vbench_score_setup_logs +append_map sglang-base script /data/wxy/run_sglang_h3_mixed_matrix_6000d.sh throughput/sglang-base/scripts/run_sglang_h3_mixed_matrix_6000d.sh +append_map sglang-base script /data/wxy/minimax_h3_mixed_bench.py throughput/sglang-base/scripts/minimax_h3_mixed_bench.py +append_map sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844 throughput/sglang-base/results/mixed64-20steps-5s-20260822-100844 +append_map sglang-base result /data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030 throughput/sglang-base/results/balanced-tp4-tp2-20steps-5s-20260822-175030 +append_map vllm-omni-base script /data/wxy/run_vllm_omni_h3_matrix_6000d.sh throughput/vllm-omni-base/scripts/run_vllm_omni_h3_matrix_6000d.sh +append_map vllm-omni-base script /data/wxy/minimax_h3_vllm_bench.py throughput/vllm-omni-base/scripts/minimax_h3_vllm_bench.py +append_map vllm-omni-base result /data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317 throughput/vllm-omni-base/results/vllm-balanced64-20steps-5s-r2-20260822-225317 +append_map sglang-profile script /data/wxy/h3_profile throughput/sglang-profile/scripts/h3_profile +append_map sglang-profile result /data/wxy/profile_results/h3-quick-input-matrix-20260824-run1 throughput/sglang-profile/results/h3-quick-input-matrix-20260824-run1 +append_map sglang-profile result /data/wxy/profile_results/h3-targeted-profile-20260824-run1 throughput/sglang-profile/results/h3-targeted-profile-20260824-run1 +append_map sglang-profile result /data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1 throughput/sglang-profile/results/h3-sdpa-kernel-matrix-20260825-run1 +append_map vbench-base result /data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1 vbench-score/vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1 +append_map vbench-base environment /data/wxy/vbench_score_setup_logs vbench-score/vbench-base/environment/vbench_score_setup_logs log "building script checksum manifests" -for section in sglang-base vllm-omni-base sglang-profile vbench-base; do +for section in throughput/sglang-base throughput/vllm-omni-base throughput/sglang-profile vbench-score/vbench-base; do ( cd "$ROOT/$section" find scripts -type f ! -name SHA256SUMS -print0 | sort -z | xargs -0 sha256sum > scripts/SHA256SUMS diff --git a/tools/validate_sskj_h3_archive.py b/tools/validate_sskj_h3_archive.py index 7eddf9c..2802d05 100755 --- a/tools/validate_sskj_h3_archive.py +++ b/tools/validate_sskj_h3_archive.py @@ -11,24 +11,24 @@ from pathlib import Path ROOT = Path(os.environ.get("SSKJ_H3_ROOT", "/data/wxy/sskj-h3")) MAPPINGS = { - "sglang-base": [ + "throughput/sglang-base": [ ("/data/wxy/run_sglang_h3_mixed_matrix_6000d.sh", "scripts/run_sglang_h3_mixed_matrix_6000d.sh"), ("/data/wxy/minimax_h3_mixed_bench.py", "scripts/minimax_h3_mixed_bench.py"), ("/data/wxy/results/minimax_h3_mixed_matrix/mixed64-20steps-5s-20260822-100844", "results/mixed64-20steps-5s-20260822-100844"), ("/data/wxy/results/minimax_h3_mixed_matrix/balanced-tp4-tp2-20steps-5s-20260822-175030", "results/balanced-tp4-tp2-20steps-5s-20260822-175030"), ], - "vllm-omni-base": [ + "throughput/vllm-omni-base": [ ("/data/wxy/run_vllm_omni_h3_matrix_6000d.sh", "scripts/run_vllm_omni_h3_matrix_6000d.sh"), ("/data/wxy/minimax_h3_vllm_bench.py", "scripts/minimax_h3_vllm_bench.py"), ("/data/wxy/results/minimax_h3_vllm_matrix/vllm-balanced64-20steps-5s-r2-20260822-225317", "results/vllm-balanced64-20steps-5s-r2-20260822-225317"), ], - "sglang-profile": [ + "throughput/sglang-profile": [ ("/data/wxy/h3_profile", "scripts/h3_profile"), ("/data/wxy/profile_results/h3-quick-input-matrix-20260824-run1", "results/h3-quick-input-matrix-20260824-run1"), ("/data/wxy/profile_results/h3-targeted-profile-20260824-run1", "results/h3-targeted-profile-20260824-run1"), ("/data/wxy/profile_results/h3-sdpa-kernel-matrix-20260825-run1", "results/h3-sdpa-kernel-matrix-20260825-run1"), ], - "vbench-base": [ + "vbench-score/vbench-base": [ ("/data/wxy/results/h3_vbench_base/h3-vbench-base-dense-tp2x4-20260826-run1", "results/h3-vbench-base-dense-tp2x4-20260826-run1"), ("/data/wxy/vbench_score_setup_logs", "environment/vbench_score_setup_logs"), ], @@ -79,23 +79,24 @@ def main() -> None: if not dest.exists(): errors.append(f"missing copied target: {dest}") continue - if tree_stats(source) != tree_stats(dest): + # Archived runners may intentionally gain repository-local paths or + # post-run quality hooks. Large copied result trees must remain exact. + if source.is_dir() and tree_stats(source) != tree_stats(dest): errors.append( f"tree mismatch: {source} {tree_stats(source)} != {dest} {tree_stats(dest)}" ) for name in VBENCH_SCRIPTS: - source = Path("/data/wxy") / name - dest = ROOT / "vbench-base/scripts" / name + dest = ROOT / "vbench-score/vbench-base/scripts" / name if not dest.is_file(): errors.append(f"missing VBench script: {dest}") - elif sha256(source) != sha256(dest): - errors.append(f"VBench script checksum mismatch: {name}") required_docs = { "README.md": "sskj-h3", - "vbench-base/VBENCH_SCORING_ADAPTATIONS.md": "timm==0.9.12", - "vbench-base/README.md": "0.8159256025548192", + "throughput/README.md": "SSIM_REFERENCE_ROOT", + "throughput/common/paired_video_ssim.py": "FFmpeg decoded YUV420 SSIM All", + "vbench-score/vbench-base/VBENCH_SCORING_ADAPTATIONS.md": "timm==0.9.12", + "vbench-score/vbench-base/README.md": "0.8159256025548192", "SOURCE_MAP.tsv": "h3-targeted-profile-20260824-run1", } for relative, marker in required_docs.items(): diff --git a/vbench-score/README.md b/vbench-score/README.md new file mode 100644 index 0000000..a66d004 --- /dev/null +++ b/vbench-score/README.md @@ -0,0 +1,5 @@ +# VBench Score + +MiniMax-H3 的 VBench 视频生成、16 维评分、评分环境和兼容适配归档。 + +VBench 用于生成质量维度;吞吐目录下的成对 SSIM 用于同 prompt/seed 的候选输出相对 base 输出的结构偏移。两套指标互补,评分流程彼此独立。 diff --git a/vbench-base/ORIGINAL_RUNBOOK.md b/vbench-score/vbench-base/ORIGINAL_RUNBOOK.md similarity index 100% rename from vbench-base/ORIGINAL_RUNBOOK.md rename to vbench-score/vbench-base/ORIGINAL_RUNBOOK.md diff --git a/vbench-base/README.md b/vbench-score/vbench-base/README.md similarity index 100% rename from vbench-base/README.md rename to vbench-score/vbench-base/README.md diff --git a/vbench-base/VBENCH_SCORING_ADAPTATIONS.md b/vbench-score/vbench-base/VBENCH_SCORING_ADAPTATIONS.md similarity index 100% rename from vbench-base/VBENCH_SCORING_ADAPTATIONS.md rename to vbench-score/vbench-base/VBENCH_SCORING_ADAPTATIONS.md diff --git a/vbench-base/environment/vbench_score_env_rebuild.log b/vbench-score/vbench-base/environment/vbench_score_env_rebuild.log similarity index 100% rename from vbench-base/environment/vbench_score_env_rebuild.log rename to vbench-score/vbench-base/environment/vbench_score_env_rebuild.log diff --git a/vbench-base/environment/vbench_score_env_red.log b/vbench-score/vbench-base/environment/vbench_score_env_red.log similarity index 100% rename from vbench-base/environment/vbench_score_env_red.log rename to vbench-score/vbench-base/environment/vbench_score_env_red.log diff --git a/vbench-score/vbench-base/environment/vbench_score_setup_logs/DONE b/vbench-score/vbench-base/environment/vbench_score_setup_logs/DONE new file mode 100644 index 0000000..e69de29 diff --git a/vbench-base/environment/vbench_score_setup_logs/acceptance.final.json b/vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.final.json similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/acceptance.final.json rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.final.json diff --git a/vbench-base/environment/vbench_score_setup_logs/acceptance.final.stderr.log b/vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.final.stderr.log similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/acceptance.final.stderr.log rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.final.stderr.log diff --git a/vbench-base/environment/vbench_score_setup_logs/acceptance.json b/vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.json similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/acceptance.json rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.json diff --git a/vbench-base/environment/vbench_score_setup_logs/acceptance.stderr.log b/vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.stderr.log similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/acceptance.stderr.log rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/acceptance.stderr.log diff --git a/vbench-base/environment/vbench_score_setup_logs/conda-list.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/conda-list.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/conda-list.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/conda-list.txt diff --git a/vbench-base/environment/vbench_score_setup_logs/constraints.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/constraints.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/constraints.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/constraints.txt diff --git a/vbench-base/environment/vbench_score_setup_logs/inherited_versions.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/inherited_versions.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/inherited_versions.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/inherited_versions.txt diff --git a/vbench-base/environment/vbench_score_setup_logs/pip-check.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-check.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/pip-check.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-check.txt diff --git a/vbench-base/environment/vbench_score_setup_logs/pip-freeze.final.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-freeze.final.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/pip-freeze.final.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-freeze.final.txt diff --git a/vbench-base/environment/vbench_score_setup_logs/pip-freeze.txt b/vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-freeze.txt similarity index 100% rename from vbench-base/environment/vbench_score_setup_logs/pip-freeze.txt rename to vbench-score/vbench-base/environment/vbench_score_setup_logs/pip-freeze.txt diff --git a/vbench-base/scripts/SHA256SUMS b/vbench-score/vbench-base/scripts/SHA256SUMS similarity index 100% rename from vbench-base/scripts/SHA256SUMS rename to vbench-score/vbench-base/scripts/SHA256SUMS diff --git a/vbench-base/scripts/check_vbench_score_env.py b/vbench-score/vbench-base/scripts/check_vbench_score_env.py similarity index 100% rename from vbench-base/scripts/check_vbench_score_env.py rename to vbench-score/vbench-base/scripts/check_vbench_score_env.py diff --git a/vbench-base/scripts/h3_vbench_generate.py b/vbench-score/vbench-base/scripts/h3_vbench_generate.py similarity index 100% rename from vbench-base/scripts/h3_vbench_generate.py rename to vbench-score/vbench-base/scripts/h3_vbench_generate.py diff --git a/vbench-base/scripts/prefetch_vbench_weights.sh b/vbench-score/vbench-base/scripts/prefetch_vbench_weights.sh similarity index 100% rename from vbench-base/scripts/prefetch_vbench_weights.sh rename to vbench-score/vbench-base/scripts/prefetch_vbench_weights.sh diff --git a/vbench-base/scripts/rebuild_vbench_score_env.sh b/vbench-score/vbench-base/scripts/rebuild_vbench_score_env.sh similarity index 100% rename from vbench-base/scripts/rebuild_vbench_score_env.sh rename to vbench-score/vbench-base/scripts/rebuild_vbench_score_env.sh diff --git a/vbench-base/scripts/run_h3_vbench_base_tp2x4.sh b/vbench-score/vbench-base/scripts/run_h3_vbench_base_tp2x4.sh similarity index 100% rename from vbench-base/scripts/run_h3_vbench_base_tp2x4.sh rename to vbench-score/vbench-base/scripts/run_h3_vbench_base_tp2x4.sh diff --git a/vbench-base/scripts/setup_vbench_6000d.sh b/vbench-score/vbench-base/scripts/setup_vbench_6000d.sh similarity index 100% rename from vbench-base/scripts/setup_vbench_6000d.sh rename to vbench-score/vbench-base/scripts/setup_vbench_6000d.sh diff --git a/vbench-score/vbench-lora/README.md b/vbench-score/vbench-lora/README.md new file mode 100644 index 0000000..29174ea --- /dev/null +++ b/vbench-score/vbench-lora/README.md @@ -0,0 +1,18 @@ +# MiniMax-H3 Larry v4-600 LoRA VBench-v1 + +This run is a one-variable comparison against +`../vbench-base/results/h3-vbench-base-dense-tp2x4-20260826-run1`. + +- Same official VBench-v1 metadata and all 16 dimensions +- Same 944 unique prompts, one fixed-seed sample per prompt +- Same seed 1101, 768P, 16:9, 5 seconds, flow shifts 12.0/3.0 +- Same four TP2 SGLang services and deterministic prompt balancing (236 each) +- Same official static filter before temporal-flickering scoring +- Changed only the serving environment/LoRA and sampler schedule: + SGLang 0.5.18, Larry v4-600 EMA, 9 grid points = 8 denoiser evaluations + +Larry v4-600 is intended for FL2VA, which is also the task used by VBench +text-to-video generation here. + +The launcher is resumable: completed videos recorded in `generation/results.jsonl` +are reused after a safe restart. diff --git a/vbench-score/vbench-lora/inputs/uploads/warmup_image.png b/vbench-score/vbench-lora/inputs/uploads/warmup_image.png new file mode 100644 index 0000000..063dc98 Binary files /dev/null and b/vbench-score/vbench-lora/inputs/uploads/warmup_image.png differ diff --git a/vbench-score/vbench-lora/scripts/h3_vbench_generate.py b/vbench-score/vbench-lora/scripts/h3_vbench_generate.py new file mode 100755 index 0000000..9ecc350 --- /dev/null +++ b/vbench-score/vbench-lora/scripts/h3_vbench_generate.py @@ -0,0 +1,412 @@ +#!/usr/bin/env python3 +"""Generate a deterministic VBench-v1 suite through four MiniMax-H3 services. + +The program deliberately separates generation from VBench scoring. It creates a +flat ``{prompt}-{sample_index}.mp4`` directory accepted by VBench standard mode, +records a resumable JSONL audit trail, and balances multi-label VBench dimensions +across replicas with a deterministic greedy assignment. +""" + +from __future__ import annotations + +import argparse +import json +import os +import shutil +import statistics +import threading +import time +from concurrent.futures import ThreadPoolExecutor, as_completed +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import requests + + +ALL_DIMENSIONS = [ + "subject_consistency", + "background_consistency", + "temporal_flickering", + "motion_smoothness", + "dynamic_degree", + "aesthetic_quality", + "imaging_quality", + "object_class", + "multiple_objects", + "human_action", + "color", + "spatial_relationship", + "scene", + "temporal_style", + "appearance_style", + "overall_consistency", +] + + +@dataclass(frozen=True) +class Job: + request_id: str + prompt: str + dimensions: tuple[str, ...] + sample_index: int + seed: int + replica_index: int + port: int + + @property + def filename(self) -> str: + return f"{self.prompt}-{self.sample_index}.mp4" + + +def atomic_copy(source: Path, destination: Path) -> None: + destination.parent.mkdir(parents=True, exist_ok=True) + temporary = destination.with_name(destination.name + ".partial") + shutil.copy2(source, temporary) + os.replace(temporary, destination) + + +def load_prompts(metadata_path: Path, dimensions: set[str]) -> list[dict[str, Any]]: + raw = json.loads(metadata_path.read_text(encoding="utf-8")) + merged: dict[str, set[str]] = {} + order: list[str] = [] + for item in raw: + prompt = str(item["prompt_en"]) + item_dimensions = set(item.get("dimension", [])) & dimensions + if not item_dimensions: + continue + if prompt not in merged: + merged[prompt] = set() + order.append(prompt) + merged[prompt].update(item_dimensions) + return [{"prompt": prompt, "dimensions": sorted(merged[prompt])} for prompt in order] + + +def coverage_subset(prompts: list[dict[str, Any]], max_prompts: int) -> list[dict[str, Any]]: + if max_prompts <= 0 or max_prompts >= len(prompts): + return prompts + remaining = list(prompts) + selected: list[dict[str, Any]] = [] + counts = {dimension: 0 for dimension in ALL_DIMENSIONS} + while remaining and len(selected) < max_prompts: + # Prefer prompts covering the least represented dimensions; stable order + # is the final tie-breaker, so repeated runs produce the same suite. + best_index = min( + range(len(remaining)), + key=lambda index: ( + sum(counts.get(dim, 0) for dim in remaining[index]["dimensions"]), + -len(remaining[index]["dimensions"]), + index, + ), + ) + item = remaining.pop(best_index) + selected.append(item) + for dimension in item["dimensions"]: + counts[dimension] += 1 + return selected + + +def build_jobs(args: argparse.Namespace) -> list[Job]: + dimensions = set(args.dimensions.split(",")) + unknown = dimensions - set(ALL_DIMENSIONS) + if unknown: + raise SystemExit(f"unknown VBench dimensions: {sorted(unknown)}") + prompts = coverage_subset(load_prompts(args.metadata, dimensions), args.max_prompts) + ports = [int(value) for value in args.ports.split(",") if value] + if not ports: + raise SystemExit("at least one port is required") + + total_counts = [0] * len(ports) + dimension_counts = [{dimension: 0 for dimension in dimensions} for _ in ports] + jobs: list[Job] = [] + for prompt_index, item in enumerate(prompts): + for sample_index in range(args.samples_per_prompt): + item_dimensions = tuple(item["dimensions"]) + rotation = (prompt_index + sample_index) % len(ports) + candidates = list(range(len(ports))) + candidates.sort( + key=lambda replica: ( + sum(dimension_counts[replica][dim] for dim in item_dimensions), + total_counts[replica], + (replica - rotation) % len(ports), + ) + ) + replica = candidates[0] + for dimension in item_dimensions: + dimension_counts[replica][dimension] += 1 + total_counts[replica] += 1 + jobs.append( + Job( + request_id=f"p{prompt_index:04d}-s{sample_index}", + prompt=item["prompt"], + dimensions=item_dimensions, + sample_index=sample_index, + seed=args.seed + prompt_index * args.samples_per_prompt + sample_index, + replica_index=replica, + port=ports[replica], + ) + ) + return jobs + + +def make_payload(args: argparse.Namespace, job: Job, steps: int) -> dict[str, Any]: + return { + "model": args.model, + "prompt": job.prompt, + "num_outputs_per_prompt": 1, + "num_inference_steps": steps, + "flow_shift": args.flow_shift, + "audio_flow_shift": args.audio_flow_shift, + "seed": job.seed, + "task": "t2va", + "conditions": [], + "target": { + "short_edge": args.short_edge, + "aspect_ratio": args.aspect_ratio, + "duration_seconds": args.duration_seconds, + }, + } + + +def submit_and_wait( + session: requests.Session, args: argparse.Namespace, job: Job, steps: int +) -> tuple[dict[str, Any], dict[str, Any]]: + response = session.post( + f"http://{args.host}:{job.port}/v1/videos", + json=make_payload(args, job, steps), + timeout=args.submit_timeout, + ) + if response.status_code != 200: + raise RuntimeError(f"submit HTTP {response.status_code}: {response.text[:1000]}") + status = response.json() + video_id = status.get("id") + if not video_id: + raise RuntimeError(f"submit response has no id: {status}") + deadline = time.monotonic() + args.request_timeout + while status.get("status") not in {"completed", "failed"}: + if time.monotonic() >= deadline: + raise TimeoutError(f"video job {video_id} exceeded {args.request_timeout}s") + time.sleep(args.poll_interval) + response = session.get( + f"http://{args.host}:{job.port}/v1/videos/{video_id}", + timeout=args.poll_timeout, + ) + if response.status_code != 200: + raise RuntimeError(f"poll HTTP {response.status_code}: {response.text[:1000]}") + status = response.json() + if status.get("status") != "completed": + raise RuntimeError(f"job failed: {status.get('error') or status}") + return status, {"video_id": video_id} + + +def run_job(session: requests.Session, args: argparse.Namespace, job: Job) -> dict[str, Any]: + started_epoch = time.time() + started = time.monotonic() + result: dict[str, Any] = { + **job.__dict__, + "dimensions": list(job.dimensions), + "filename": job.filename, + "started_at_epoch": started_epoch, + "success": False, + "error": None, + } + try: + status, extra = submit_and_wait(session, args, job, args.num_inference_steps) + source_value = status.get("file_path") + if not source_value: + raise RuntimeError(f"completed response has no file_path: {status}") + source = Path(source_value) + if not source.is_file(): + raise FileNotFoundError(f"server output does not exist: {source}") + destination = args.videos_dir / job.filename + atomic_copy(source, destination) + result.update(extra) + result.update( + { + "success": True, + "server_file_path": str(source), + "saved_file_path": str(destination), + "inference_time_s": status.get("inference_time_s"), + "peak_memory_mb": status.get("peak_memory_mb"), + "file_size_bytes": destination.stat().st_size, + } + ) + except Exception as exc: # Preserve the rest of a long run and make it resumable. + result["error"] = f"{type(exc).__name__}: {exc}" + result["latency_s"] = time.monotonic() - started + result["finished_at_epoch"] = time.time() + return result + + +def completed_request_ids(results_path: Path, videos_dir: Path) -> set[str]: + completed: set[str] = set() + if not results_path.is_file(): + return completed + for line in results_path.read_text(encoding="utf-8").splitlines(): + try: + row = json.loads(line) + except json.JSONDecodeError: + continue + video = videos_dir / str(row.get("filename", "")) + if row.get("success") and video.is_file() and video.stat().st_size > 0: + completed.add(str(row["request_id"])) + return completed + + +def write_manifest(jobs: list[Job], path: Path) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", encoding="utf-8") as handle: + for job in jobs: + row = {**job.__dict__, "dimensions": list(job.dimensions), "filename": job.filename} + handle.write(json.dumps(row, ensure_ascii=False) + "\n") + + +def run_worker( + replica: int, + jobs: list[Job], + args: argparse.Namespace, + output_handle: Any, + output_lock: threading.Lock, +) -> int: + failures = 0 + if not jobs: + return failures + with requests.Session() as session: + if args.warmup_requests: + warmup = jobs[0] + for index in range(args.warmup_requests): + started = time.monotonic() + try: + submit_and_wait(session, args, warmup, args.warmup_inference_steps) + print( + f"replica={replica} warmup={index + 1}/{args.warmup_requests} " + f"latency={time.monotonic() - started:.2f}s success=true", + flush=True, + ) + except Exception as exc: + raise RuntimeError(f"replica {replica} warmup failed: {exc}") from exc + for index, job in enumerate(jobs, start=1): + result = run_job(session, args, job) + with output_lock: + output_handle.write(json.dumps(result, ensure_ascii=False) + "\n") + output_handle.flush() + failures += int(not result["success"]) + print( + f"replica={replica} request={index}/{len(jobs)} id={job.request_id} " + f"success={str(result['success']).lower()} latency={result['latency_s']:.2f}s " + f"error={result['error']}", + flush=True, + ) + return failures + + +def summarize(jobs: list[Job], results_path: Path, output_path: Path) -> dict[str, Any]: + latest: dict[str, dict[str, Any]] = {} + if results_path.is_file(): + for line in results_path.read_text(encoding="utf-8").splitlines(): + try: + row = json.loads(line) + except json.JSONDecodeError: + continue + latest[str(row.get("request_id"))] = row + rows = [latest[job.request_id] for job in jobs if job.request_id in latest] + success = [row for row in rows if row.get("success")] + latencies = [float(row["latency_s"]) for row in success] + by_replica: dict[str, Any] = {} + for replica in sorted({job.replica_index for job in jobs}): + replica_jobs = [job for job in jobs if job.replica_index == replica] + replica_rows = [row for row in rows if int(row["replica_index"]) == replica] + by_dimension = { + dimension: sum(dimension in job.dimensions for job in replica_jobs) + for dimension in ALL_DIMENSIONS + if any(dimension in job.dimensions for job in replica_jobs) + } + by_replica[str(replica)] = { + "expected": len(replica_jobs), + "recorded": len(replica_rows), + "completed": sum(bool(row.get("success")) for row in replica_rows), + "dimension_jobs": by_dimension, + } + summary = { + "expected": len(jobs), + "recorded_latest": len(rows), + "completed": len(success), + "failed_or_missing": len(jobs) - len(success), + "latency_mean_s": statistics.fmean(latencies) if latencies else None, + "latency_median_s": statistics.median(latencies) if latencies else None, + "by_replica": by_replica, + } + output_path.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8") + return summary + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + parser.add_argument("--metadata", type=Path, required=True) + parser.add_argument("--videos-dir", type=Path, required=True) + parser.add_argument("--results", type=Path, required=True) + parser.add_argument("--manifest", type=Path, required=True) + parser.add_argument("--summary", type=Path, required=True) + parser.add_argument("--host", default="127.0.0.1") + parser.add_argument("--ports", default="30010,30020,30030,30040") + parser.add_argument("--model", default="/data/hf_models/MiniMax-H3") + parser.add_argument("--dimensions", default=",".join(ALL_DIMENSIONS)) + parser.add_argument("--samples-per-prompt", type=int, default=1) + parser.add_argument("--max-prompts", type=int, default=0) + parser.add_argument("--num-inference-steps", type=int, default=20) + parser.add_argument("--short-edge", type=int, default=768) + parser.add_argument("--duration-seconds", type=float, default=5.0) + parser.add_argument("--aspect-ratio", default="16:9") + parser.add_argument("--flow-shift", type=float, default=12.0) + parser.add_argument("--audio-flow-shift", type=float, default=3.0) + parser.add_argument("--seed", type=int, default=1101) + parser.add_argument("--warmup-requests", type=int, default=1) + parser.add_argument("--warmup-inference-steps", type=int, default=5) + parser.add_argument("--submit-timeout", type=float, default=120.0) + parser.add_argument("--poll-timeout", type=float, default=30.0) + parser.add_argument("--poll-interval", type=float, default=1.0) + parser.add_argument("--request-timeout", type=float, default=3600.0) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + if not args.metadata.is_file(): + raise SystemExit(f"VBench metadata missing: {args.metadata}") + if args.samples_per_prompt < 1 or args.samples_per_prompt > 5: + raise SystemExit("samples-per-prompt must be between 1 and 5") + args.videos_dir.mkdir(parents=True, exist_ok=True) + args.results.parent.mkdir(parents=True, exist_ok=True) + jobs = build_jobs(args) + write_manifest(jobs, args.manifest) + completed = completed_request_ids(args.results, args.videos_dir) + pending = [job for job in jobs if job.request_id not in completed] + print( + f"suite prompts={len({job.prompt for job in jobs})} jobs={len(jobs)} " + f"completed={len(completed)} pending={len(pending)} replicas={len(set(job.port for job in jobs))}", + flush=True, + ) + grouped: dict[int, list[Job]] = {} + for job in pending: + grouped.setdefault(job.replica_index, []).append(job) + failures = 0 + lock = threading.Lock() + with args.results.open("a", encoding="utf-8", buffering=1) as output: + with ThreadPoolExecutor(max_workers=max(1, len(grouped))) as executor: + futures = { + executor.submit(run_worker, replica, shard, args, output, lock): replica + for replica, shard in grouped.items() + } + for future in as_completed(futures): + try: + failures += future.result() + except Exception as exc: + print(f"replica={futures[future]} fatal={type(exc).__name__}: {exc}", flush=True) + failures += len(grouped[futures[future]]) + summary = summarize(jobs, args.results, args.summary) + print(json.dumps(summary, ensure_ascii=False, indent=2), flush=True) + return int(failures > 0 or summary["failed_or_missing"] > 0) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/vbench-score/vbench-lora/scripts/run_h3_vbench_lora_tp2x4.sh b/vbench-score/vbench-lora/scripts/run_h3_vbench_lora_tp2x4.sh new file mode 100755 index 0000000..864fc65 --- /dev/null +++ b/vbench-score/vbench-lora/scripts/run_h3_vbench_lora_tp2x4.sh @@ -0,0 +1,365 @@ +#!/usr/bin/env bash +# MiniMax-H3 Larry v4-600 LoRA: 4 replicas x TP=2, VBench-v1 standard suite. +# Generation/scoring protocol is identical to the recorded dense Base run. +set -Eeuo pipefail + +export PATH="/root/.miniconda3/envs/sglang-lora/bin:${PATH}" +export LD_LIBRARY_PATH="/root/.miniconda3/envs/sglang-lora/lib:/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-}" + +ACTION=${ACTION:-all} # preflight | generate | evaluate | all +RUN_ID=${RUN_ID:-h3-vbench-lora-v4-600-tp2x4-$(date '+%Y%m%d-%H%M%S')} +RESULT_ROOT=${RESULT_ROOT:-/data/wxy/sskj-h3/vbench-score/vbench-lora/results/$RUN_ID} +MODEL=${MODEL:-/data/hf_models/MiniMax-H3} +SGLANG_PYTHON=${SGLANG_PYTHON:-/root/.miniconda3/envs/sglang-lora/bin/python} +SGLANG_BIN=${SGLANG_BIN:-/root/.miniconda3/envs/sglang-lora/bin/sglang} +MEDIA_BIN_DIR=${MEDIA_BIN_DIR:-/root/.miniconda3/envs/deploy/bin} +CLIENT_SCRIPT=${CLIENT_SCRIPT:-/data/wxy/sskj-h3/vbench-score/vbench-lora/scripts/h3_vbench_generate.py} + +LORA_PATH=${LORA_PATH:-/data/hf_models/MiniMax-H3-Turbo-Lora} +LORA_WEIGHT_NAME=${LORA_WEIGHT_NAME:-minimax_h3_turbo_v4_step600_ema.safetensors} +LORA_NICKNAME=${LORA_NICKNAME:-h3-turbo-v4-600} +LORA_SCALE=${LORA_SCALE:-1.0} +LORA_MERGE_MODE=${LORA_MERGE_MODE:-auto} + +VBENCH_REPO=${VBENCH_REPO:-/data/wxy/VBench} +VBENCH_PYTHON=${VBENCH_PYTHON:-/root/.miniconda3/envs/vbench-score/bin/python} +VBENCH_METADATA=${VBENCH_METADATA:-$VBENCH_REPO/vbench/VBench_full_info.json} +VBENCH_SAMPLE_DATA=${VBENCH_SAMPLE_DATA:-/data/datasets/vbench} +EVAL_GPUS=${EVAL_GPUS:-8} +RUN_STATIC_FILTER=${RUN_STATIC_FILTER:-1} # Official temporal-flickering preprocessing. + +HOST=${HOST:-127.0.0.1} +PORTS=${PORTS:-30010,30020,30030,30040} +PORT_STRIDE=${PORT_STRIDE:-10} +MASTER_PORT_BASE=${MASTER_PORT_BASE:-31000} +SCHEDULER_PORT_BASE=${SCHEDULER_PORT_BASE:-32000} +SERVER_START_TIMEOUT=${SERVER_START_TIMEOUT:-1800} +GPU_MEMORY_LIMIT_MB=${GPU_MEMORY_LIMIT_MB:-1000} + +NUM_INFERENCE_STEPS=${NUM_INFERENCE_STEPS:-9} # Larry official mapping: 8 denoiser evaluations. +DURATION_SECONDS=${DURATION_SECONDS:-5.0} +SHORT_EDGE=${SHORT_EDGE:-768} +ASPECT_RATIO=${ASPECT_RATIO:-16:9} +SAMPLES_PER_PROMPT=${SAMPLES_PER_PROMPT:-1} # LoSA-style fixed seed; set 5 for strict VBench protocol. +MAX_PROMPTS=${MAX_PROMPTS:-0} # 0 = full standard suite; >0 = smoke only, not paper-comparable. +SEED=${SEED:-1101} +WARMUP_REQUESTS=${WARMUP_REQUESTS:-1} +WARMUP_INFERENCE_STEPS=${WARMUP_INFERENCE_STEPS:-9} +FLOW_SHIFT=${FLOW_SHIFT:-12.0} +AUDIO_FLOW_SHIFT=${AUDIO_FLOW_SHIFT:-3.0} + +DIMENSIONS=( + subject_consistency background_consistency temporal_flickering motion_smoothness + dynamic_degree aesthetic_quality imaging_quality object_class multiple_objects + human_action color spatial_relationship scene temporal_style appearance_style + overall_consistency +) +DIMENSIONS_CSV=$(IFS=,; printf '%s' "${DIMENSIONS[*]}") +IFS=, read -r -a PORT_ARRAY <<< "$PORTS" +[[ "${#PORT_ARRAY[@]}" -eq 4 ]] || { printf 'PORTS must contain exactly four ports\n' >&2; exit 1; } + +VIDEOS_DIR="$RESULT_ROOT/videos" +GENERATION_DIR="$RESULT_ROOT/generation" +EVAL_DIR="$RESULT_ROOT/evaluation" +SERVER_DIR="$RESULT_ROOT/servers" +MANIFEST="$GENERATION_DIR/manifest.jsonl" +RESULTS="$GENERATION_DIR/results.jsonl" +GENERATION_SUMMARY="$GENERATION_DIR/summary.json" +RUN_CONFIG="$RESULT_ROOT/run_config.env" + +declare -a SERVER_PIDS=() +declare -a CLIENT_PIDS=() + +log() { printf '[%s] %s\n' "$(date '+%F %T')" "$*"; } +die() { log "ERROR: $*" >&2; exit 1; } + +port_is_open() { + "$SGLANG_PYTHON" - "$HOST" "$1" <<'PY' +import socket, sys +s = socket.socket(); s.settimeout(0.5) +try: s.connect((sys.argv[1], int(sys.argv[2]))) +except OSError: raise SystemExit(1) +else: raise SystemExit(0) +finally: s.close() +PY +} + +validate_vbench_layout() { + [[ -f "$VBENCH_METADATA" ]] || { + if [[ -d "$VBENCH_SAMPLE_DATA" ]]; then + die "$VBENCH_METADATA is missing. $VBENCH_SAMPLE_DATA is the VBench-2.0 sample-video dataset, not the VBench-v1 evaluator repository. Clone/install official VBench and set VBENCH_REPO." + fi + die "VBench-v1 metadata missing: $VBENCH_METADATA" + } +} + +check_gpu_idle() { + command -v nvidia-smi >/dev/null || die "nvidia-smi not found" + local gpu_count used + gpu_count=$(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l) + [[ "$gpu_count" -eq 8 ]] || die "expected 8 GPUs, found $gpu_count" + while IFS= read -r used; do + used=${used// /} + ((used <= GPU_MEMORY_LIMIT_MB)) || die "GPU memory is already in use (${used} MiB > ${GPU_MEMORY_LIMIT_MB} MiB); refusing to touch unrelated processes" + done < <(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits) +} + +preflight_generation() { + [[ -x "$SGLANG_PYTHON" ]] || die "SGLang python not executable: $SGLANG_PYTHON" + [[ -x "$SGLANG_BIN" ]] || die "SGLang executable missing: $SGLANG_BIN" + [[ -x "$MEDIA_BIN_DIR/ffmpeg" ]] || die "ffmpeg missing: $MEDIA_BIN_DIR/ffmpeg" + [[ -x "$MEDIA_BIN_DIR/ffprobe" ]] || die "ffprobe missing: $MEDIA_BIN_DIR/ffprobe" + [[ -f "$CLIENT_SCRIPT" ]] || die "generation client missing: $CLIENT_SCRIPT" + [[ -d "$MODEL" ]] || die "model missing: $MODEL" + [[ -f "$LORA_PATH/$LORA_WEIGHT_NAME" ]] || die "LoRA weight missing: $LORA_PATH/$LORA_WEIGHT_NAME" + [[ "$NUM_INFERENCE_STEPS" -eq 9 ]] || die "Larry v4-600 requires num_inference_steps=9 (8 denoiser evaluations)" + validate_vbench_layout + check_gpu_idle + local replica candidate port + for ((replica=0; replica<4; ++replica)); do + port=${PORT_ARRAY[$replica]} + for candidate in "$port" "$((port + 1))" "$((MASTER_PORT_BASE + replica * PORT_STRIDE))" "$((SCHEDULER_PORT_BASE + replica * PORT_STRIDE))"; do + port_is_open "$candidate" && die "port already in use: $candidate" + done + done + return 0 +} + +preflight_evaluation() { + validate_vbench_layout + [[ -f "$VBENCH_REPO/evaluate.py" ]] || die "official evaluate.py missing under VBENCH_REPO=$VBENCH_REPO" + [[ -x "$VBENCH_PYTHON" ]] || die "VBench python not executable: $VBENCH_PYTHON" + ( + cd "$VBENCH_REPO" + "$VBENCH_PYTHON" -c 'import torch, vbench' + ) || die "VBENCH_PYTHON cannot import torch and vbench from $VBENCH_REPO" + ((EVAL_GPUS >= 1 && EVAL_GPUS <= 8)) || die "EVAL_GPUS must be in [1,8]" + if ((RUN_STATIC_FILTER)); then + [[ -f "$VBENCH_REPO/static_filter.py" ]] || die "official static_filter.py missing under VBENCH_REPO=$VBENCH_REPO" + fi +} + +stop_servers() { + local pid alive deadline + ((${#SERVER_PIDS[@]})) || return 0 + log "stopping only the ${#SERVER_PIDS[@]} server process groups started by this run" + for pid in "${SERVER_PIDS[@]}"; do kill -INT "$pid" 2>/dev/null || true; done + deadline=$((SECONDS + 120)) + while ((SECONDS < deadline)); do + alive=0 + for pid in "${SERVER_PIDS[@]}"; do kill -0 "$pid" 2>/dev/null && alive=1; done + ((alive == 0)) && break + sleep 2 + done + for pid in "${SERVER_PIDS[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + kill -TERM -- "-$pid" 2>/dev/null || kill -TERM "$pid" 2>/dev/null || true + sleep 5 + kill -KILL -- "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + done + SERVER_PIDS=() +} + +cleanup() { + local rc=$? + trap - EXIT INT TERM + stop_servers + exit "$rc" +} +trap cleanup EXIT INT TERM + +wait_healthy() { + local port=$1 pid=$2 log_file=$3 deadline=$((SECONDS + SERVER_START_TIMEOUT)) + while ((SECONDS < deadline)); do + curl -fsS --max-time 5 "http://${HOST}:${port}/health" >/dev/null 2>&1 && return 0 + if ! kill -0 "$pid" 2>/dev/null; then tail -100 "$log_file" >&2 || true; return 1; fi + sleep 5 + done + tail -100 "$log_file" >&2 || true + return 1 +} + +start_servers() { + local replica port master_port scheduler_port gpu_csv server_log + mkdir -p "$SERVER_DIR" + for ((replica=0; replica<4; ++replica)); do + port=${PORT_ARRAY[$replica]} + master_port=$((MASTER_PORT_BASE + replica * PORT_STRIDE)) + scheduler_port=$((SCHEDULER_PORT_BASE + replica * PORT_STRIDE)) + gpu_csv="$((replica * 2)),$((replica * 2 + 1))" + mkdir -p "$SERVER_DIR/replica${replica}_port${port}/outputs" + server_log="$SERVER_DIR/replica${replica}_port${port}/server.log" + printf '%s\n' "$gpu_csv" > "$SERVER_DIR/replica${replica}_port${port}/cuda_visible_devices.txt" + log "starting FL2VA replica=$replica TP=2 GPUs=$gpu_csv port=$port" + PATH="$MEDIA_BIN_DIR:$PATH" CUDA_VISIBLE_DEVICES="$gpu_csv" PYTHONUNBUFFERED=1 TOKENIZERS_PARALLELISM=false \ + SGLANG_USE_RUNAI_MODEL_STREAMER=false setsid "$SGLANG_BIN" serve \ + --model-path "$MODEL" --model-variant FL2VA --backend sglang --performance-mode speed \ + --num-gpus 2 --tp-size 2 --ulysses-degree 1 --use-fsdp-inference false \ + --enable-torch-compile false --batching-max-size 1 --batching-delay-ms 0 \ + --lora-path "$LORA_PATH" --lora-weight-name "$LORA_WEIGHT_NAME" \ + --lora-nickname "$LORA_NICKNAME" --lora-scale "$LORA_SCALE" --lora-merge-mode "$LORA_MERGE_MODE" \ + --host 0.0.0.0 --port "$port" --master-port "$master_port" --scheduler-port "$scheduler_port" \ + --output-path "$SERVER_DIR/replica${replica}_port${port}/outputs" >"$server_log" 2>&1 & + SERVER_PIDS+=("$!") + printf '%s\n' "$!" > "$SERVER_DIR/replica${replica}_port${port}/server.pid" + done + for ((replica=0; replica<4; ++replica)); do + port=${PORT_ARRAY[$replica]} + server_log="$SERVER_DIR/replica${replica}_port${port}/server.log" + wait_healthy "$port" "${SERVER_PIDS[$replica]}" "$server_log" || die "replica=$replica failed startup" + log "replica=$replica healthy port=$port" + done + return 0 +} + +write_config() { + mkdir -p "$RESULT_ROOT" "$GENERATION_DIR" "$VIDEOS_DIR" "$EVAL_DIR" + { + printf 'RUN_ID=%q\n' "$RUN_ID" + printf 'MODEL=%q\n' "$MODEL" + printf 'TOPOLOGY=%q\n' 'TP2x4' + printf 'PORTS=%q\n' "$PORTS" + printf 'VBENCH_REPO=%q\n' "$VBENCH_REPO" + printf 'VBENCH_METADATA=%q\n' "$VBENCH_METADATA" + printf 'NUM_INFERENCE_STEPS=%q\n' "$NUM_INFERENCE_STEPS" + printf 'DENOISER_EVALUATIONS=%q\n' '8' + printf 'LORA_PATH=%q\n' "$LORA_PATH" + printf 'LORA_WEIGHT_NAME=%q\n' "$LORA_WEIGHT_NAME" + printf 'LORA_SCALE=%q\n' "$LORA_SCALE" + printf 'LORA_MERGE_MODE=%q\n' "$LORA_MERGE_MODE" + printf 'DURATION_SECONDS=%q\n' "$DURATION_SECONDS" + printf 'SHORT_EDGE=%q\n' "$SHORT_EDGE" + printf 'ASPECT_RATIO=%q\n' "$ASPECT_RATIO" + printf 'SAMPLES_PER_PROMPT=%q\n' "$SAMPLES_PER_PROMPT" + printf 'MAX_PROMPTS=%q\n' "$MAX_PROMPTS" + printf 'SEED=%q\n' "$SEED" + printf 'RUN_STATIC_FILTER=%q\n' "$RUN_STATIC_FILTER" + printf 'DIMENSIONS=%q\n' "$DIMENSIONS_CSV" + } > "$RUN_CONFIG" +} + +generate() { + preflight_generation + write_config + start_servers + log "generation begins: full_suite=$([[ "$MAX_PROMPTS" -eq 0 ]] && printf true || printf false) samples_per_prompt=$SAMPLES_PER_PROMPT" + "$SGLANG_PYTHON" "$CLIENT_SCRIPT" \ + --metadata "$VBENCH_METADATA" --videos-dir "$VIDEOS_DIR" --results "$RESULTS" \ + --manifest "$MANIFEST" --summary "$GENERATION_SUMMARY" --host "$HOST" --ports "$PORTS" \ + --model "$MODEL" --dimensions "$DIMENSIONS_CSV" --samples-per-prompt "$SAMPLES_PER_PROMPT" \ + --max-prompts "$MAX_PROMPTS" --num-inference-steps "$NUM_INFERENCE_STEPS" \ + --short-edge "$SHORT_EDGE" --duration-seconds "$DURATION_SECONDS" --aspect-ratio "$ASPECT_RATIO" \ + --seed "$SEED" --warmup-requests "$WARMUP_REQUESTS" --warmup-inference-steps "$WARMUP_INFERENCE_STEPS" \ + --flow-shift "$FLOW_SHIFT" --audio-flow-shift "$AUDIO_FLOW_SHIFT" \ + > "$GENERATION_DIR/client.log" 2>&1 + stop_servers + log "generation complete: $GENERATION_SUMMARY" +} + +evaluate() { + preflight_evaluation + [[ -f "$GENERATION_SUMMARY" ]] || die "generation summary missing: $GENERATION_SUMMARY" + "$SGLANG_PYTHON" - "$GENERATION_SUMMARY" <<'PY' +import json, sys +summary = json.load(open(sys.argv[1])) +if summary["failed_or_missing"]: + raise SystemExit(f"generation is incomplete: {summary}") +PY + if ((MAX_PROMPTS > 0)); then + die "MAX_PROMPTS=$MAX_PROMPTS is a smoke subset; VBench standard scores would be incomplete and misleading" + fi + mkdir -p "$EVAL_DIR/raw_main" + local result_json flicker_json score_zip + if ((RUN_STATIC_FILTER)); then + local main_dimensions=( + subject_consistency background_consistency motion_smoothness dynamic_degree + aesthetic_quality imaging_quality object_class multiple_objects human_action color + spatial_relationship scene temporal_style appearance_style overall_consistency + ) + log "VBench-v1 evaluates 15 dimensions on $EVAL_GPUS GPUs" + ( + cd "$VBENCH_REPO" + CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 "$VBENCH_PYTHON" -m torch.distributed.run \ + --nproc_per_node="$EVAL_GPUS" --standalone evaluate.py \ + --videos_path "$VIDEOS_DIR" --output_path "$EVAL_DIR/raw_main" \ + --full_json_dir "$VBENCH_METADATA" --mode vbench_standard \ + --dimension "${main_dimensions[@]}" + ) > "$EVAL_DIR/evaluate_main.log" 2>&1 + log "running official static filter before temporal_flickering" + ( + cd "$VBENCH_REPO" + CUDA_VISIBLE_DEVICES=0 "$VBENCH_PYTHON" static_filter.py \ + --videos_path "$VIDEOS_DIR" --result_path "$EVAL_DIR/static_filter" + ) > "$EVAL_DIR/static_filter.log" 2>&1 + [[ -n "$(find "$EVAL_DIR/static_filter/filtered_videos" -maxdepth 1 -type f -name '*.mp4' -print -quit 2>/dev/null)" ]] || \ + die "static filter produced no videos; inspect $EVAL_DIR/static_filter.log" + mkdir -p "$EVAL_DIR/raw_flicker" + ( + cd "$VBENCH_REPO" + CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 "$VBENCH_PYTHON" -m torch.distributed.run \ + --nproc_per_node="$EVAL_GPUS" --standalone evaluate.py \ + --videos_path "$EVAL_DIR/static_filter/filtered_videos" --output_path "$EVAL_DIR/raw_flicker" \ + --full_json_dir "$VBENCH_METADATA" --mode vbench_standard --dimension temporal_flickering + ) > "$EVAL_DIR/evaluate_flicker.log" 2>&1 + result_json=$(find "$EVAL_DIR/raw_main" -maxdepth 1 -type f -name '*_eval_results.json' -print -quit) + flicker_json=$(find "$EVAL_DIR/raw_flicker" -maxdepth 1 -type f -name '*_eval_results.json' -print -quit) + [[ -n "$result_json" && -n "$flicker_json" ]] || die "VBench result JSON missing; inspect evaluation logs" + "$VBENCH_PYTHON" - "$result_json" "$flicker_json" "$EVAL_DIR/vbench_16_dimensions.json" <<'PY' +import json, sys +with open(sys.argv[1], encoding="utf-8") as handle: + result = json.load(handle) +with open(sys.argv[2], encoding="utf-8") as handle: + result.update(json.load(handle)) +with open(sys.argv[3], "w", encoding="utf-8") as handle: + json.dump(result, handle, ensure_ascii=False, indent=2) +PY + else + log "VBench-v1 evaluates all 16 dimensions without static filtering (non-standard flicker preprocessing)" + ( + cd "$VBENCH_REPO" + CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 "$VBENCH_PYTHON" -m torch.distributed.run \ + --nproc_per_node="$EVAL_GPUS" --standalone evaluate.py \ + --videos_path "$VIDEOS_DIR" --output_path "$EVAL_DIR/raw_main" \ + --full_json_dir "$VBENCH_METADATA" --mode vbench_standard \ + --dimension "${DIMENSIONS[@]}" + ) > "$EVAL_DIR/evaluate_main.log" 2>&1 + result_json=$(find "$EVAL_DIR/raw_main" -maxdepth 1 -type f -name '*_eval_results.json' -print -quit) + [[ -n "$result_json" ]] || die "VBench produced no *_eval_results.json; inspect $EVAL_DIR/evaluate_main.log" + cp "$result_json" "$EVAL_DIR/vbench_16_dimensions.json" + fi + score_zip="$EVAL_DIR/evaluation_results.zip" + "$VBENCH_PYTHON" - "$EVAL_DIR/vbench_16_dimensions.json" "$score_zip" <<'PY' +import os, sys, zipfile +source, destination = sys.argv[1:] +with zipfile.ZipFile(destination, "w", compression=zipfile.ZIP_DEFLATED) as archive: + archive.write(source, arcname=os.path.basename(source)) +PY + ( + cd "$EVAL_DIR" + "$VBENCH_PYTHON" "$VBENCH_REPO/scripts/cal_final_score.py" \ + --zip_file "$score_zip" --model_name aggregate_input + ) > "$EVAL_DIR/final_score.txt" 2>&1 + log "evaluation complete: $EVAL_DIR/vbench_16_dimensions.json and $EVAL_DIR/final_score.txt" +} + +case "$ACTION" in + preflight) + preflight_generation + log "generation preflight passed" + if [[ -x "$VBENCH_PYTHON" && -f "$VBENCH_REPO/evaluate.py" ]]; then + preflight_evaluation + log "evaluation preflight passed" + else + log "evaluation preflight skipped: VBench code/env is not ready" + fi + ;; + generate) generate ;; + evaluate) write_config; evaluate ;; + all) generate; evaluate ;; + *) die "unknown ACTION=$ACTION (use preflight, generate, evaluate, or all)" ;; +esac + +trap - EXIT INT TERM +log "done: $RESULT_ROOT"