Repository navigation
[CI/Build] Update performance baselines and fill missing metrics - #8957
Conversation
Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com>
…resh Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com>
|
Hi @yenuo26, could you help review this performance baseline update when you have a chance? It refreshes existing references and fills missing metric coverage, including local MiniCPM-o OmniInteract. Thanks! |
| @@ -48,7 +48,8 @@ | |||
| "throughput_qps": 0.1855, | |||
There was a problem hiding this comment.
Thanks for catching this! The local H200 results were missing from my first pass. Updated all four HunyuanImage cases in c497217 using the October 10–16 daily means (seven comparable days, four-decimal rounding): 16 existing values tightened and two missing mean-latency values added. All 882 measured requests completed without errors. The PR description now includes the source revisions and full per-case numbers.
There was a problem hiding this comment.
Thanks for the LGTM! A merge-readiness follow-up: main has now merged #9033 (OmniInteract basic sliding window) and #9066 (VAE tiling for single-device HunyuanVideo I2V). Their workload settings differ from the archived calibration runs, so d778567 defers the 18 window-off OmniInteract values and the three untiled HunyuanVideo values. The HunyuanImage H200 updates remain included.
This removes the merge conflict; I verified the merged tree preserves main's settings and all remaining 381 baseline values. The PR is now ready for review, with the description updated. Could you please recheck this small scope reduction on d778567 before merging? Thank you!
| @@ -47,12 +47,42 @@ | |||
| "baseline": { | |||
There was a problem hiding this comment.
After the tests\dfx\perf\tests\test_qwen3_omni_multi_replicas.json were adjusted, the baseline was deleted, so it needs to be re-added based on the latest results.
There was a problem hiding this comment.
Thanks, agreed that these need recalibration. I checked the latest kanban archive and Buildkite main builds: the newest archived 3×H100 performance sweep is October 10, before #8826 and #8833 merged on October 13. The 90 main builds created after #8833 through October 16 09:00 UTC contain no matching multi-replica performance job.
I've documented the gap in the PR and retained the existing TPOT references. Restoring the 14 audio TTFP/RTF values needs repeated post-#8833, fixed-Ethan 3×H100 results covering c=8/16/24/32 and all three multimodal configurations. Do you have a newer run or artifact for this setup that I can use?
There was a problem hiding this comment.
Quick update: I found the new October 17 H100 sweep in build #17479. It runs b164fea797531c1fa10f8b87829632cad006b9fc, includes #8826/#8833, and matches the fixed-Ethan configuration here. All seven scenarios completed all 662 requests, and the archived JSONs match the build artifacts exactly.
I've added the measurements and provenance to the PR description. We now have one comparable day; this refresh requires at least five, so the 14 audio baseline values are still pending. P99 audio TTFP is 6.13 s at c=24 and 8.68 s at c=32, which also warrants checking variation over additional runs. The four existing TPOT references remain unchanged.
Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com>
|
This PR appears to be related to model: minicpm. Model owners: @y-null @yenuo26 @NickCao Routing: @y-null via model owner; @yenuo26 via CI owner, CODEOWNERS; @NickCao via CODEOWNERS @congw729, please review your own changes and leave a short self-review comment describing what you checked. PRs without author self-review may not be assigned a reviewer. Please take a look when you have a chance. If you would like an automated review, mention @vllm-omni-review-bot in a comment. |
…m-project#8957) Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com> Co-authored-by: wangyu <53896905+yenuo26@users.noreply.github.com>

Purpose
Refresh stored performance references and fill missing common metrics so maintainers can track repository performance against documented measurements.
This PR updates 124 existing values and adds 257 values across 15 JSON files, for 381 changed values:
A value is one metric for one hardware/configuration/sweep slot. Added references cover measured throughput, mean latency, audio first-packet latency/RTF and mean memory. Existing median/P99 metric keys are retained.
The H200 changes cover four HunyuanImage configurations: TI2I, TP4, TP2+SP2 and TP2+CfgP2. All 16 existing values improve against their previous references; the two additions are
latency_meanfor TP2+SP2 and TP2+CfgP2. TI2I memory fields remain absent because the archived measurements are zero placeholders.Only baseline blocks and two provenance descriptions change. This PR preserves benchmark inputs, deployment settings, metric definitions, hardware marks and quality gates; inference code is unchanged. The benchmarking design needs no contract update.
Calibration policy
Require at least five comparable days per metric/slot. Average measurements within each day, then weight each day equally; round to four decimals with no added margin. Match hardware, workload, deployment and sweep slot against the source revision. Exclude failed/incomplete runs, missing measurements, zero placeholders and incomplete new arrays.
Existing references are refreshed when the window mean is equal or better: higher throughput, lower latency/RTF/memory. 68 regressing existing values retain their previous references. The one approved exception is MiniCPM-o chat on A3 (
Hardware=910),c=4, n=64,mean_ttft_ms: 470.0053 → 623.6599 ms (+32.69%), using six days.Deferred coverage
These cases are excluded from the 381 changed values:
sliding_window_mode=basic, 7000/5000 tokens. The October 9–14 measurements used window off. The IA_QTF1 ≥ 0.2 gate is unchanged.For Qwen multi-replica, build #17479 on October 17 used commit
b164fea797531c1fa10f8b87829632cad006b9fcwith the matching 3×H100, Ethan configuration. All seven scenarios completed all 662 requests. The seven archived JSONs match the Buildkite artifact hashes. As checked on October 20, this is the only comparable run day. P99 audio TTFP was 6.1287 s at c=24 and 8.6798 s at c=32; repeated measurements are needed to assess variation before calibration. See the recalibration requirements and pinned archive.Qwen3-Omni multi-replica: October 17 measurements, calibration pending
All requests meet their configured Thinker output lengths (900 tokens for the concurrency sweep, 100 for multimodal workloads). Talker output terminates naturally in this configuration; the observed audio-duration statistics are recorded above. These measurements are excluded from the changed baseline values.
Voxtral TTS and Qwen-Image-Edit-2511 remain excluded; their existing baselines are unchanged.
Test Plan
vLLM Version: use the archived run environments. The raw JSON does not record complete vLLM/PyTorch/CUDA versions; environment details remain limited to the linked source runs.
vLLM-Omni Commit: current PR head
d77856777e0208073f029e4258ffa543ac893fc5; original reference comparisond6ed4f4844fbc41573ffc03247e5b2ff0a38d322. The source commits for the measurements are listed below.Source archives: H100/A3 calibration uses kanban revision 5a70cec1; H200 HunyuanImage uses revision 5aba1fee. The HunyuanImage runs completed all 882 measured requests across 28 runs.
Source matching checks embedded baselines or structured test/config metadata against source-revision workloads. Only startup timeout options (
stage-init-timeout,init-timeout) are ignored. Inline HunyuanImage datasets/deployments are checked against their source contents and the runner's temporary-file conversion. The fixed-length non-async Qwen3-Omni case additionally checks recorded Thinker/Talker outputs against its 900/1536-token contract.Test Result
git diff --checkand localpre-commitchecks on the affected files passed.37ef70ad39d94d81e624e3c9a6702b64072d322fwas conflict-free and preserved main's workload settings, including the new OmniInteract window and single-device HunyuanVideo VAE tiling.d77856777. CI status is tracked in the PR Checks tab.AI assistance: Codex analyzed the archives, prepared baseline edits, checked the calculations and drafted this description.
Contributor intent (required human answers)
1. What outcome do you want to achieve?
Keep performance references current and fill gaps so repository maintainers can better track repository performance.
2. What is the highest-leverage variable for that outcome?
The performance benchmark baseline values and coverage of common mean metrics.
3. How will this work move that variable?
Refresh GPU and A3 references from recent nightly results and add the confirmed missing metrics. Existing reference values are updated only when the measured result is equal or better, with one explicitly approved A3 MiniCPM-o TTFT exception.
4. Whose customer or user needs does this address, and what are those needs?
Repository maintainers need to track current repository performance more effectively.
Changes by file
test_cosmos3_vllm_omni.jsontest_hunyuan_image3_it2i.jsontest_hunyuan_image_tp2_cfgp2.jsontest_hunyuan_image_tp2_sp2.jsontest_hunyuan_image_tp4.jsontest_hunyuanvideo15_i2v_vllm_omni.jsontest_hunyuanvideo15_t2v_vllm_omni.jsontest_lingbot_video_vllm_omni.jsontest_minicpmo_4_5.jsontest_minimax_h3_vllm_omni.jsontest_qwen3_omni_async_chunk.jsontest_qwen3_omni_no_async_chunk.jsontest_qwen_image_vllm_omni.jsontest_tts.jsontest_wan22_i2v_vllm_omni.jsonBaseline values
T/Bidentifies the one-based test/benchmark entry in each JSON. Each row is one metric at one resolved sweep slot. Request throughput is req/s; audio throughput is audio seconds/s;_msis milliseconds; legacylatency_*is seconds; memory is MB; audio RTF is dimensionless. Old and New compare stored reference values. Added values have no previous reference.test_cosmos3_vllm_omni.json
test_cosmos3_t2i_official_demo_2gpu / 1024x1024_steps4 / randomtest_cosmos3_t2v_official_demo_2gpu / 1280x720_frames189_steps4 / randomtest_cosmos3_i2v_official_demo_2gpu / 1280x720_frames189_steps4 / random-mmtest_cosmos3_v2v_official_demo_2gpu / 1280x720_frames189_steps4 / random-mmtest_hunyuan_image3_it2i.json
test_hunyuan_image3_ti2i_inline / inline_dataset_5_requests / customtest_hunyuan_image_tp2_cfgp2.json
test_hunyuan_image_tp2_cfgp2 / 1024x1024_steps8 / randomtest_hunyuan_image_tp2_sp2.json
test_hunyuan_image_tp2_sp2 / 1024x1024_steps8 / randomtest_hunyuan_image_tp4.json
test_hunyuan_image_tp4 / 1024x1024_steps8 / randomtest_hunyuanvideo15_i2v_vllm_omni.json
test_hunyuanvideo15_i2v_cachedit_tp2_vae_patch2 / 832x480_frames33_steps4 / random-mmtest_hunyuanvideo15_t2v_vllm_omni.json
test_hunyuanvideo15_t2v_single_device / 832x480_frames33_steps4 / randomtest_hunyuanvideo15_t2v_cachedit_tp2_vae_patch2 / 832x480_frames33_steps4 / randomtest_lingbot_video_vllm_omni.json
test_lingbot_video_single_device / 320x192_frames9_steps2 / randomtest_minicpmo_4_5.json
test_minicpmo_4_5 / seed-ttstest_minimax_h3_vllm_omni.json
test_minimax_h3_t2v_4gpu / 1344x768_frames209_steps8 / randomtest_minimax_h3_ti2v_4gpu / 1344x768_frames209_steps8 / random-mmtest_minimax_h3_v2v_4gpu / 1344x768_frames209_steps8 / random-mmtest_minimax_h3_t2v_dlo_4gpu / 1344x768_frames209_steps8 / randomtest_qwen3_omni_async_chunk.json
test_qwen3_omni_chunk / random-mmtest_qwen3_omni_chunk / random-mmtest_qwen3_omni_chunk / random-mmtest_qwen3_omni_chunk / random-mmtest_qwen3_omni_chunk / random-mmtest_qwen3_omni_chunk / random-mmtest_qwen3_omni_no_async_chunk.json
test_qwen3_omni / randomtest_qwen3_omni / random-mmtest_qwen3_omni / random-mmtest_qwen3_omni / random-mmtest_qwen_image_vllm_omni.json
test_qwen_image_single_device_a3 / 512x512_steps20 / randomtest_qwen_image_single_device_step_execution / 512x512_steps20_high_concurrency / randomtest_qwen_image_single_device_step_execution_a3 / 512x512_steps20 / randomtest_qwen_image_single_device_step_execution_a3 / 512x512_steps20_high_concurrency / randomtest_qwen_image_ulysses2_cfg2_vae_patch4 / 1536x1536_steps35 / randomtest_qwen_image_ulysses2_cfg2_cache_dit / 512x512_steps20 / randomtest_qwen_image_ulysses2_cfg2_cache_dit_a3 / 512x512_steps20 / randomtest_tts.json
test_qwen3_tts_base / seed-tts / latencytest_qwen3_tts_base / seed-tts / throughputtest_qwen3_tts_customvoice / seed-tts-text / latencytest_qwen3_tts_customvoice / seed-tts-text / throughputtest_qwen3_tts_customvoice / seed-tts-text / stresstest_qwen3_tts_voicedesign / seed-tts-design / latencytest_qwen3_tts_voicedesign / seed-tts-design / throughputtest_qwen3_tts_voicedesign / seed-tts-design / stresstest_wan22_i2v_vllm_omni.json
test_wan22_i2v_single_device / 832x480_frames81_steps4 / random-mmtest_wan22_i2v_usp2_vae_patch2_hsdp_slicing / 832x480_frames81_steps4 / random-mmtest_wan22_i2v_usp2_vae_patch2_hsdp_slicing / 1280x720_frames121_steps4 / random-mmSource runs
H100/A3 Buildkite runs and H200 HunyuanImage local source revisions
1e0c4f3d54a91c30de97aa332e772dfe7338f52c4e675f8b6d742c0b9f097594ab98414485bd8692b65107d61331327424910c72e7a2da137dcfb3df3b666e9196528f00edb6ad9f558bfafde5d6cddf639abb2a9fca94f2f2e0be4df184d3f161e46080131a7731a44e2a64feac165580ce99d36beb94ae198c2105930bd1bac0b0966ffd0997cdd84d4790bdc01f866e12c5b4d7e0523b161b4dd87f77bf8fc10115052ef691e4d0270f1ddf5bce5bc4d140f8549965b94a1aeb9ace43b4713ccc4871f5bbc0bc2ac2cb3ba9816933442cab73b671a9409857a838c4871a09b006507ed38e3f4eb2e5db81d18f1191c2ba8e715518d8d8c32f6dfb8f047524fd4681c1b65107d61331327424910c72e7a2da137dcfb3df194b936637f4e7356cc998c2796c67d14d52d854198c2105930bd1bac0b0966ffd0997cdd84d479076f52f1ae59078cecf47759a56d73e8bcd2ba311549965b94a1aeb9ace43b4713ccc4871f5bbc0bcc4871a09b006507ed38e3f4eb2e5db81d18f1191730632e64282f1d04d628116a00efd1066e2e904Unchanged references and remaining measurement gaps
Within the selected calibration windows, 52 existing values had only one comparable day and 76 had no comparable data; all retain their previous references. Seven eligible existing values are unchanged after rounding. B200 configurations without measurements and MiniCPM chat TPOT without measured samples remain uncalibrated.
Existing references left unchanged where the window mean regressed by more than 10%.
test_minicpmo_4_5test_minimax_h3_t2v_4gputest_minimax_h3_t2v_dlo_4gputest_minimax_h3_ti2v_4gputest_qwen3_omnitest_qwen3_omni_chunktest_qwen3_tts_basetest_qwen_image_single_devicetest_qwen_image_ulysses2_cfg2_cache_dittest_qwen_image_ulysses2_cfg2_vae_patch4Percentages compare the archived window means with the historical references. Their causes have not been established by this calibration.