[Platform] Fill in the missing backend parameter for torch.compile (#51781)

Signed-off-by: wangxiyuan <wangxiyuan1007@gmail.com>

wangxiyuan committed Aug 19, 2026 at 18:31 UTC cba06764d7a9da41e6f535d6355c13f725574f07
5 files changed +15 -9
vllm/model_executor/models/diffusion_gemma.py
+3 -3
@@ -126,7 +126,7 @@ class DiffusionGemmaProcessingInfo(Gemma4ProcessingInfo):
126 return super().get_mm_max_tokens_per_item(seq_len, mm_counts)
127
128
129 -@torch.compile(dynamic=True)
129 +@torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
130 def _softcap_logits(logits: torch.Tensor, cap: float) -> torch.Tensor:
131 # fp32 before tanh for numerical stability (matches HF DiffusionGemma).
132 # Compiling fuses the cast/div/tanh/mul into one elementwise kernel over
@@ -454,7 +454,7 @@ class DiffusionGemmaForConditionalGeneration(
454 raise ValueError(f"Unsupported modality: {modality}")
455
456
457 -@torch.compile(dynamic=True)
457 +@torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
458 def _compute_num_rejected(
459 num_logits: torch.Tensor,
460 num_sampled: torch.Tensor,
@@ -466,7 +466,7 @@ def _compute_num_rejected(
466 return torch.where(is_denoise, query_lens, num_rejected)
467
468
469 -@torch.compile(dynamic=True)
469 +@torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
470 def _compiled_sample_step(
471 # Logits from the model [num_decode * CL, vocab]
472 logits: torch.Tensor,
vllm/model_executor/models/kimi_k25_vit.py
+5 -1
@@ -61,7 +61,11 @@ def get_rope_shape_decorate(func):
61
62
63 @get_rope_shape_decorate
64 -@torch.compile(dynamic=True, disable=current_platform.simple_compile_backend == "tpu")
64 +@torch.compile(
65 + dynamic=True,
66 + backend=current_platform.simple_compile_backend,
67 + disable=current_platform.simple_compile_backend == "tpu",
68 +)
69 def get_rope_shape(org, interpolation_mode, shape):
70 return (
71 F.interpolate(
vllm/model_executor/models/parakeet.py
+4 -3
@@ -19,6 +19,7 @@ from vllm.logger import init_logger
19 from vllm.model_executor.layers.activation import ReLUSquaredActivation
20 from vllm.model_executor.layers.layernorm import RMSNorm
21 from vllm.model_executor.model_loader.weight_utils import default_weight_loader
22 +from vllm.platforms import current_platform
23 from vllm.transformers_utils.configs.parakeet import ExtractorConfig, ParakeetConfig
24
25 logger = init_logger(__name__)
@@ -186,7 +187,7 @@ class ParakeetExtractor:
187 )
188 return self._apply_mel_filters(stft, mel_filters)
189
189 - @torch.compile(dynamic=True)
190 + @torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
191 def _apply_mel_filters(
192 self, stft_output: torch.Tensor, mel_filters: torch.Tensor
193 ) -> torch.Tensor:
@@ -195,7 +196,7 @@ class ParakeetExtractor:
196 mel_spec = torch.log(mel_spec + LOG_ZERO_GUARD_VALUE)
197 return mel_spec.permute(0, 2, 1)
198
198 - @torch.compile(dynamic=True)
199 + @torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
200 def _apply_preemphasis(
201 self, input_features: torch.Tensor, audio_lengths: torch.Tensor
202 ) -> torch.Tensor:
@@ -213,7 +214,7 @@ class ParakeetExtractor:
214 input_features = input_features.masked_fill(~timemask, 0.0)
215 return input_features
216
216 - @torch.compile(dynamic=True)
217 + @torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
218 def _normalize_mel_features(
219 self, mel_features: torch.Tensor, audio_lengths: torch.Tensor
220 ) -> tuple[torch.Tensor, torch.Tensor]:
vllm/transformers_utils/processors/nano_nemotron_vl.py
+2 -1
@@ -26,6 +26,7 @@ from vllm.model_executor.models.parakeet import ParakeetExtractor
26 from vllm.multimodal.inputs import AudioItem
27 from vllm.multimodal.processing.processor import PromptUpdateDetails
28 from vllm.multimodal.video_prune.evs import compute_retained_tokens_count
29 +from vllm.platforms import current_platform
30 from vllm.tokenizers.hf import HfTokenizer
31
32 from .internvl import calculate_internvl_targets, get_internvl_target_ratios
@@ -56,7 +57,7 @@ def calculate_timestamps(
57 return timestamps
58
59
59 -@torch.compile(dynamic=True)
60 +@torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
61 def _bicubic_resize_and_normalize(
62 tensor: torch.Tensor,
63 size: tuple[int, int] | None = None,
vllm/v1/sample/ops/topk_topp_sampler.py
+1 -1
@@ -338,7 +338,7 @@ class TopKTopPSampler(nn.Module):
338
339 # Note: this is a workaround for
340 # https://github.com/pytorch/pytorch/pull/151218
341 -@torch.compile(dynamic=True)
341 +@torch.compile(dynamic=True, backend=current_platform.simple_compile_backend)
342 def compiled_random_sample(logits: torch.Tensor) -> torch.Tensor:
343 probs = logits.softmax(dim=-1, dtype=torch.float32)
344 q = torch.empty_like(probs)