Skip to content

[Video] Measure H3 workflows with actual denoise schedules - #578

Draft
yangzhuxinyzx wants to merge 6 commits into
codex/v100-h3-general-sm70-20260908-165458from
codex/v100-h3-workflow-metrics-20260909-031302
Draft

yangzhuxinyzx wants to merge 6 commits into
codex/v100-h3-general-sm70-20260908-165458from
codex/v100-h3-workflow-metrics-20260909-031302

Conversation

@yangzhuxinyzx

@yangzhuxinyzx yangzhuxinyzx commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Purpose

The H3 acceptance evaluator hardcodes 49 denoiser calls and one shape, so it cannot validate official four/eight-step adapters or other legal workflows. Native requests now retain actual video/audio sigmas, selected attention backends, completed step/block counts and per-step CUDA/CPU timing. Throughput still divides each rank's useful, unpadded FLOPs by the slowest rank's full synchronized denoise time.

A native benchmark command performs one complete warmup plus three consecutive full requests on one leased GPU group. Evaluation rejects incomplete warmup, changed engine/configuration, missing blocks/steps, inconsistent work counts, profiler timings and quality-capture runs. Results retain source/kernel fingerprints, end-to-end latency, memory and existing NVML measurements. Sparse/cache variants are explicitly rejected until their real execution accounting is implemented.

Stacked on #571 (codex/v100-h3-general-sm70-20260908-165458), which owns common prepared execution and residual changes. Integration commit 5195f31b8d retains both tested parent histories; the PR diff contains the acceptance/measurement scope. The campaign root is onecat/main at 4f19ef7a20db60bb0685e599bd3f4dd156202eed. The open-PR search found no overlapping workflow-accounting PR.

Test Plan

  • CPU: actual 49/4/8-call and DMD2 schedules, TP1/2/4, strict >80 and CV thresholds, completed same-session warmup, invalid/inconsistent execution records, native service/API regressions.
  • GPU: independently count a real dense DiT block with suffix padding; verify event instrumentation preserves outputs and removes hooks after a request.
  • Full model: compare instrumented 720p five-second four-step outputs to frozen mainline, then collect matching unprofiled FA/FI measurements.

Test Result

Python 3.12.13, Torch 2.10.0+cu128, V100 SXM2 32GB, task-owned binaries/caches and native GPU leases:

.venv/bin/python -m pytest tests/video/test_h3_acceptance.py tests/video/test_h3_service.py tests/video/test_h3_workflows.py tests/video/test_h3_omni_api.py -q
81 passed
.venv/bin/python -m pytest tests/video/test_h3_work_counter.py -q
1 GPU test passed: exact useful FLOPs, two steps, bitwise outputs, hook cleanup

All commit hooks pass, including mypy and ruff. The first GPU5 attempt was rejected by an existing lease before launching a test; the successful test used GPU0 after the owned generation released it. Raw evidence and exact launch environments: /data/minimax-h3/sm70-general-20260909/; see docs/design/minimax_h3/WORKFLOW_METRICS.md.

Full 720p five-second four-step instrumentation validation passed against frozen mainline: video/audio latents and all 124 pre-encoding frames match bitwise, video SSIM 1.0 and all audio numerical gates pass (metrics-quality.json).

FA completed one full warmup plus three full requests at source 82362a4312: denoise 65.880184 / 65.898529 / 65.965556 seconds, CV 0.055668%, peak allocation 19,501,498,880 bytes/card. An audit found the legacy counter included identical column-parallel LoRA A replicas. Commit 9bcde29ada excludes those replicas and reports them separately with balanced per-rank row ownership. Row-A/B partial products remain distinct work. Added CPU tests validate logical adapter work across TP1/2/4 and uneven tails; legacy/inconsistent counters are rejected.

The retained FA files are unchanged. fa-720p-three-runs/audited-counts/ records a header-shape audit with original JSON/source hashes and unchanged times: corrected median 47.091839–47.091855 useful TFLOP/s/card. This supersedes the overcounted 47.524847 figure. It is not a new run of the revised counter. Matching FI measurements completed on 9bcde29ada with the revised runtime counter: 70.625556 / 70.545638 / 70.525989 seconds, median 43.989720–43.989736 useful TFLOP/s/card, CV 0.061019%. All rank work counts match the audited FA records exactly. No >80 TFLOP/s, full coverage or independent official/human quality acceptance is claimed. Keep Draft pending those gates. GPU event spans include stream dependencies and host feeding gaps; separate Nsight Systems profiles now retain exact exclusive-wall closure and overlapping service attribution (fa-profile-breakdown/, fi-profile-breakdown/). FA attention/GEMM/communication consume 31.439/16.041/8.453 seconds; FI 36.119/15.919/8.527 seconds. These profiled runs are excluded from performance acceptance. The two backend full latents are not interchangeable under the 1% gate, despite small single-operator reference error; independent official quality remains required.

AI assistance: implemented and initially validated with OpenAI Codex. Human line-by-line review and independent validation are required before promotion.

Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Validated with 63 affected CPU checks; three GPU cases deselected. Core source retains its existing GPU and complete TP1 residency parity evidence.

Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
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