Skip to content

Upstream marge conflicts fix#2

Merged
inkcherry merged 129 commits intoinkcherry:moriiofrom
knitcapcat-amd:moriio-fix
Apr 20, 2026
Merged

Upstream marge conflicts fix#2
inkcherry merged 129 commits intoinkcherry:moriiofrom
knitcapcat-amd:moriio-fix

Conversation

@knitcapcat-amd
Copy link
Copy Markdown
Collaborator

GitHub shows ~591 files diff because base...head includes the 128 upstream commits carried in by the merge. The actual conflict-resolution is entirely in commit b2331a1d — its "Conflict resolution" view on GitHub shows only 3 files.

Conflicts resolved

  • qwen2_5_omni_multiconnector.yaml — dropped (moved to vllm_omni/deploy/ by upstream refactor [Config Refactor 2.5/N] Centralize pipeline registry vllm-project/vllm-omni#2915; mori_connector registration preserved in qwen2_5_omni_mori_intranode.yaml)
  • async_omni_engine.py — kept both mori receiver_connectors path and upstream's pd_config detection; pass both to Orchestrator(...)
  • orchestrator.py — kept both mori machinery (param / field / PUT logic) and upstream's PD state init + mm_features filtering

Verification

  • pre-commit run --all-files passes
  • 6×MI300X intra-node Qwen2.5-Omni-7B end-to-end: text + audio output correct; Mori PUT 0->1 confirmed (573KB / 120ms / 4.5 MB/s)

fan2956 and others added 30 commits April 10, 2026 16:18
Signed-off-by: Jinheng Li <ahengljh@gmail.com>
Signed-off-by: Canlin Guo <961750412@qq.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Canlin Guo <961750412@qq.com>
…figs (vllm-project#2622)

Signed-off-by: Yiyang Liu <yiyangliu@microsoft.com>
Co-authored-by: Yiyang Liu <yiyangliu@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Nick Cao <ncao@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
Co-authored-by: SYLAR <lishunyang12@users.noreply.github.com>
…g ref_text (vllm-project#2203)

Signed-off-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
Co-authored-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
…enchmarks (vllm-project#1971)

Signed-off-by: samithuang <285365963@qq.com>
Signed-off-by: Samit <285365963@qq.com>
Signed-off-by: akshatvishu <akshatnayak197@gmail.com>
…with cuda tests (vllm-project#2340)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
…sage (vllm-project#2688)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
…#2519)

Signed-off-by: yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng Zhao <jonathan.zhaoyh@gmail.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Co-authored-by: SYLAR <125541396+lishunyang12@users.noreply.github.com>
…ookup (vllm-project#2407)

Signed-off-by: reidliu41 <reid201711@gmail.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Signed-off-by: david6666666 <david6666666@users.noreply.github.com>
Co-authored-by: david6666666 <david6666666@users.noreply.github.com>
…load) (vllm-project#2689)

Signed-off-by: Alex Brooks <albrooks@redhat.com>
Co-authored-by: SYLAR <125541396+lishunyang12@users.noreply.github.com>
Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
…in OmniEngineArgs (vllm-project#2684)

Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…Non-deterministic image quality regression. (vllm-project#2458)

Signed-off-by: natureofnature <wzliu@connect.hku.hk>
…llm-project#2134)

Signed-off-by: Celeste-jq <591998922@qq.com>
Co-authored-by: Canlin Guo <canlinguosdu@gmail.com>
…t timeout and stage init timeout in order to resolve the CI timeout error. (vllm-project#2711)

Signed-off-by: wangyu <410167048@qq.com>
…h AsyncLL… (vllm-project#2716)

Signed-off-by: amy-why-3459 <wuhaiyan17@huawei.com>
…llm-project#1555)

Signed-off-by: natureofnature <wzliu@connect.hku.hk>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Co-authored-by: wuzhongjian <wuzhongjian@cmss.chinamobile.com>
bjf-frz and others added 28 commits April 17, 2026 20:13
Signed-off-by: bjf-frz <frz123db@gmail.com>
…ect#2691)

Signed-off-by: Alex Brooks <albrooks@redhat.com>
Co-authored-by: lengrongfu <lenronfu@gmail.com>
Signed-off-by: Alex Brooks <albrooks@redhat.com>
Co-authored-by: Didan Deng <33117903+wtomin@users.noreply.github.com>
…_generates_video[wan22_i2v_usp2_hsdp2] (vllm-project#2883)

Signed-off-by: wangyu <410167048@qq.com>
Signed-off-by: Lancer <maruixiang6688@gmail.com>
…t#2343)

Signed-off-by: Nick Cao <ncao@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
…ures (vllm-project#1837)

Signed-off-by: CHEN <116010019@link.cuhk.edu.cn>
Signed-off-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
Co-authored-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
Co-authored-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: Joshna Medisetty <joshna.medisetty@intel.com>
Signed-off-by: Joshna-Medisetty <joshna.medisetty@intel.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Signed-off-by: Alex Brooks <albrooks@redhat.com>
Signed-off-by: hsliuustc0106 <liuhongsheng4@huawei.com>
Signed-off-by: hsliu <liuhongsheng4@huawei.com>
Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: david6666666 <david6666666@users.noreply.github.com>
Co-authored-by: david6666666 <david6666666@users.noreply.github.com>
Signed-off-by: Nick Cao <ncao@redhat.com>
Signed-off-by: princepride <wangzhipeng628@gmail.com>
Signed-off-by: 汪志鹏 <wangzhipeng628@gmail.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Signed-off-by: CHEN <116010019@link.cuhk.edu.cn>
Signed-off-by: Lancer <maruixiang6688@gmail.com>
Co-authored-by: Samit <285365963@qq.com>
Signed-off-by: gcanlin <canlinguosdu@gmail.com>
…2383)

Signed-off-by: lishunyang <lishunyang12@163.com>
Signed-off-by: reidliu41 <reid201711@gmail.com>
Signed-off-by: Alex Brooks <albrooks@redhat.com>
Co-authored-by: reidliu41 <reid201711@gmail.com>
Co-authored-by: xiaohajiayou <75477391+xiaohajiayou@users.noreply.github.com>
Co-authored-by: Alex Brooks <albrooks@redhat.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
…+decode batches (vllm-project#2903)

Signed-off-by: Sy03 <1370724210@qq.com>
…memory (vllm-project#2474)

Signed-off-by: willamhou <willamhou@ceresman.com>
Co-authored-by: willamhou <willamhou@ceresman.com>
Signed-off-by: xiaohajiayou <923390377@qq.com>
Signed-off-by: Samit <285365963@qq.com>
Co-authored-by: Samit <285365963@qq.com>
Co-authored-by: SYLAR <125541396+lishunyang12@users.noreply.github.com>
…m-project#2018)

Signed-off-by: Yuanheng Zhao <jonathan.zhaoyh@gmail.com>
Signed-off-by: yuanheng <jonathan.zhaoyh@gmail.com>
Co-authored-by: Didan Deng <33117903+wtomin@users.noreply.github.com>
Signed-off-by: lishunyang <lishunyang12@163.com>
Signed-off-by: Rein Yang <ruiruyang2@gmail.com>
Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the deployment and testing infrastructure by introducing a new 'deploy config' schema and migrating several models (Qwen3-Omni, Qwen3-TTS) to it. It adds support for new models like Ming-flash-omni 2.0, VoxCPM, and VoxCPM2, and removes external audio dependencies (librosa, sox) in favor of internal vLLM utilities. The changes also include new Claude skills for contributors, documentation for features like frame interpolation and prefix caching, and various CI pipeline updates. Reviewers identified critical issues where benchmark scripts could silently pass by falling back to empty templates on failure, and noted several instances in new examples where Omni engine instances were not properly closed or librosa was still being imported despite its removal from the project requirements.

Comment on lines +152 to +162
if not os.path.exists(result_path):
with open(OMNI_RESULT_TEMPLATE_PATH, encoding="utf-8") as f:
template_result: dict[str, Any] = json.load(f)
Path(result_path).parent.mkdir(parents=True, exist_ok=True)
with open(result_path, "w", encoding="utf-8") as f:
json.dump(template_result, f, ensure_ascii=False, indent=2)
print(f"Benchmark result file not generated, fallback to template: {result_path}")
result = template_result
else:
with open(result_path, encoding="utf-8") as f:
result = json.load(f)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Falling back to a zeroed template when the benchmark result file is missing can hide performance regressions or execution failures in CI. Assertions against zeroed metrics (e.g., latency <= threshold) will pass incorrectly. It is better to raise an explicit error here if the benchmark fails to produce data.

    result_path = os.path.join(result_dir, result_filename)
    if not os.path.exists(result_path):
        raise FileNotFoundError(f"Benchmark result file not generated: {result_path}")

    with open(result_path, encoding="utf-8") as f:
        result = json.load(f)

Comment on lines 569 to 581
if not tmp_result_file.exists():
raise FileNotFoundError(f"Benchmark result file not found: {tmp_result_file}")
with open(DIFFUSION_RESULT_TEMPLATE_PATH, encoding="utf-8") as f:
template_payload = json.load(f)
# Template schema is fixed and owned by this repo:
# ``diffusion_result_template.json`` is a one-item list and metrics live at [0]["result"].
template_metrics: dict[str, Any] = template_payload[0]["result"]
with open(tmp_result_file, "w", encoding="utf-8") as f:
json.dump(template_metrics, f, ensure_ascii=False, indent=2)
print(f"Benchmark result file not generated, fallback to template: {tmp_result_file}")

try:
with open(tmp_result_file, encoding="utf-8") as f:
metrics: dict[str, Any] = json.load(f)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Similar to run_benchmark.py, falling back to a template when the result file is missing hides failures. If the benchmark script crashes or fails to generate output, the test should fail explicitly.

Suggested change
if not tmp_result_file.exists():
raise FileNotFoundError(f"Benchmark result file not found: {tmp_result_file}")
with open(DIFFUSION_RESULT_TEMPLATE_PATH, encoding="utf-8") as f:
template_payload = json.load(f)
# Template schema is fixed and owned by this repo:
# ``diffusion_result_template.json`` is a one-item list and metrics live at [0]["result"].
template_metrics: dict[str, Any] = template_payload[0]["result"]
with open(tmp_result_file, "w", encoding="utf-8") as f:
json.dump(template_metrics, f, ensure_ascii=False, indent=2)
print(f"Benchmark result file not generated, fallback to template: {tmp_result_file}")
try:
with open(tmp_result_file, encoding="utf-8") as f:
metrics: dict[str, Any] = json.load(f)
if not tmp_result_file.exists():
raise FileNotFoundError(f"Benchmark result file not generated: {tmp_result_file}")
try:
with open(tmp_result_file, encoding="utf-8") as f:
metrics: dict[str, Any] = json.load(f)

import time
from typing import NamedTuple

import librosa
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since librosa has been removed from requirements/common.txt in this PR, direct imports and usage of it will fail unless manually installed. Please use vllm.multimodal.media.audio.load_audio instead, which is consistent with other updates in this PR.

Suggested change
import librosa
from vllm.multimodal.media.audio import load_audio

if audio_path:
if not os.path.exists(audio_path):
raise FileNotFoundError(f"Audio file not found: {audio_path}")
audio_signal, sr = librosa.load(audio_path, sr=sampling_rate)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Replace librosa.load with load_audio to avoid dependency issues.

Suggested change
audio_signal, sr = librosa.load(audio_path, sr=sampling_rate)
audio_signal, sr = load_audio(audio_path, sr=sampling_rate)

if audio_path:
if not os.path.exists(audio_path):
raise FileNotFoundError(f"Audio file not found: {audio_path}")
sig, sr = librosa.load(audio_path, sr=sampling_rate)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Replace librosa.load with load_audio to avoid dependency issues.

Suggested change
sig, sr = librosa.load(audio_path, sr=sampling_rate)
sig, sr = load_audio(audio_path, sr=sampling_rate)

default=None,
help="Path to local audio file. Uses default asset if not provided.",
)
parser.add_argument(
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

A hardcoded 30-second sleep for profiler trace flushing may be excessive or insufficient depending on the environment. Consider making this configurable or using a more robust synchronization mechanism.

Comment on lines +132 to +137
omni = Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
log_stats=args.log_stats,
stage_init_timeout=args.stage_init_timeout,
)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The Omni instance created in _run_sync is never closed, which can lead to leaked resources (e.g., orphaned stage worker processes). Please wrap the usage in a with block or call omni.close() in a finally block.

Suggested change
omni = Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
log_stats=args.log_stats,
stage_init_timeout=args.stage_init_timeout,
)
with Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
log_stats=args.log_stats,
stage_init_timeout=args.stage_init_timeout,
) as omni:

Comment on lines +107 to +110
engine = Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The Omni instance (engine) is not closed at the end of main(), which may leak background processes. Please use a context manager.

Suggested change
engine = Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
)
with Omni(
model=args.model,
stage_configs_path=args.stage_configs_path,
) as engine:

@inkcherry inkcherry merged commit 87f0518 into inkcherry:moriio Apr 20, 2026
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.