From 807db6efd70ff2e9b55a63d6e1b0530e2b74f8f2 Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Mon, 27 Jul 2026 16:35:35 -0700 Subject: [PATCH] [Refactor] Migrate Voxtral TTS XPU stage config to --deploy-config (#5467) Signed-off-by: Joshna Medisetty --- .../test_voxtral_tts_expansion.py | 2 +- .../test_voxtral_tts_expansion.py | 4 +- vllm_omni/deploy/voxtral_tts.yaml | 11 ++ .../xpu/stage_configs/voxtral_tts.yaml | 106 ------------------ 4 files changed, 14 insertions(+), 109 deletions(-) delete mode 100644 vllm_omni/platforms/xpu/stage_configs/voxtral_tts.yaml diff --git a/tests/e2e/offline_inference/test_voxtral_tts_expansion.py b/tests/e2e/offline_inference/test_voxtral_tts_expansion.py index 56529dbbe..2441c46dc 100644 --- a/tests/e2e/offline_inference/test_voxtral_tts_expansion.py +++ b/tests/e2e/offline_inference/test_voxtral_tts_expansion.py @@ -58,7 +58,7 @@ def _compose_request(model_name: str, text: str, voice: str) -> dict: @pytest.mark.parametrize("omni_runner_function", [_OMNI_RUNNER_PARAM], indirect=True) -@hardware_test(res={"cuda": "L4"}, num_cards=1) +@hardware_test(res={"cuda": "L4", "xpu": "B60"}, num_cards=1) def test_voxtral_tts_offline_basic(omni_runner_function: OmniRunner) -> None: """Offline sync path; function-scoped runner so AsyncOmni test does not overlap a live Omni.""" omni = omni_runner_function.omni diff --git a/tests/e2e/online_serving/test_voxtral_tts_expansion.py b/tests/e2e/online_serving/test_voxtral_tts_expansion.py index 1448567d3..264778ab9 100644 --- a/tests/e2e/online_serving/test_voxtral_tts_expansion.py +++ b/tests/e2e/online_serving/test_voxtral_tts_expansion.py @@ -30,7 +30,7 @@ pytestmark = [ ] -@hardware_test(res={"cuda": "L4"}, num_cards=1) +@hardware_test(res={"cuda": "L4", "xpu": "B60"}, num_cards=1) def test_speech_english_basic(omni_server, openai_client) -> None: """Test basic English TTS generation.""" openai_client.send_audio_speech_request( @@ -46,7 +46,7 @@ def test_speech_english_basic(omni_server, openai_client) -> None: ) -@hardware_test(res={"cuda": "L4"}, num_cards=1) +@hardware_test(res={"cuda": "L4", "xpu": "B60"}, num_cards=1) def test_speech_english_streaming(omni_server, openai_client) -> None: """Test basic streaming English TTS generation (PCM via streaming API).""" openai_client.send_audio_speech_request( diff --git a/vllm_omni/deploy/voxtral_tts.yaml b/vllm_omni/deploy/voxtral_tts.yaml index d024c3900..5524c5cc8 100644 --- a/vllm_omni/deploy/voxtral_tts.yaml +++ b/vllm_omni/deploy/voxtral_tts.yaml @@ -69,3 +69,14 @@ stages: config_format: mistral load_format: mistral skip_mm_profiling: true + +platforms: + xpu: + stages: + - stage_id: 0 + enforce_eager: true + gpu_memory_utilization: 0.7 + distributed_executor_backend: "mp" + - stage_id: 1 + gpu_memory_utilization: 0.28 + distributed_executor_backend: "mp" diff --git a/vllm_omni/platforms/xpu/stage_configs/voxtral_tts.yaml b/vllm_omni/platforms/xpu/stage_configs/voxtral_tts.yaml deleted file mode 100644 index cf7937e52..000000000 --- a/vllm_omni/platforms/xpu/stage_configs/voxtral_tts.yaml +++ /dev/null @@ -1,106 +0,0 @@ -# Voxtral TTS — Intel XPU (AR → audio tokenizer). Matches CUDA stage config knobs where noted. - -async_chunk: true -stage_args: - - stage_id: 0 - stage_type: llm - runtime: - process: true - devices: "0" - max_batch_size: 1 - engine_args: - max_num_seqs: 32 - model_stage: audio_generation - model_arch: VoxtralTTSForConditionalGeneration - worker_type: ar - worker_cls: vllm_omni.platforms.xpu.worker.xpu_ar_worker.XPUARWorker - scheduler_cls: vllm_omni.core.sched.omni_ar_scheduler.OmniARScheduler - gpu_memory_utilization: 0.7 - enforce_eager: true - trust_remote_code: true - async_scheduling: true - engine_output_type: latent - enable_prefix_caching: false - tokenizer_mode: mistral - config_format: mistral - load_format: mistral - skip_mm_profiling: true - enable_chunked_prefill: false - max_model_len: 4096 - distributed_executor_backend: "mp" - custom_process_next_stage_input_func: vllm_omni.model_executor.stage_input_processors.voxtral_tts.generator2tokenizer_async_chunk - output_connectors: - to_stage_1: connector_of_shared_memory - is_comprehension: true - final_output: false - final_output_type: text - default_sampling_params: - temperature: 0.0 - top_p: 1.0 - top_k: -1 - max_tokens: 2048 - seed: 42 - detokenize: True - repetition_penalty: 1.1 - - - stage_id: 1 - stage_type: llm - runtime: - process: true - devices: "0" - max_batch_size: 1 - engine_args: - model_stage: audio_tokenizer - model_arch: VoxtralTTSForConditionalGeneration - worker_type: generation - worker_cls: vllm_omni.platforms.xpu.worker.xpu_generation_worker.XPUGenerationWorker - scheduler_cls: vllm_omni.core.sched.omni_generation_scheduler.OmniGenerationScheduler - async_scheduling: false - max_num_seqs: 1 - gpu_memory_utilization: 0.28 - enforce_eager: true - trust_remote_code: true - enable_prefix_caching: false - skip_mm_profiling: true - engine_output_type: audio - tokenizer_mode: mistral - config_format: mistral - load_format: mistral - max_num_batched_tokens: 16384 - max_model_len: 16384 - distributed_executor_backend: "mp" - engine_input_source: [0] - is_comprehension: false - final_output: true - final_output_type: audio - input_connectors: - from_stage_0: connector_of_shared_memory - tts_args: - max_instructions_length: 500 - default_sampling_params: - temperature: 0.9 - top_p: 0.8 - top_k: 40 - max_tokens: 2048 - seed: 42 - detokenize: True - repetition_penalty: 1.05 - -runtime: - enabled: true - - connectors: - connector_of_shared_memory: - name: SharedMemoryConnector - extra: - codec_streaming: true - connector_get_sleep_s: 0.01 - connector_get_max_wait_first_chunk: 3000 - connector_get_max_wait: 300 - codec_chunk_frames: 25 - codec_chunk_frames_at_begin: 5 - codec_left_context_frames: 25 - - edges: - - from: 0 - to: 1