Skip to content

[VideoGenX] compare H3 and Wan deployments across engines - #1273

Draft
edwingao28 wants to merge 56 commits into
feat/videogenx-hardware-dashboardfrom
feat/video-serving-wan-dashboard
Draft

edwingao28 wants to merge 56 commits into
feat/videogenx-hardware-dashboardfrom
feat/video-serving-wan-dashboard

Conversation

@edwingao28

@edwingao28 edwingao28 commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add H3/Wan filtering, sealed engine/workload identity and four-cell coverage. Preserve failed and low-sample sources.

Validation

Check Result
Regression 72 passed, 1 skipped; 26 desktop/mobile browser cases passed.
Producer→App Four synthetic engine fixtures and real H200/B200 archives passed.
Broader smoke 60 component + 95 integration passed; 1 timeout, 1 skipped.

Depends on #1193. Draft/stacked functional CI skipped; GPU qualification and production publication unverified.

中文:新增只读 H3 性能历史。复用已发布产物索引,保留原始执行与导出身份、失败和资格状态,提供英中筛选与原结果直链,并以保留数据验证桌面和移动端交互。未创建新的性能测量或发布结果。
Open the first readable published artifact when Results has no selection.
Preserve the selected run, artifact, source and cell across refresh, retry
and reload, and cancel stale selection when returning to History.

中文:修复视频页的已发布 H3 结果入口。
未选择运行时读取已发布产物;刷新、重试和重新加载时保留运行、
产物、原始运行和并发配置,返回性能历史时取消过期选择。
中文:将 H3 产物中的 GPU 名称映射到 HW_REGISTRY 键、标签、排序和 TCO 分档单价,并加入含 MI355X 不可用原因的固定硬件名单。
中文:新增视频基准指标注册表:出片时间、生成速度、每 GPU 小时视频数、每美元 TCO 视频数、每条视频成本与能耗、功率上限占比;支持成本分档与参与/已分配 GPU 口径,缺失值一律为 null。
中文:新增支持坐标轴方向声明的 Pareto 前沿计算,复用 inference 图的前沿算法。
中文:为视频硬件仪表板新增 v_ 前缀的 URL 状态读写:坐标轴、成本分档、GPU 口径、排队尾迹、仅最优、图表/表格视图;默认值不写入 URL。
… cell

中文:已发布历史投影为每个 cell 增加参与/已分配 GPU 数、测量窗口、视频时长与帧数、板卡功率与生效上限、配置的 TP/Ulysses/attention;均为可空的附加字段,schemaVersion 不变。
中文:把已发布历史页面展开为可绘图的 VideoPoint 列表:映射硬件键、按来源去重保留最新发布、按 HW_REGISTRY 顺序排序、兼容缺少附加字段的旧投影。
…ut fields

中文:新增从保留的 StoredArtifact 导出重建 video-history fixture 的脚本,并更新 fixture 与校验清单;无新测量、无新发布。
…able

中文:新增视频仪表板的构件:读取已发布历史的 hook、基准测试/图表配置面板、带 Pareto 包络与排队尾迹的 D3 硬件图、每硬件 KPI 卡(含 MI355X 未测得卡)、可排序数据表;VideoPoint 增加 model/workload 字段并按 cell 保留最新观测。
中文:/video 与 /zh/video 改为以跨硬件仪表板为首屏:配置栏、带 Pareto 包络的硬件图与图例侧栏、TCO 单价与来源、KPI 卡、图表/表格切换与 CSV 导出;原运行/视频/历史视图收进可展开的“运行、视频与证据”区块,含 run/view/compare/history-* 参数的深链接自动展开。
中文:新增视频仪表板 E2E:v_ 参数恢复、排队尾迹、回放提示、history 深链接展开运行区块、中文页面;登记 timings 基线。
中文:新增 VideoGenX 仪表板文档(数据路径、坐标轴与默认值、C1 默认原因、Pareto 包络、GPU 口径、未测得硬件与缺失值规则),在文档索引登记,并更新性能历史文档的入口说明。
…le loading

中文:KPI 卡色块在首次渲染使用中性色,水合完成后再取主题色,消除 SSR/CSR 不一致;历史数据加载中显示占位骨架而不是误报“未测得”;E2E 增加 390 px 视口无横向滚动检查并输出截图。
…ic wording

中文:统一“成本档位”“仅最优”等既有用词;指标中文改为“每 GPU 小时生成视频数”“每秒视频时长 TCO 成本”“每 kWh GPU 板卡电能生成视频数”;重写包络说明与副标题,使其更贴近中文技术表达且不夸大“吞吐量不变”的结论。
A deployment is the server layout that produced a cell (participating GPUs,
tp_size × ulysses_degree); cells that differ only in client concurrency share
it. latestVideoCells now dedupes per hardware × deployment × concurrency so a
GPUs-per-video sweep adds points instead of replacing them. Project the
endpoint replica count (execution.deployment.replica_count, null before that
record existed) and classify concurrency above one request per replica as
queueing; leadCell picks each hardware's most efficient deployment. Fixture
rebuilt from the retained exports (replicas: null).

中文:视频 cell 改为按“部署”(参与 GPU 数、tp_size × ulysses_degree)作键,仅并发不同的
cell 属于同一部署,GPUs-per-video 扫描会新增点而不是覆盖。投影新增端点副本数
(早于该记录的产物包为 null),并发超过每副本一个请求判定为排队;leadCell 选出每种硬件
最高效的部署。fixture 已按保留导出重建。
…ugh queued cells

Client concurrency on the batch-one H3 server only queues requests (retained
C1/C2/C4 throughput is flat within ±1.5 %), so the dotted C1→C2→C4 tails were
not a frontier and are gone. plotVideoPoints builds each hardware's Pareto
frontier over its deployment cells and draws a solid line once two or more
frontier deployments exist; dominated deployments render faded and "Optimal
only" hides them. Queued cells are opt-in faded markers that never join a
line. A "Pareto frontier" switch (v_frontier) adds the dashed cross-hardware
frontier as on /inference; when one hardware dominates the caption says so.
With one deployment per hardware today the chart is a scatter whose caption
names the measured layout and the sweep a curve needs. The config bar states
the measured deployments, the table and CSV carry deployment and queued
columns, and KPI cards show each hardware's lead deployment.

中文:batch-one H3 服务上客户端并发只会排队(保留数据 C1/C2/C4 吞吐量相差不到 1.5%),
原来的 C1→C2→C4 点线尾迹不是前沿,已移除。plotVideoPoints 按硬件对部署点求 Pareto 前沿,
两个及以上前沿点才画实线;被支配部署淡色显示,“仅最优”可隐藏;排队点需手动开启,
只画淡色小标记、不连线。新增“Pareto 前沿”开关(v_frontier)叠加跨硬件虚线,某硬件全面
占优时由说明文字指出。目前每种硬件一种部署,图表为散点,说明文字给出实测布局及曲线所需的
扫描。配置栏展示实测部署,表格与 CSV 增加部署/排队列,KPI 卡展示各硬件的代表部署。
中文:新增带日期与来源的 H3 API 标价参考常量(0.034 $/视频秒,区间 0.034–0.047,采集于 2026-09-19),并在视频指标注册表中加入每条视频 API 标价、按标价计的每 GPU 小时收入、每 GPU 小时利润与标价倍数;缺少价格时全部返回 null,货币格式的负号置于 $ 之前。
中文:仪表板状态新增 apiPrice(默认取参考值);URL 参数 v_api 仅接受正的有限数并保留四位小数,无效值回退默认、等于默认时省略;新增 metricOptions(state) 把状态映射为指标选项。
… video dashboard

中文:基准测试配置面板新增 API 价格参考控件(数值输入、重置按钮,以及含参考值、区间、采集日期与来源的说明);KPI 卡新增“API 标价 / 条”与“利润 / GPU 小时”,数据表新增四个 API 定价次级列;图表与各组件统一改用 metricOptions(state),Y 轴允许负的每 GPU 小时利润。
中文:新增 VideoApiReference 组件测试(参考说明、输入即生效、空值/零值保留上次有效价、失焦回退、重置与外部同步、埋点、中文文案),并扩展仪表板测试:改价后卡片、表格与 v_api 同步更新,allocated 口径下负利润仍在画布内。
…es money

The y domain fell back to a ceiling of 1 whenever the true ceiling was 0,
so any all-negative profit view (default price and basis, Rent - 3 Year
Commit tier) drew the three losses in the bottom third of the canvas
under an empty band. Move the padding into zeroAnchoredDomain(), which
pads past the data anchored at zero and reserves the unit fallback for
no data, and cover the all-negative case in Vitest and in the dashboard
component spec (the spec fails on the old chart code with "expected 1 to
equal 0").

中文:当所有硬件都亏损时,将视频图表的 y 轴上限固定在盈亏平衡点。此前只要真实上限为 0,
y 轴就会退回到 1 的合成上限,把三个亏损点挤在画布底部;现改为 zeroAnchoredDomain()
以零为锚点外扩,仅在没有数据时使用单位区间,并在 Vitest 与仪表板组件测试中覆盖全负值场景。
中文:新增 VideoGenX 对比纯模块:按 VIDEO_METRICS 极性计算基线/候选的指标比值、变化百分比与优劣判断(缺失输入保持 null);从 serving cell 的测量记录提取 case 身份(prompt + seed,缺失时用 case_id)并按重复次数配对;从已存储产物解析 C1 记录与媒体 URL 映射。单测断言保留 fixture 的实测数值(B200 vs H100 P50 比值 ≈ 0.466,每条视频 TCO ≈ −31%)。
中文:新增 v_base / v_cand / v_case 参数的读取、写回与默认值解析:默认基线为 P50 最高(最慢)的已实测 C1 硬件,候选为最低(最快);未知硬件回退到默认值,默认值不写入 URL;不改动 video-url-state.ts。含单测。
中文:新增 VideoCompare 组件:基线/候选硬件选择(不足两种时禁用、选到对侧硬件时自动互换)、按 colorFor 着色的指标差异表与绿/红变化标签、按需读取两次运行的 StoredArtifact 并并排播放同一 prompt 与 seed 的视频、用例选择、加载/空/错误状态与脚注;中英双语文案;video_compare_* 埋点。Cypress 组件测试基于保留 fixture 与合成媒体产物。
compareSide read every observation source of the stored artifact inside one
loop with no per-source isolation, so a single source failing storedBundle's
identity check or servingCells' contract asserts aborted the lookup even when
a later source matched the point's manifest SHA or carried its cell. Isolate
each source as videoHistoryEntry does: skip a source that throws, keep the
first error, and rethrow it only when no source carries the cell, so an
unreadable artifact is never reported as one that lacks the cell. Cover both
throw sites on the SHA-preferred and first-with-cell paths.

中文:修复 compareSide 在解析对比视频时被单个损坏的 source 中断的问题:逐个隔离 source 的契约错误并跳过,仅在没有任何 source 包含该 cell 时才重新抛出首个错误;补充两条单元测试覆盖两处抛错点。
Pure evidence.ts: board power vs. recorded enforced limit per hardware at
C1, concurrency plateau rows with throughput/latency ratios against C1,
consecutive-hardware speedups against GPU_SPECS bandwidth and BF16/FP8
ratios (log-space reading with an explicit inconclusive verdict), and
caveat facts read from the cells. Missing input reads as null, never 0.
Unit tests assert the retained fixture: 91.9/97.4/96.4 % of cap,
1.111x and 1.932x observed, C2/C4 throughput within 1.44 % of C1.

中文:新增纯模块 evidence.ts,从实测 cell 推导算力受限证据:C1 板卡功率对照记录到的生效上限、
各并发相对 C1 的吞吐/延迟比值、相邻硬件实测加速比对照 GPU_SPECS 带宽与 BF16/FP8 比值
(对数空间判读,无法区分时明确给出"不确定"),以及来自 cell 的注意事项事实。缺失输入返回 null 而非 0。
单元测试断言保留 fixture 的数值:功率占上限 91.9/97.4/96.4%、实测加速比 1.111x 与 1.932x、
C2/C4 吞吐量与 C1 偏差不超过 1.44%。
Three exhibits in Cards, each with a one-sentence reading built from the
computed numbers: power vs. enforced limit as per-hardware meters,
concurrency plateau table grouped by hardware, and observed speedup vs.
spec-sheet ratios with a hedged reading per pair. Bilingual caveats are
derived from the cells (participating GPUs and TP x Ulysses recipe,
n per cell, frozen workload, differing attention backends). Exhibits
without supporting data are hidden; the section disappears when nothing
is measured. No interactive controls, so no analytics events.

中文:新增 VideoEvidence 面板,三组展示均放在 Card 中,每组附一句由计算结果生成的判读:
板卡功率对照生效上限(按硬件的 meter)、按硬件分组的并发平台期表格、实测加速比对照规格表比值
(每对硬件给出留有余地的判读)。中英双语注意事项由 cell 数据推导(参与计算的 GPU 数与 TP x Ulysses
配方、每 cell 样本数、冻结工作负载、不同的 attention 后端)。数据不足的展示会隐藏;没有实测时整段不渲染。
无交互控件,因此无 analytics 事件。
Cypress component spec mounts VideoEvidence with points from
cypress/fixtures/api/video-history.json through videoPoints and asserts
the rendered percentages and ratios (91.9/97.4/96.4 %, 1.11x vs 1.43x,
1.93x between 1.67x and 2.27-2.28x), the allocated-basis column, the
Chinese copy under /zh/video, hidden exhibits with one C1 cell, and an
empty render with no measured cells.

中文:新增 Cypress 组件测试,通过 videoPoints 用 cypress/fixtures/api/video-history.json
挂载 VideoEvidence,断言渲染出的百分比与比值(91.9/97.4/96.4%、1.11x 对 1.43x、
1.93x 介于 1.67x 与 2.27-2.28x 之间)、allocated 口径列、/zh/video 下的中文文案、
仅有一个 C1 cell 时隐藏的展示,以及无实测 cell 时不渲染。
The fill width was clamped to 100% but aria-valuenow was not, so a mean
board power above the recorded enforced limit emitted a range-widget value
outside aria-valuemax. One meterPercent helper in evidence.ts now drives
both the fill and the ARIA value at 0.1% resolution; the label beside the
meter keeps the measured share. Regression: an over-cap H200 C1 cell in the
component spec fails on the old markup ('102' vs '100') and passes now.

中文:将功率仪表的 ARIA 值限制在其声明的 0–100 范围内。此前填充宽度已截断到
100%,但 aria-valuenow 未截断,板卡平均功率超过记录的生效上限时会输出超出
aria-valuemax 的值。现由 evidence.ts 中的 meterPercent 统一驱动填充与 ARIA 值,
标签仍显示实测比例;新增超上限 H200 C1 cell 的单元测试与组件回归用例。
edwingao28 and others added 14 commits September 19, 2026 23:46
The clips are the point of the comparison, so they lead: the same prompt and
seed from both CI runs play side by side with shared play, pause and restart,
case arrows with a full prompt card, and a blind mode that labels the sides A
and B (and hides the metric deltas) until revealed. Media loads on its own once
the panel scrolls into view instead of behind a button; a 204 side reads as
"clips not published" rather than an error. The delta table moves below the
players. Component and e2e specs stub the clip requests so they stay offline.

中文:视频才是对比的核心,因此改为视频优先:同一 prompt 与 seed 在两种硬件上的视频并排
播放,支持同步播放/暂停/重播、用例翻页与完整 prompt 卡片,“盲测模式”把两侧标为 A/B
并隐藏指标差异直到揭晓。面板滚入视口时自动加载视频,不再需要点按钮;204 视为“未发布
视频”而非错误。指标差值表移到播放器下方。组件与 e2e 测试对视频请求打桩以保持离线。
Keep only what the two claims need: X = P90/P50 time to video, Y = videos
per $1 TCO, TCO cost per video, videos per GPU-hour or kJ per video, one
cost tier select. Every per-GPU metric divides by participating GPUs; an
idle-boards note under the chart replaces the GPU-basis toggle. Drop the
queued/optimal/frontier switches (queued cells never reach the chart, and
per-hardware frontier lines appear on their own once a hardware has two
deployments), the single-option Model/Workload/Deployment selects (now
plain facts), the revenue/profit/multiple/genSpeed/video-seconds/kWh/
$ per video-second metrics, the KPI profit and board-power rows, blind
mode and the case dropdown in Compare, and four of its seven delta rows.
The API reference now yields one number, the API list price per video,
shown beside the TCO cost. Tests, docs and the Chinese copy follow.

中文:围绕两个 claim 收敛 /video 仪表板:X 轴只留 P90/P50 出片时间,Y 轴只留
每 1 美元 TCO 视频数、每条视频 TCO 成本、每 GPU 小时视频数和每条视频能耗,
保留成本档位。所有按 GPU 计的指标以参与计算的 GPU 为分母,图表下方的空闲
板卡说明取代 GPU 口径切换。去掉排队/仅最优/前沿三个开关(排队 cell 不进入
图表,某硬件有两种部署时自动画出前沿线)、三个单选项假下拉(改为文字事实)、
收入/利润/倍数/生成速度/视频秒数/kWh/每视频秒成本等指标、KPI 卡的利润与
板卡功率行、Compare 的盲测模式与用例下拉,以及七行差值中的四行。API 参考价
只推导每条视频 API 标价,显示在 TCO 成本旁。测试、文档与中文文案同步更新。
… browser

The dashboard, Compare and Evidence panels replace the per-run viewer; the
Performance history list stays in the collapsible section and opens for
history-* deep links. Keep the data layer (bundle, stored, archive, serving,
fidelity, tradeoff points) that the history API and Compare still read, and
trim the comments that still described removed metrics.

中文:删除旧的 /video 按运行查看器、trade-off 图表和 CI 运行浏览;仪表板、Compare 与证据面板取而代之,性能历史列表保留在可展开区块并响应 history-* 深链接。保留 history API 与 Compare 仍在读取的数据层(bundle、stored、archive、serving、fidelity、tradeoff points),并修掉仍在描述已删指标的注释。
The dashboard now measures on the participating-GPU basis only, so
MetricOptions no longer has a basis field; the test fixture kept passing one.

中文:仪表板现在只按参与 GPU 口径计量,MetricOptions 已无 basis 字段;测试夹具里残留的该选项一并去掉。
…eo dashboard

Published history also holds smoke runs of a shorter plan with a handful of
clips. One of them, an H200 2-GPU TP1 x Ulysses 2 cell with four 4-second
clips, had the best videos per GPU-hour, so it became the H200 KPI lead and
the Compare candidate against 8-second H100 clips. The dashboard now keeps the
workload measured on the most hardware, drops cells under the ten-clip P90
floor, and feeds the chart, table, CSV, cards, Compare and Evidence the same
cells; the history list still shows everything.

中文:已发布历史里还有较短 plan 的 smoke 运行,只有几条视频。其中一条 H200 2 GPU TP1×Ulysses 2、4 条 4 秒视频的 cell 因为每 GPU-小时视频数最高,成了 H200 的 KPI 领先部署和 Compare 候选,与 8 秒的 H100 视频对比。现在仪表板只取硬件覆盖最广的工作负载,剔除低于 10 条 P90 门槛的 cell,并让图表、表格、CSV、卡片、Compare 与证据面板读同一份 cells;历史列表仍显示全部。
Master's a0eb936 refactored ServingResults.tsx and added the
/api/v1/views/video route on top of tradeoffCurves. This branch deletes
the legacy viewer, so the modify/delete conflict resolves to the
deletion, and tradeoffCurves plus its test return verbatim from the
pre-cut revision so the new view route keeps compiling. Whether that
view should follow the deployment-cell frontier instead is a separate
decision.

中文:master 的 a0eb936 重构了 ServingResults.tsx,并新增依赖 tradeoffCurves 的 /api/v1/views/video 路由。本分支已删除旧查看器,modify/delete 冲突按删除解决;tradeoffCurves 及其测试从删除前的版本原样恢复,保证新路由可编译。该视图是否应改为按部署 cell 的前沿输出,另行决定。
Next.js patches history.replaceState to update its router, and React may run a setState updater during render, so writing the URL inside the updater updated the Router while VideoDashboard rendered. Move the state and URL sync into useVideoDashboardState, which writes the URL from the event handler, and add a regression test that replays the updater under Strict Mode and mounts a router-like subscriber.

中文:Next.js 会拦截 history.replaceState 以更新路由,而 React 可能在渲染期执行 setState 的 updater,因此在 updater 内写 URL 会在 VideoDashboard 渲染时更新 Router。将状态与 URL 同步移入 useVideoDashboardState,在事件处理器中写 URL,并增加回归测试:在 Strict Mode 下重放 updater,并挂载一个模拟路由的订阅组件。
Wrap the title, description and a Share button in the same Card and DashboardSectionHeader the inference tab uses, and let Share carry the live v_ params through a new v_ share scope. Move the cost tier from Chart config into the chart caption as an inline selector with an export-only text twin. Add an Optimal Only legend switch (v_optimal, on by default like i_optimal) that limits the chart, table and CSV to each hardware's frontier deployments; off, dominated deployments render faded. Fold the Compare and compute-bound evidence sections behind chevrons, opening Compare for v_base/v_cand/v_case deep links.

中文:标题、说明和分享按钮放入与 inference 页相同的 Card 和 DashboardSectionHeader,并通过新增的 v_ 分享范围让分享链接带上当前 v_ 参数。成本档位从图表配置移到图表说明行内选择,附带导出用的纯文本副本。新增图例开关“仅最优”(v_optimal,默认开启,与 i_optimal 一致),开启时图表、表格和 CSV 只包含各硬件的前沿部署,关闭后被支配的部署以淡色显示。Compare 与算力受限证据两个区块默认折叠,携带 v_base/v_cand/v_case 的深链接会自动展开 Compare。
…o page

The dashboard's API list price was a $0.034/video-s subscription-tier figure
from a web search, labelled as unverified. Replace it with the pay-as-you-go
price on MiniMax's platform pricing page: H3 768P output $0.08/s (2K output
$0.13/s), captured 2026-09-24; the page states no effective date. Unit,
component and e2e expectations follow the new default ($0.640 per 8 s clip).

中文:仪表板原先的 API 标价 $0.034/video-s 来自网页搜索的订阅档价格,且标注为
未核实。改为 MiniMax 开放平台按量付费价格页的价格:H3 768P 输出 $0.08/s(2K
输出 $0.13/s),采集于 2026-09-24,页面未标注生效日期。单元、组件与 e2e 测试
的预期同步更新为新默认值(8 s 视频 $0.640)。
保留完整工作负载身份,限制证据比较使用匹配布局,并同步只读 API 与可恢复的硬件筛选。
中文:将 master 合入 VideoGenX 比较分支。

保留已发布的比较与 API 修复,合并当前 OperatorX 路由和技能文档变更,并同步契约校验摘要。
中文:将视频并发证据限制在共同的工作负载和部署布局内。

排除不匹配或身份不明的硬件观测;同组硬件缺少 C1 时保留原始测量值,并将比率留空。补充数据、公开 API 和英文桌面和中文手机布局回归测试。
中文:增加视频部署前沿和 Wan 服务证据。
@vercel

vercel Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
inferencemax-app Ready Ready Preview Oct 18, 2026 9:42am UTC

Request Review

@edwingao28 edwingao28 changed the title [VideoGenX] add deployment frontiers and Wan serving evidence / 增加部署前沿与 Wan 服务证据 [VideoGenX] compare H3 and Wan deployments across engines Oct 18, 2026

This branch was successfully deployed

1 active deployment
Preview — c6d34259 Deployed Oct 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant