[Perf][PersonaPlex] Batch live duplex appends and replay Mimi codec frames from CUDA graphs (#8356)
Signed-off-by: Yueqian Lin <linyueqian@outlook.com>
This commit is contained in:
1 parent
e61cd4290f
commit
ed6bc5ae0c
14 files changed
+1640
-116
No files matched your search
@@ -17,6 +17,7 @@ from vllm.sampling_params import SamplingParams
|
||||
|
||||
from tests.e2e.online_serving import personaplex_realtime_duplex as e2e_driver
|
||||
from vllm_omni.config.stage_config import load_deploy_config, merge_pipeline_deploy
|
||||
from vllm_omni.engine.arg_utils import OmniEngineArgs
|
||||
from vllm_omni.engine.duplex.config import DuplexSessionConfig
|
||||
from vllm_omni.engine.duplex.contracts import DuplexFence
|
||||
from vllm_omni.engine.duplex.plugin import (
|
||||
@@ -26,6 +27,7 @@ from vllm_omni.engine.duplex.plugin import (
|
||||
load_duplex_plugin,
|
||||
validate_duplex_plugin_sampling,
|
||||
)
|
||||
from vllm_omni.model_executor.models.personaplex.configuration_personaplex import PersonaPlexConfig
|
||||
from vllm_omni.model_executor.models.personaplex.duplex import stage0
|
||||
from vllm_omni.model_executor.models.personaplex.duplex.config import DEFAULT_PERSONA, FRAME_SIZE, SAMPLE_RATE
|
||||
from vllm_omni.model_executor.models.personaplex.duplex.data_plane import PersonaPlexDataPlaneSession
|
||||
@@ -106,6 +108,36 @@ def test_personaplex_deploy_is_duplex_and_propagates_capacity_to_all_model_stage
|
||||
assert "personaplex_codec_max_sessions" not in deploy.connectors["connector_of_shared_memory"]["extra"]
|
||||
|
||||
|
||||
def test_personaplex_deploy_enables_mimi_cuda_graphs_on_both_stage_configs(tmp_path: Path) -> None:
|
||||
# The checkpoint ships an empty config.json; each stage's engine args build
|
||||
# its PersonaPlexConfig from that plus the deploy YAML's hf_overrides.
|
||||
(tmp_path / "config.json").write_text("{}")
|
||||
stages = merge_pipeline_deploy(PERSONAPLEX_PIPELINE, load_deploy_config(DEPLOY_PATH))
|
||||
|
||||
def resolve(model_arch: str, hf_overrides: dict[str, object] | None) -> PersonaPlexConfig:
|
||||
engine_args = OmniEngineArgs(
|
||||
model=str(tmp_path),
|
||||
model_arch=model_arch,
|
||||
hf_overrides=hf_overrides,
|
||||
skip_tokenizer_init=True,
|
||||
trust_remote_code=True,
|
||||
)
|
||||
config = engine_args.create_model_config().hf_config
|
||||
assert isinstance(config, PersonaPlexConfig)
|
||||
return config
|
||||
|
||||
assert [stage.yaml_engine_args["model_arch"] for stage in stages] == [
|
||||
"PersonaPlexTalkerForConditionalGeneration",
|
||||
"PersonaPlexCode2Wav",
|
||||
]
|
||||
for stage in stages:
|
||||
model_arch = stage.yaml_engine_args["model_arch"]
|
||||
assert stage.yaml_engine_args["hf_overrides"] == {"mimi_cuda_graphs": True}
|
||||
assert resolve(model_arch, dict(stage.yaml_engine_args["hf_overrides"])).mimi_cuda_graphs is True
|
||||
# Without the deploy override the flag keeps its default.
|
||||
assert resolve(model_arch, None).mimi_cuda_graphs is False
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Session policy #
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
||||
Reference in new issue
Block a user