[H3 CI]: add video serving metrics and GPU energy [DO NOT MERGE] / 新增视频服务指标与 GPU 能耗(暂勿合并) - #2894
[H3 CI]: add video serving metrics and GPU energy [DO NOT MERGE] / 新增视频服务指标与 GPU 能耗(暂勿合并)#2894edwingao28 wants to merge 22 commits into
Conversation
通过 InferenceX GitHub Actions 和 Slurm 运行 H3 视频负载,复用已准备的环境并保留媒体、测量数据和报告。
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
将 H3 工作负载的 changelog 条目关联到草稿 PR。
将 H3 冒烟执行状态与回归阈值分开,保留媒体、预热、测量和清理验证,并约束 H200 资源范围。
在 CI artifact 中保留 H3 环境准备记录和入口脚本,便于核验镜像来源及启动方式。
SGLang 镜像包含 setuptools-scm 生成且被忽略的版本模块;将该文件纳入固定哈希清单,同时继续拒绝其他意外 Python 文件及越界链接。
为 H3 HTTPS 请求显式设置 TLS 1.2 最低版本,保留系统证书信任和主机名验证。
从已记录的运行目录提交 Slurm 分配,并使用兼容的作业步骤查询字段。补充目录归属回归测试,保留严格的资源归属检查。
为调度器测试固定有效的 runner 名称,避免 GitHub 托管 runner 的显示名称影响本地调度器替身。
为 H3 运行时使用数字设备编号,并在导入 SGLang 前通过 CUDA 驱动核对有序 UUID,保留设备归属和遥测约束。延长有界 Slurm epilog 等待,避免资源已取消但清理尚未完成时误报。
在原有清理期限内等待已归属 H3 进程的 GPU 内存释放,仍拒绝未知或复用的进程身份,并保留超时失败。将 H200 示例主机内存改为实际运行验证过的 1 TiB。
按 GPU UUID 和进程 ID 核对遥测归属,允许附加的进程身份字段,同时拒绝重复、重叠、缺失或内存数值不一致的记录。失败报告保留原有清理状态并展示有效测量。
新增固定的 8 秒、192 帧 H3 工作负载设置,保留 4 秒设置及现有分辨率、帧率和音频要求。验证请求协议与解码预期,追加性能变更记录。
新增分阶段 GPU 功率与能量校验、版本化前端结果契约和可信 CI 证据复用;复用既有 H200 A/A 结果,通过有预算上限的 Slurm 硬件检查保留来源与清理证据。
Resolve the prepared Python path inside Enroot because its absolute symlink is invalid in the submission host namespace. Preserve early failure artifacts. Name and restrict public GitHub receipts explicitly; the CodeQL trusted-name heuristic had classified admission metadata as a secret. 在 Enroot 内确认 Python 身份,避免提交节点错误解析容器的绝对符号链接;保留早期失败制品。明确公共 GitHub 收据的命名和字段,修复 CodeQL 对 trusted 名称的启发式误判。
Accept NVIDIA PCI IDs with or without a hexadecimal prefix. Reclassify sealed raw inventory in a new export while retaining its original GitHub and Slurm identity; avoid allocating GPUs again for artifact interpretation. 兼容 NVIDIA PCI ID 的可选十六进制前缀。导出时复用已校验的原始硬件证据并保留原始 GitHub、Slurm 身份,避免仅为解释制品而再次分配 GPU。
将结果契约中的重放链接固定到已发布提交,确保下载后的双语文档可直接访问完整执行说明。
新增可选的 H3 闭环并发测试,记录请求交付延迟、结果计数和截止时间内的有效吞吐;并发 GPU 能耗只积分一次,保留串行默认行为及未校准状态。
新增单次分配内的 C1/C2/C4 并发烟测,每组四个测量请求,单独记录预热、失败、中断和原始视频。两卡模式只申请两张 GPU,保留既有配对回归行为。
|
|
||
| def _port_available(port: int): | ||
| with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as probe: | ||
| probe.bind(("127.0.0.1", port)) |
预检仅验证冻结配置,实际进入已准备的测量容器后再加载功率积分依赖。补充隔离 Python 路径的启动检查。
以请求截止时间判断 watchdog 关闭连接导致的异常,保留服务端已报告的失败或取消结果;覆盖不同底层关闭异常。
两卡 Slurm 分配使用设备编号 4、5,而 NVIDIA 查询编号不同,导致容器入口报告找不到设备。按驱动的设备 minor 映射 UUID,再核对实际查询结果,避免把 Slurm 编号当作 NVML 编号。
Description
Run H3 video benchmarks through InferenceX GitHub Actions → Slurm → H200, retaining original playable media, provenance, video/audio checks and measured GPU power/energy. Add opt-in closed-loop client concurrency and a bounded C1/C2/C4 smoke matrix using one two-GPU allocation.
通过 InferenceX GitHub Actions → Slurm → H200 执行 H3 视频测试,保留原始可播放媒体、来源信息、视频/音频检查及实测 GPU 功率/能耗。新增可选客户端闭环并发,以及复用同一次双卡分配的 C1/C2/C4 小规模测试。
Validation / 验证 —
30a8a65d839e67bb67e979f7e34987f82baa269682338.0,worker-10, two allocated and two participating H200 GPUs; reused the prepared runtime. Allocation released after 54m33s. / 真实双 H200 CI:12/12 正式请求通过技术完整性检查,零失败,另有三次独立预热。Slurm82338.0,节点worker-10,分配及参与均为两张 H200,复用已有运行环境;54 分 33 秒后释放分配。serving-smoke.json,report/index.html, per-request records, 15 original MP4s, telemetry and power reports. Offline verification checked all 106 file hashes, all 12 report video references, raw concurrency/latency arithmetic and independently integrated raw power samples. Fixed-input media hashes match; prior full-decode evidence was reused for identical bytes, with technical checks passing. / 原始产物含矩阵汇总、离线报告、逐请求记录、15 个原始 MP4、遥测及功率报告。本地核对 106 个文件摘要、12 个报告视频链接、原始并发/延迟计算,并独立积分功率采样。固定输入的媒体摘要一致,复用相同字节的完整解码证据,技术检查通过。Same frozen workload at all three loads: MiniMax-H3
42ed227…, SGLang71de97b…, TP1/Ulysses2, no DiT CPU offload, 50 steps, seed 11, one drum-taps prompt, 1344×768, 107 frames at 24 FPS (4.458 s decoded video), native 32 kHz stereo audio.三档使用完全相同的固定负载:MiniMax-H3
42ed227…、SGLang71de97b…、TP1/Ulysses2、关闭 DiT CPU offload、50 步、种子 11、同一鼓点提示词、1344×768、24 FPS 共 107 帧(解码视频 4.458 秒),原生 32 kHz 双声道音频。Latency is submission to downloaded media. Hourly throughput is normalized from the roughly eight-minute measured delivery window per cell, excluding preparation and warmup; it is not an hour-long sustained test. Board power covers first submit through last observed provider completion, includes intervening gaps, and excludes host/unselected GPUs. Energy is 163.88–164.18 kJ per valid clip. Increasing client concurrency did not materially increase observed throughput in this small sample; GPU-parallel batching is not established.
延迟为提交至视频下载完成。每小时吞吐由每档约八分钟的交付测量窗口换算,排除准备和预热,并非持续一小时实测。板级功率覆盖首次提交至最后观测到服务端完成的区间,包含中间间隔,不包含主机及未选 GPU。每个有效视频能耗为 163.88–164.18 kJ。本次小样本提高客户端并发后,观测吞吐基本不变,不能据此认定 GPU 批处理并行已实现。
Limits / 限制
Four samples per load do not establish P90/P95, sustained capacity or cross-hardware superiority. Queue/execution timestamps, actual batching, fixed offered arrival rates, multi-replica launch, calibrated perceptual quality and full deployment cost remain unavailable. Technical validity does not establish paired fidelity or release qualification. The matrix therefore retains
ci_accepted=falseandrelease_qualified=falseeven though the requested smoke passed. Earlier serial 8-second and 4-second evidence is retained separately.每档四个样本不足以给出 P90/P95、持续服务容量或跨硬件优劣。排队/执行时间戳、实际 batching、固定请求到达速率、多副本启动、校准后的感知质量及完整部署成本仍不可用。技术完整性不代表配对保真度或发布验收,因此本次 smoke 通过后仍保留
ci_accepted=false、release_qualified=false。历史八秒与四秒串行证据分别保留,不混入本次结果。Keep DO NOT MERGE: draft PR, currently conflicts with
main. Dashboard/database integration and release qualification remain outside this backend change.保留 DO NOT MERGE:PR 仍为草稿,当前与
main冲突。本后端改动不包含 dashboard/数据库接入及发布验收。Related Issue
No linked issue. / 无关联 issue。
Type of Change
Checklist
perf-changelog.yamland have not edited historical entriesOWNER/MEMBER/COLLABORATOR) has commented/reuse-sweep-runon this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the sweep label will no longer automatically kick off new sweeps. Remove and re-add the label to force one.