@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / bb4337b34c
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 10, 19:00 UTC

[Platform] Deprecate seed_everything (#31659)

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

wangxiyuan committed Jan 5, 2026 at 10:34 UTC bb4337b34c13fd704d8fd1afca30e22e1dbd9da7
77 files changed +219 -171
docs/design/plugin_system.md
+1
@@ -154,3 +154,4 @@ The interface for the model/module may change during vLLM's development. If you
154 !!! warning "Deprecations"
155 - `use_v1` parameter in `Platform.get_attn_backend_cls` is deprecated. It has been removed in v0.13.0.
156 - `_Backend` in `vllm.attention` is deprecated. It has been removed in v0.13.0. Please use `vllm.attention.backends.registry.register_backend` to add new attention backend to `AttentionBackendEnum` instead.
157 + - `seed_everything` platform interface is deprecated. It will be removed in v0.14.0 or later. Please use `vllm.utils.torch_utils.set_random_seed` instead.
tests/compile/distributed/test_async_tp.py
+2 -1
@@ -26,6 +26,7 @@ from vllm.distributed.parallel_state import (
26 )
27 from vllm.platforms import current_platform
28 from vllm.utils.system_utils import update_environment_variables
29 +from vllm.utils.torch_utils import set_random_seed
30
31 from ...models.registry import HF_EXAMPLE_MODELS
32 from ...utils import (
@@ -301,7 +302,7 @@ def async_tp_pass_on_test_model(
302 dtype: torch.dtype,
303 dynamic: bool,
304 ):
304 - current_platform.seed_everything(0)
305 + set_random_seed(0)
306
307 device = torch.device(f"cuda:{local_rank}")
308 torch.cuda.set_device(device)
tests/compile/distributed/test_fusion_all_reduce.py
+2 -1
@@ -32,6 +32,7 @@ from vllm.model_executor.layers.quantization.utils.w8a8_utils import (
32 )
33 from vllm.platforms import current_platform
34 from vllm.utils.system_utils import update_environment_variables
35 +from vllm.utils.torch_utils import set_random_seed
36
37 from ...utils import has_module_attribute, multi_gpu_test
38 from ..backend import TestBackend
@@ -263,7 +264,7 @@ def all_reduce_fusion_pass_on_test_model(
264 enable_rms_norm_custom_op,
265 enable_quant_fp8_custom_op,
266 ):
266 - current_platform.seed_everything(0)
267 + set_random_seed(0)
268
269 device = torch.device(f"cuda:{local_rank}")
270 torch.cuda.set_device(device)
tests/compile/distributed/test_sequence_parallelism.py
+2 -1
@@ -31,6 +31,7 @@ from vllm.model_executor.layers.quantization.utils.quant_utils import GroupShape
31 from vllm.model_executor.layers.quantization.utils.w8a8_utils import Fp8LinearOp
32 from vllm.platforms import current_platform
33 from vllm.utils.system_utils import update_environment_variables
34 +from vllm.utils.torch_utils import set_random_seed
35
36 from ...utils import multi_gpu_test
37 from ..backend import TestBackend
@@ -232,7 +233,7 @@ def sequence_parallelism_pass_on_test_model(
233 fuse_norm_quant: bool,
234 dynamic: bool,
235 ):
235 - current_platform.seed_everything(0)
236 + set_random_seed(0)
237
238 device = torch.device(f"cuda:{local_rank}")
239 torch.cuda.set_device(device)
tests/kernels/attention/test_aiter_flash_attn.py
+2 -1
@@ -8,6 +8,7 @@ import torch
8 import vllm.v1.attention.backends.rocm_aiter_fa # noqa: F401
9 from vllm.attention.utils.fa_utils import is_flash_attn_varlen_func_available
10 from vllm.platforms import current_platform
11 +from vllm.utils.torch_utils import set_random_seed
12
13 NUM_HEADS = [(4, 4), (8, 2)]
14 HEAD_SIZES = [128, 256]
@@ -104,7 +105,7 @@ def test_varlen_with_paged_kv(
105 if not is_flash_attn_varlen_func_available():
106 pytest.skip("flash_attn_varlen_func required to run this test.")
107 torch.set_default_device("cuda")
107 - current_platform.seed_everything(0)
108 + set_random_seed(0)
109 num_seqs = len(seq_lens)
110 query_lens = [x[0] for x in seq_lens]
111 kv_lens = [x[1] for x in seq_lens]
tests/kernels/attention/test_attention.py
+2 -1
@@ -13,6 +13,7 @@ from vllm.attention.layer import Attention
13 from vllm.attention.layers.mm_encoder_attention import MMEncoderAttention
14 from vllm.platforms import current_platform
15 from vllm.utils.mem_utils import get_max_shared_memory_bytes
16 +from vllm.utils.torch_utils import set_random_seed
17
18 FLOAT32_BYTES = torch.finfo(torch.float).bits // 8
19 # This will change depending on the compute capability.
@@ -150,7 +151,7 @@ def test_paged_attention(
151
152 global PARTITION_SIZE
153
153 - current_platform.seed_everything(seed)
154 + set_random_seed(seed)
155 torch.set_default_device(device)
156 scale = float(1.0 / (head_size**0.5))
157 num_query_heads, num_kv_heads = num_heads
tests/kernels/attention/test_cache.py
+9 -8
@@ -9,6 +9,7 @@ import torch
9 from tests.kernels.utils import DEFAULT_OPCHECK_TEST_UTILS, opcheck
10 from vllm import _custom_ops as ops
11 from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13
14 COPYING_DIRECTION = [("cuda", "cpu"), ("cuda", "cuda"), ("cpu", "cuda")]
15 DTYPES = [torch.bfloat16, torch.float]
@@ -64,7 +65,7 @@ def test_reshape_and_cache(
65 ) -> None:
66 if kv_cache_dtype == "fp8" and head_size % 16:
67 pytest.skip()
67 - current_platform.seed_everything(seed)
68 + set_random_seed(seed)
69 torch.set_default_device(device)
70 torch.cuda.set_device(device)
71 # Create a random slot mapping.
@@ -185,7 +186,7 @@ def test_reshape_and_cache_flash(
186 kv_cache_layout: str,
187 implementation: str,
188 ) -> None:
188 - current_platform.seed_everything(seed)
189 + set_random_seed(seed)
190 torch.set_default_device(device)
191 torch.cuda.set_device(device)
192 assert implementation in ["cuda", "triton"]
@@ -355,7 +356,7 @@ def test_swap_blocks(
356 if kv_cache_dtype == "fp8" and head_size % 16:
357 pytest.skip()
358
358 - current_platform.seed_everything(seed)
359 + set_random_seed(seed)
360
361 src_device = device if direction[0] == "cuda" else "cpu"
362 dst_device = device if direction[1] == "cuda" else "cpu"
@@ -444,7 +445,7 @@ def test_fp8_e4m3_conversion(
445 seed: int,
446 device: str,
447 ) -> None:
447 - current_platform.seed_everything(seed)
448 + set_random_seed(seed)
449
450 low = -224.0
451 high = 224.0
@@ -507,7 +508,7 @@ def test_concat_and_cache_mla(
508 device: str,
509 kv_cache_dtype: str,
510 ) -> None:
510 - current_platform.seed_everything(seed)
511 + set_random_seed(seed)
512 torch.set_default_device(device)
513 torch.cuda.set_device(device)
514
@@ -584,7 +585,7 @@ def test_concat_and_cache_ds_mla(
585 if dtype.itemsize != 2:
586 pytest.skip("ds_mla only supports 16-bit input")
587 kv_cache_dtype = "fp8_ds_mla"
587 - current_platform.seed_everything(seed)
588 + set_random_seed(seed)
589 torch.set_default_device(device)
590 torch.cuda.set_device(device)
591
@@ -695,7 +696,7 @@ def test_swap_blocks_mla(
696 device: str,
697 kv_cache_dtype: str,
698 ) -> None:
698 - current_platform.seed_everything(seed)
699 + set_random_seed(seed)
700 torch.set_default_device(device)
701 torch.cuda.set_device(device)
702
@@ -947,7 +948,7 @@ def test_concat_and_cache_mla_cpu(
948 ) -> None:
949 device = "cpu"
950 kv_cache_dtype = "auto"
950 - current_platform.seed_everything(seed)
951 + set_random_seed(seed)
952 torch.set_default_device(device)
953
954 total_slots = num_blocks * block_size
tests/kernels/attention/test_cascade_flash_attn.py
+3 -2
@@ -6,6 +6,7 @@ import pytest
6 import torch
7
8 from vllm.platforms import current_platform
9 +from vllm.utils.torch_utils import set_random_seed
10 from vllm.v1.attention.backends.flash_attn import cascade_attention, merge_attn_states
11
12 try:
@@ -39,7 +40,7 @@ def test_merge_kernel(
40 dtype: torch.dtype,
41 ):
42 torch.set_default_device("cuda")
42 - current_platform.seed_everything(0)
43 + set_random_seed(0)
44 num_query_heads = num_heads[0]
45 num_kv_heads = num_heads[1]
46 assert num_query_heads % num_kv_heads == 0
@@ -103,7 +104,7 @@ def test_cascade(
104 f'to: "{fa_version_unsupported_reason(fa_version)}"'
105 )
106
106 - current_platform.seed_everything(0)
107 + set_random_seed(0)
108
109 window_size = (-1, -1)
110 scale = head_size**-0.5
tests/kernels/attention/test_cpu_attn.py
+2 -1
@@ -8,6 +8,7 @@ import pytest
8 import torch
9
10 from vllm.platforms import CpuArchEnum, current_platform
11 +from vllm.utils.torch_utils import set_random_seed
12 from vllm.v1.attention.backends.cpu_attn import _get_attn_isa
13
14 if not current_platform.is_cpu():
@@ -190,7 +191,7 @@ def varlen_with_paged_kv(
191 use_sink: bool,
192 isa: str,
193 ) -> None:
193 - current_platform.seed_everything(0)
194 + set_random_seed(0)
195 num_seqs = len(seq_lens)
196 query_lens = [x[0] for x in seq_lens]
197 kv_lens = [x[1] for x in seq_lens]
tests/kernels/attention/test_flash_attn.py
+2 -1
@@ -6,6 +6,7 @@ import pytest
6 import torch
7
8 from vllm.platforms import current_platform
9 +from vllm.utils.torch_utils import set_random_seed
10
11 try:
12 from vllm.vllm_flash_attn import (
@@ -129,7 +130,7 @@ def test_varlen_with_paged_kv(
130 "Flash attention with quantized inputs is only "
131 "supported on version 3 with bfloat16 base type"
132 )
132 - current_platform.seed_everything(0)
133 + set_random_seed(0)
134 num_seqs = len(seq_lens)
135 query_lens = [x[0] for x in seq_lens]
136 kv_lens = [x[1] for x in seq_lens]
tests/kernels/attention/test_flashinfer.py
+5 -4
@@ -5,6 +5,7 @@
5 import pytest
6
7 from vllm.platforms import current_platform
8 +from vllm.utils.torch_utils import set_random_seed
9
10 try:
11 import flashinfer
@@ -101,7 +102,7 @@ def test_flashinfer_decode_with_paged_kv(
102 sliding_window: int | None,
103 ) -> None:
104 torch.set_default_device("cuda")
104 - current_platform.seed_everything(0)
105 + set_random_seed(0)
106 num_seqs = len(kv_lens)
107 num_query_heads = num_heads[0]
108 num_kv_heads = num_heads[1]
@@ -196,7 +197,7 @@ def test_flashinfer_prefill_with_paged_kv(
197 sliding_window: int | None,
198 ) -> None:
199 torch.set_default_device("cuda")
199 - current_platform.seed_everything(0)
200 + set_random_seed(0)
201 num_seqs = len(seq_lens)
202 query_lens = [x[0] for x in seq_lens]
203 kv_lens = [x[1] for x in seq_lens]
@@ -299,7 +300,7 @@ def test_flashinfer_prefill_with_paged_fp8_kv(
300 ) -> None:
301 pytest.skip("TODO: fix the accuracy issue")
302 torch.set_default_device("cuda")
302 - current_platform.seed_everything(0)
303 + set_random_seed(0)
304 num_seqs = len(seq_lens)
305 query_lens = [x[0] for x in seq_lens]
306 kv_lens = [x[1] for x in seq_lens]
@@ -409,7 +410,7 @@ def test_flashinfer_decode_with_paged_fp8_kv(
410 ) -> None:
411 # test doesn't work for num_heads = (16,16)
412 torch.set_default_device("cuda")
412 - current_platform.seed_everything(0)
413 + set_random_seed(0)
414 num_seqs = len(kv_lens)
415 num_query_heads = num_heads[0]
416 num_kv_heads = num_heads[1]
tests/kernels/attention/test_flashinfer_trtllm_attention.py
+3 -2
@@ -10,6 +10,7 @@ from tests.kernels.quantization.nvfp4_utils import (
10 )
11 from vllm.platforms import current_platform
12 from vllm.utils.math_utils import round_up
13 +from vllm.utils.torch_utils import set_random_seed
14
15 if not current_platform.is_device_capability_family(100):
16 pytest.skip(
@@ -80,7 +81,7 @@ def test_flashinfer_trtllm_decode_with_baseline(
81 has_sinks: bool,
82 ) -> None:
83 torch.set_default_device("cuda")
83 - current_platform.seed_everything(42)
84 + set_random_seed(42)
85
86 q_quant_dtype, kv_quant_dtype, o_quant_dtype = quant_dtypes
87 q_quant_dtype = q_quant_dtype or dtype
@@ -279,7 +280,7 @@ def test_flashinfer_trtllm_prefill_with_baseline(
280 has_sinks: bool,
281 ) -> None:
282 torch.set_default_device("cuda")
282 - current_platform.seed_everything(42)
283 + set_random_seed(42)
284
285 q_quant_dtype, kv_quant_dtype, o_quant_dtype = quant_dtypes
286 q_quant_dtype = q_quant_dtype or dtype
tests/kernels/attention/test_lightning_attn.py
+4 -4
@@ -5,7 +5,7 @@ import pytest
5 import torch
6
7 from vllm.model_executor.layers.lightning_attn import linear_decode_forward_triton
8 -from vllm.platforms import current_platform
8 +from vllm.utils.torch_utils import set_random_seed
9
10 NUM_HEADS = [4, 8]
11 HEAD_SIZES = [64]
@@ -124,7 +124,7 @@ def test_linear_decode_forward_triton(
124 torch.set_default_device("cuda")
125 torch.manual_seed(42)
126 torch.cuda.manual_seed_all(42)
127 - current_platform.seed_everything(42)
127 + set_random_seed(42)
128 base = 0.01
129 q = base * torch.randn(batch_size, num_heads, 1, head_size, dtype=dtype)
130 k = base * torch.randn(batch_size, num_heads, 1, head_size, dtype=dtype)
@@ -167,7 +167,7 @@ def test_linear_decode_forward_triton_with_padding(
167 torch.set_default_device("cuda")
168 torch.manual_seed(42)
169 torch.cuda.manual_seed_all(42)
170 - current_platform.seed_everything(42)
170 + set_random_seed(42)
171
172 batch_size = 4
173 base = 0.01
@@ -231,7 +231,7 @@ def test_lightning_attention_reference(
231 torch.set_default_device("cuda")
232 torch.manual_seed(42)
233 torch.cuda.manual_seed_all(42)
234 - current_platform.seed_everything(42)
234 + set_random_seed(42)
235
236 base = 0.01
237 q = base * torch.randn(batch_size, num_heads, seq_len, head_size, dtype=dtype)
tests/kernels/attention/test_mha_attn.py
+3 -2
@@ -19,6 +19,7 @@ from vllm.platforms import current_platform
19 from vllm.platforms.cpu import CpuPlatform
20 from vllm.platforms.cuda import CudaPlatform
21 from vllm.platforms.rocm import RocmPlatform
22 +from vllm.utils.torch_utils import set_random_seed
23
24
25 @pytest.fixture(autouse=True)
@@ -123,7 +124,7 @@ def test_mha_attn_forward(
124 dtype: torch.dtype,
125 device: str,
126 ):
126 - current_platform.seed_everything(0)
127 + set_random_seed(0)
128 torch.set_default_device(device)
129 torch.set_default_dtype(dtype)
130
@@ -168,7 +169,7 @@ def test_mha_attn_varlen_forward(
169 dtype: torch.dtype,
170 device: str,
171 ):
171 - current_platform.seed_everything(0)
172 + set_random_seed(0)
173 torch.set_default_device(device)
174 torch.set_default_dtype(dtype)
175
tests/kernels/attention/test_prefix_prefill.py
+3 -3
@@ -13,7 +13,7 @@ import torch.nn.functional as F
13 from vllm.attention.ops.chunked_prefill_paged_decode import chunked_prefill_paged_decode
14 from vllm.attention.ops.prefix_prefill import context_attention_fwd
15 from vllm.platforms import current_platform
16 -from vllm.utils.torch_utils import STR_DTYPE_TO_TORCH_DTYPE
16 +from vllm.utils.torch_utils import STR_DTYPE_TO_TORCH_DTYPE, set_random_seed
17
18 NUM_HEADS = [64]
19 NUM_QUERIES_PER_KV = [1, 64]
@@ -125,7 +125,7 @@ def test_contexted_kv_attention(
125 ):
126 pytest.skip("ROCm custom paged attention does not support fp8_e5m2 KV cache")
127
128 - current_platform.seed_everything(0)
128 + set_random_seed(0)
129 torch.set_default_device(device)
130
131 # Need this, otherwise when we capture the graph the process
@@ -346,7 +346,7 @@ def test_contexted_kv_attention_alibi(
346 ):
347 pytest.skip("ROCm custom paged attention does not support fp8_e5m2 KV cache")
348
349 - current_platform.seed_everything(0)
349 + set_random_seed(0)
350 torch.set_default_device(device)
351
352 # Need this, otherwise when we capture the graph the process
tests/kernels/attention/test_triton_unified_attention.py
+2 -1
@@ -8,6 +8,7 @@ import torch
8 from vllm.attention.ops.triton_unified_attention import unified_attention
9 from vllm.platforms import current_platform
10 from vllm.utils.math_utils import next_power_of_2
11 +from vllm.utils.torch_utils import set_random_seed
12
13 NUM_HEADS = [(4, 4), (8, 2)]
14 HEAD_SIZES = [128, 256]
@@ -113,7 +114,7 @@ def test_triton_unified_attn(
114 ) -> None:
115 torch.set_default_device("cuda")
116
116 - current_platform.seed_everything(0)
117 + set_random_seed(0)
118 num_seqs = len(seq_lens)
119 query_lens = [x[0] for x in seq_lens]
120 kv_lens = [x[1] for x in seq_lens]
tests/kernels/core/test_activation.py
+3 -3
@@ -18,7 +18,7 @@ from vllm.model_executor.layers.activation import (
18 SiluAndMul,
19 SwigluOAIAndMul,
20 )
21 -from vllm.platforms import current_platform
21 +from vllm.utils.torch_utils import set_random_seed
22
23 DTYPES = [torch.half, torch.bfloat16, torch.float]
24 NUM_TOKENS = [7, 83, 2048] # Arbitrary values for testing
@@ -52,7 +52,7 @@ def test_act_and_mul(
52 seed: int,
53 device: str,
54 ) -> None:
55 - current_platform.seed_everything(seed)
55 + set_random_seed(seed)
56 torch.set_default_device(device)
57 x = torch.randn(num_tokens, 2 * d, dtype=dtype)
58 if activation == "silu_and_mul":
@@ -129,7 +129,7 @@ def test_activation(
129 seed: int,
130 device: str,
131 ) -> None:
132 - current_platform.seed_everything(seed)
132 + set_random_seed(seed)
133 torch.set_default_device(device)
134 x = torch.randn(num_tokens, d, dtype=dtype)
135 layer = activation[0]()
tests/kernels/core/test_fused_qk_norm_rope.py
+2 -1
@@ -8,6 +8,7 @@ from tests.kernels.utils import opcheck
8 from vllm.model_executor.layers.layernorm import RMSNorm
9 from vllm.model_executor.layers.rotary_embedding import RotaryEmbedding
10 from vllm.platforms import current_platform
11 +from vllm.utils.torch_utils import set_random_seed
12
13 DTYPES = [torch.bfloat16, torch.float16]
14 IS_NEOX = [True, False]
@@ -64,7 +65,7 @@ def test_fused_qk_norm_rope_matches_reference(
65 rotary_ratio: float,
66 ):
67 torch.set_default_device(device)
67 - current_platform.seed_everything(seed)
68 + set_random_seed(seed)
69 num_heads, num_kv_heads, head_dim = 16, 4, 128
70 num_tokens = 4
71
tests/kernels/core/test_layernorm.py
+3 -3
@@ -7,7 +7,7 @@ import torch
7 from tests.kernels.quant_utils import FP8_DTYPE
8 from tests.kernels.utils import opcheck
9 from vllm.model_executor.layers.layernorm import RMSNorm
10 -from vllm.platforms import current_platform
10 +from vllm.utils.torch_utils import set_random_seed
11
12 DTYPES = [torch.half, torch.bfloat16, torch.float]
13 NUM_TOKENS = [7, 83, 4096] # Arbitrary values for testing
@@ -34,7 +34,7 @@ def test_rms_norm(
34 device: str,
35 strided_input: bool,
36 ) -> None:
37 - current_platform.seed_everything(seed)
37 + set_random_seed(seed)
38 torch.set_default_device(device)
39 layer = RMSNorm(hidden_size).to(dtype=dtype)
40 layer.weight.data.normal_(mean=1.0, std=0.1)
@@ -88,7 +88,7 @@ def test_fused_rms_norm_quant(
88 device: str,
89 strided_input: bool,
90 ) -> None:
91 - current_platform.seed_everything(seed)
91 + set_random_seed(seed)
92 torch.set_default_device(device)
93
94 weight = torch.empty(hidden_size, dtype=dtype).normal_(mean=1.0, std=0.1)
tests/kernels/core/test_mrope.py
+2 -1
@@ -10,6 +10,7 @@ from transformers import __version__ as TRANSFORMERS_VERSION
10 from vllm.model_executor.layers.rotary_embedding import get_rope
11 from vllm.platforms import current_platform
12 from vllm.transformers_utils.config import get_config
13 +from vllm.utils.torch_utils import set_random_seed
14
15 device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
16
@@ -24,7 +25,7 @@ def generate_test_data(
25 device: torch.device,
26 ):
27 """Generate test data for given configuration."""
27 - current_platform.seed_everything(42)
28 + set_random_seed(42)
29 # Create 2D positions (3, num_tokens) for multimodal case
30 positions = torch.randint(
31 0, max_position_embeddings // 4, (3, num_tokens), device=device
tests/kernels/core/test_pos_encoding.py
+2 -2
@@ -9,7 +9,7 @@ import torch
9
10 from tests.kernels.allclose_default import get_default_atol, get_default_rtol
11 from vllm.model_executor.layers.rotary_embedding import get_rope
12 -from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13
14 IS_NEOX_STYLE = [True, False]
15 DTYPES = [torch.bfloat16, torch.float]
@@ -79,7 +79,7 @@ def test_rotary_embedding(
79 if rotary_dim is None:
80 rotary_dim = head_size
81
82 - current_platform.seed_everything(seed)
82 + set_random_seed(seed)
83 torch.set_default_device(device)
84 if rotary_dim is None:
85 rotary_dim = head_size
tests/kernels/mamba/test_causal_conv1d.py
+4 -4
@@ -12,7 +12,7 @@ from vllm.model_executor.layers.mamba.ops.causal_conv1d import (
12 causal_conv1d_fn,
13 causal_conv1d_update,
14 )
15 -from vllm.platforms import current_platform
15 +from vllm.utils.torch_utils import set_random_seed
16
17
18 def causal_conv1d_ref(
@@ -154,7 +154,7 @@ def test_causal_conv1d_update(dim, width, seqlen, has_bias, silu_activation, ity
154 if itype == torch.bfloat16:
155 rtol, atol = 1e-2, 5e-2
156 # set seed
157 - current_platform.seed_everything(0)
157 + set_random_seed(0)
158 batch = 2
159 x = torch.randn(batch, dim, seqlen, device=device, dtype=itype)
160 x_ref = x.clone()
@@ -201,7 +201,7 @@ def test_causal_conv1d_update_with_batch_gather(
201 rtol, atol = 1e-2, 5e-2
202
203 # set seed
204 - current_platform.seed_everything(0)
204 + set_random_seed(0)
205
206 padding = 5 if with_padding else 0
207 padded_batch_size = batch_size + padding
@@ -278,7 +278,7 @@ def test_causal_conv1d_varlen(
278 if itype == torch.bfloat16:
279 rtol, atol = 1e-2, 5e-2
280 # set seed
281 - current_platform.seed_everything(0)
281 + set_random_seed(0)
282 seqlens = []
283 batch_size = batch
284 padding = 3 if with_padding else 0
tests/kernels/mamba/test_mamba_mixer2.py
+2 -2
@@ -12,8 +12,8 @@ from vllm.distributed.parallel_state import (
12 initialize_model_parallel,
13 )
14 from vllm.model_executor.layers.mamba.mamba_mixer2 import Mixer2RMSNormGated
15 -from vllm.platforms import current_platform
15 from vllm.utils.system_utils import update_environment_variables
16 +from vllm.utils.torch_utils import set_random_seed
17
18
19 @multi_gpu_test(num_gpus=2)
@@ -68,7 +68,7 @@ def mixer2_gated_norm_tensor_parallel(
68 dtype: torch.dtype,
69 device: str,
70 ):
71 - current_platform.seed_everything(0)
71 + set_random_seed(0)
72
73 device = torch.device(f"cuda:{local_rank}")
74 torch.cuda.set_device(device)
tests/kernels/mamba/test_mamba_ssm.py
+6 -6
@@ -13,7 +13,7 @@ from vllm.model_executor.layers.mamba.ops.mamba_ssm import (
13 selective_scan_fn,
14 selective_state_update,
15 )
16 -from vllm.platforms import current_platform
16 +from vllm.utils.torch_utils import set_random_seed
17
18
19 def selective_state_update_ref(
@@ -271,7 +271,7 @@ def test_selective_scan(
271 rtolw = max(rtolw, rtol)
272 atolw = max(atolw, atol)
273 # set seed
274 - current_platform.seed_everything(0)
274 + set_random_seed(0)
275 batch_size = 1
276 dim = 4
277 dstate = 8
@@ -401,7 +401,7 @@ def test_selective_state_update(dim, dstate, has_z, itype):
401 if torch.version.hip:
402 atol *= 2
403 # set seed
404 - current_platform.seed_everything(0)
404 + set_random_seed(0)
405 batch_size = 1
406 state = torch.randn(batch_size, dim, dstate, dtype=itype, device=device)
407 x = torch.randn(batch_size, dim, device=device, dtype=itype)
@@ -438,7 +438,7 @@ def test_selective_state_update_varlen(dim, dstate, has_z, itype, max_seq_len):
438 if torch.version.hip:
439 atol *= 2
440 # set seed
441 - current_platform.seed_everything(0)
441 + set_random_seed(0)
442 batch_size = 4
443 token_counts = torch.randint(1, max_seq_len + 1, (batch_size,), device=device)
444 total_tokens = int(token_counts.sum().item())
@@ -857,7 +857,7 @@ def test_selective_state_update_with_num_accepted_tokens(
857 if torch.version.hip:
858 atol *= 2
859
860 - current_platform.seed_everything(0)
860 + set_random_seed(0)
861 batch_size = 4
862
863 tokens_per_seq = torch.randint(1, max_seq_len + 1, (batch_size,), device=device)
@@ -983,7 +983,7 @@ def test_selective_state_update_varlen_with_num_accepted(
983 if torch.version.hip:
984 atol *= 2
985
986 - current_platform.seed_everything(0)
986 + set_random_seed(0)
987 batch_size = 4
988
989 tokens_per_seq = torch.randint(1, max_seq_len + 1, (batch_size,), device=device)
tests/kernels/mamba/test_mamba_ssm_ssd.py
+2 -2
@@ -9,7 +9,7 @@ from einops import rearrange, repeat
9 from vllm.model_executor.layers.mamba.ops.ssd_combined import (
10 mamba_chunk_scan_combined_varlen,
11 )
12 -from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13 from vllm.v1.attention.backends.mamba2_attn import compute_varlen_chunk_metadata
14
15 # Added by the IBM Team, 2024
@@ -82,7 +82,7 @@ def ssd_minimal_discrete(X, A, B, C, block_len, initial_states=None):
82
83
84 def generate_random_inputs(batch_size, seqlen, n_heads, d_head, itype, device="cuda"):
85 - current_platform.seed_everything(0)
85 + set_random_seed(0)
86 A = -torch.exp(torch.rand(n_heads, dtype=itype, device=device))
87 dt = F.softplus(
88 torch.randn(batch_size, seqlen, n_heads, dtype=itype, device=device) - 4
tests/kernels/moe/modular_kernel_tools/make_feature_matrix.py
+2 -2
@@ -10,7 +10,7 @@ from tqdm import tqdm
10
11 from vllm.config import VllmConfig, set_current_vllm_config
12 from vllm.model_executor.layers.fused_moe.config import FUSED_MOE_UNQUANTIZED_CONFIG
13 -from vllm.platforms import current_platform
13 +from vllm.utils.torch_utils import set_random_seed
14
15 from .common import (
16 Config,
@@ -40,7 +40,7 @@ def rank_worker(
40 config: Config,
41 weights: WeightTensors,
42 ):
43 - current_platform.seed_everything(pgi.rank)
43 + set_random_seed(pgi.rank)
44
45 # sanity check
46 from vllm import envs
tests/kernels/moe/modular_kernel_tools/profile_modular_kernel.py
+2 -2
@@ -9,7 +9,7 @@ from typing import Any
9 import torch
10
11 from vllm.config import VllmConfig
12 -from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13
14 from .common import Config, RankTensors, WeightTensors, make_modular_kernel
15 from .parallel_utils import ProcessGroupInfo, parallel_launch_with_config
@@ -82,7 +82,7 @@ def rank_worker(
82 config: Config,
83 weights: WeightTensors,
84 ):
85 - current_platform.seed_everything(pgi.rank)
85 + set_random_seed(pgi.rank)
86
87 # sanity check
88 from vllm import envs
tests/kernels/moe/test_batched_moe.py
+3 -2
@@ -21,6 +21,7 @@ from vllm.model_executor.layers.fused_moe.fused_batched_moe import (
21 from vllm.model_executor.layers.fused_moe.fused_moe import fused_topk
22 from vllm.platforms import current_platform
23 from vllm.triton_utils import tl
24 +from vllm.utils.torch_utils import set_random_seed
25
26 MNK_FACTORS = [
27 (1, 128, 128),
@@ -115,7 +116,7 @@ def test_batched_mm(
116 ):
117 """Note: float8_e4m3fn is not supported on CUDA architecture < 89,
118 and those tests will be skipped on unsupported hardware."""
118 - current_platform.seed_everything(7)
119 + set_random_seed(7)
120
121 use_fp8_w8a8 = dtype == torch.float8_e4m3fn
122
@@ -252,7 +253,7 @@ def test_fused_moe_batched_experts(
253 ):
254 """Note: float8_e4m3fn is not supported on CUDA architecture < 89,
255 and those tests will be skipped on unsupported hardware."""
255 - current_platform.seed_everything(7)
256 + set_random_seed(7)
257
258 use_fp8_w8a8 = dtype == torch.float8_e4m3fn
259
tests/kernels/moe/test_cpu_fused_moe.py
+2 -1
@@ -8,6 +8,7 @@ from tests.kernels.allclose_default import get_default_atol, get_default_rtol
8 from vllm._custom_ops import cpu_fused_moe, cpu_prepack_moe_weight
9 from vllm.model_executor.layers.activation import SiluAndMul, SwigluOAIAndMul
10 from vllm.platforms import current_platform
11 +from vllm.utils.torch_utils import set_random_seed
12
13 if not current_platform.is_cpu():
14 pytest.skip("skipping CPU-only tests", allow_module_level=True)
@@ -114,7 +115,7 @@ def test_cpu_fused_moe(
115 act: str,
116 isa: str,
117 ):
117 - current_platform.seed_everything(0)
118 + set_random_seed(0)
119
120 topk_num = max(expert_num // 2, 1)
121 up_dim = 2 * intermediate_size
tests/kernels/moe/test_cutlass_moe.py
+4 -3
@@ -20,6 +20,7 @@ from vllm.model_executor.layers.fused_moe.cutlass_moe import (
20 from vllm.model_executor.layers.fused_moe.fused_moe import fused_experts, fused_topk
21 from vllm.model_executor.layers.fused_moe.utils import moe_kernel_quantize_input
22 from vllm.platforms import current_platform
23 +from vllm.utils.torch_utils import set_random_seed
24
25 NUM_EXPERTS = [40, 64]
26 TOP_KS = [6, 8]
@@ -277,7 +278,7 @@ def test_cutlass_moe_8_bit_no_graph(
278 workspace_init,
279 ep_size: int | None = None,
280 ):
280 - current_platform.seed_everything(7)
281 + set_random_seed(7)
282 monkeypatch.setenv("VLLM_FUSED_MOE_CHUNK_SIZE", "8192")
283 with set_current_vllm_config(vllm_config):
284 mt = MOETensors8Bit.make_moe_tensors_8bit(m, k, n, e, per_act_token, per_out_ch)
@@ -332,7 +333,7 @@ def test_cutlass_moe_8_bit_cuda_graph(
333 monkeypatch,
334 workspace_init,
335 ):
335 - current_platform.seed_everything(7)
336 + set_random_seed(7)
337 monkeypatch.setenv("VLLM_FUSED_MOE_CHUNK_SIZE", "8192")
338 with set_current_vllm_config(vllm_config):
339 dtype = torch.half
@@ -469,7 +470,7 @@ def test_run_cutlass_moe_fp8(
470 ep_size: int,
471 workspace_init,
472 ):
472 - current_platform.seed_everything(7)
473 + set_random_seed(7)
474 with set_current_vllm_config(vllm_config):
475 mt = MOETensors8Bit.make_moe_tensors_8bit(
476 m, k, n, e, per_act_token, per_out_channel
tests/kernels/moe/test_deepep_deepgemm_moe.py
+4 -4
@@ -22,13 +22,13 @@ from vllm.model_executor.layers.fused_moe.config import (
22 )
23 from vllm.model_executor.layers.fused_moe.fused_moe import fused_experts
24 from vllm.model_executor.layers.fused_moe.modular_kernel import FusedMoEModularKernel
25 -from vllm.platforms import current_platform
25 from vllm.utils.deep_gemm import (
26 get_mk_alignment_for_contiguous_layout,
27 is_deep_gemm_e8m0_used,
28 is_deep_gemm_supported,
29 )
30 from vllm.utils.import_utils import has_deep_ep, has_deep_gemm
31 +from vllm.utils.torch_utils import set_random_seed
32 from vllm.v1.worker.workspace import init_workspace_manager
33
34 from ...utils import multi_gpu_test
@@ -367,7 +367,7 @@ def _test_deepep_deepgemm_moe(
367 device = torch.device(f"cuda:{pgi.local_rank}")
368 init_workspace_manager(device)
369
370 - current_platform.seed_everything(pgi.rank)
370 + set_random_seed(pgi.rank)
371
372 w1 = w1.to(device=torch.cuda.current_device())
373 w2 = w2.to(device=torch.cuda.current_device())
@@ -456,7 +456,7 @@ def test_ht_deepep_deepgemm_moe(
456 """
457
458 m, n, k = mnk
459 - current_platform.seed_everything(7)
459 + set_random_seed(7)
460
461 if topk > num_experts:
462 pytest.skip(f"Skipping test: topk={topk} > E={num_experts}")
@@ -531,7 +531,7 @@ def test_ll_deepep_deepgemm_moe(
531 assert not is_deep_gemm_e8m0_used()
532
533 m, n, k = mnk
534 - current_platform.seed_everything(7)
534 + set_random_seed(7)
535
536 if topk > num_experts:
537 pytest.skip(f"Skipping test: topk={topk} > E={num_experts}")
tests/kernels/moe/test_deepep_moe.py
+3 -3
@@ -20,8 +20,8 @@ from vllm.model_executor.layers.fused_moe.modular_kernel import FusedMoEModularK
20 from vllm.model_executor.layers.quantization.utils.fp8_utils import (
21 per_token_group_quant_fp8,
22 )
23 -from vllm.platforms import current_platform
23 from vllm.utils.import_utils import has_deep_ep
24 +from vllm.utils.torch_utils import set_random_seed
25 from vllm.v1.worker.workspace import init_workspace_manager
26
27 from ...utils import multi_gpu_test
@@ -446,7 +446,7 @@ def test_deep_ep_moe(
446 low_latency_mode = False
447 use_fp8_dispatch = False
448
449 - current_platform.seed_everything(7)
449 + set_random_seed(7)
450 world_size, dp_size = world_dp_size
451 config = TestConfig(dtype=dtype, topk=topk, m=m, k=k, n=n, num_experts=num_experts)
452
@@ -507,7 +507,7 @@ def test_low_latency_deep_ep_moe(
507 f"hidden sizes {DeepEPLLPrepareAndFinalize.SUPPORTED_HIDDEN_SIZES}"
508 )
509
510 - current_platform.seed_everything(7)
510 + set_random_seed(7)
511 world_size, dp_size = world_dp_size
512 config = TestConfig(dtype=dtype, topk=topk, m=m, k=k, n=n, num_experts=num_experts)
513
tests/kernels/moe/test_flashinfer.py
+3 -2
@@ -22,6 +22,7 @@ from vllm.model_executor.layers.quantization.utils.flashinfer_utils import (
22 from vllm.model_executor.layers.quantization.utils.fp8_utils import input_to_float8
23 from vllm.model_executor.models.llama4 import Llama4MoE
24 from vllm.platforms import current_platform
25 +from vllm.utils.torch_utils import set_random_seed
26
27 try:
28 from vllm.utils.flashinfer import has_flashinfer_cutlass_fused_moe
@@ -158,7 +159,7 @@ def test_flashinfer_per_tensor_moe_fp8_no_graph(
159 ):
160 if not current_platform.has_device_capability(100):
161 pytest.skip("Test is only supported for sm >= 100")
161 - current_platform.seed_everything(7)
162 + set_random_seed(7)
163 monkeypatch.setenv("VLLM_FUSED_MOE_CHUNK_SIZE", "8192")
164 with set_current_vllm_config(vllm_config):
165 td = TestData.make_moe_tensors_8bit(m, k, n, e, reorder=True)
@@ -222,7 +223,7 @@ def test_flashinfer_cutlass_moe_fp8_no_graph(
223 monkeypatch,
224 workspace_init,
225 ):
225 - current_platform.seed_everything(7)
226 + set_random_seed(7)
227 monkeypatch.setenv("VLLM_FUSED_MOE_CHUNK_SIZE", "8192")
228 with set_current_vllm_config(vllm_config):
229 td = TestData.make_moe_tensors_8bit(
tests/kernels/moe/test_flashinfer_moe.py
+2 -1
@@ -23,6 +23,7 @@ from vllm.model_executor.layers.fused_moe.fused_moe import fused_topk
23 from vllm.model_executor.layers.fused_moe.modular_kernel import FusedMoEModularKernel
24 from vllm.platforms import current_platform
25 from vllm.utils.flashinfer import has_flashinfer_cutlass_fused_moe
26 +from vllm.utils.torch_utils import set_random_seed
27
28 if not has_flashinfer_cutlass_fused_moe() or not current_platform.has_device_capability(
29 100
@@ -60,7 +61,7 @@ def test_flashinfer_fp4_moe_no_graph(
61 activation: str,
62 workspace_init,
63 ):
63 - current_platform.seed_everything(7)
64 + set_random_seed(7)
65 with set_current_vllm_config(
66 VllmConfig(parallel_config=ParallelConfig(pipeline_parallel_size=1))
67 ):
tests/kernels/moe/test_grouped_topk.py
+2 -1
@@ -19,6 +19,7 @@ from vllm.model_executor.layers.fused_moe.fused_moe import (
19 fused_grouped_topk,
20 )
21 from vllm.platforms import current_platform
22 +from vllm.utils.torch_utils import set_random_seed
23
24
25 @pytest.mark.skipif(
@@ -52,7 +53,7 @@ def test_grouped_topk(
53 )
54 get_cached_compilation_config.cache_clear()
55
55 - current_platform.seed_everything(0)
56 + set_random_seed(0)
57 hidden_states = torch.randn((n_token, n_hidden), dtype=dtype, device="cuda")
58 gating_output = torch.randn((n_token, n_expert), dtype=dtype, device="cuda")
59 e_score_correction_bias = torch.randn(
tests/kernels/moe/test_modular_kernel_combinations.py
+2 -2
@@ -15,7 +15,7 @@ from vllm.config import VllmConfig, set_current_vllm_config
15 from vllm.platforms import current_platform
16 from vllm.utils.flashinfer import has_flashinfer_cutlass_fused_moe
17 from vllm.utils.import_utils import has_deep_ep, has_deep_gemm, has_pplx
18 -from vllm.utils.torch_utils import cuda_device_count_stateless
18 +from vllm.utils.torch_utils import cuda_device_count_stateless, set_random_seed
19 from vllm.v1.worker.workspace import init_workspace_manager
20
21 from .modular_kernel_tools.common import (
@@ -82,7 +82,7 @@ def rank_worker(
82 device = torch.device(f"cuda:{pgi.local_rank}")
83 init_workspace_manager(device)
84
85 - current_platform.seed_everything(pgi.rank)
85 + set_random_seed(pgi.rank)
86
87 # sanity check
88 from vllm import envs
tests/kernels/moe/test_modular_oai_triton_moe.py
+2 -1
@@ -34,6 +34,7 @@ from vllm.model_executor.layers.fused_moe.prepare_finalize import (
34 )
35 from vllm.model_executor.layers.utils import shuffle_weight
36 from vllm.platforms import current_platform
37 +from vllm.utils.torch_utils import set_random_seed
38
39 MNK = [
40 (1, 512, 384),
@@ -211,7 +212,7 @@ def test_oai_triton_moe(
212 unfused: bool,
213 workspace_init,
214 ):
214 - current_platform.seed_everything(0)
215 + set_random_seed(0)
216 (
217 w1,
218 w2,
tests/kernels/moe/test_moe.py
+2 -1
@@ -60,6 +60,7 @@ from vllm.model_executor.layers.quantization.utils.quant_utils import quantize_w
60 from vllm.model_executor.models.mixtral import MixtralMoE
61 from vllm.platforms import current_platform
62 from vllm.scalar_type import ScalarType, scalar_types
63 +from vllm.utils.torch_utils import set_random_seed
64 from vllm.v1.worker.workspace import init_workspace_manager
65
66 NUM_EXPERTS = [8, 64, 192]
@@ -234,7 +235,7 @@ def test_fused_moe(
235 monkeypatch,
236 workspace_init,
237 ):
237 - current_platform.seed_everything(7)
238 + set_random_seed(7)
239
240 monkeypatch.setenv("VLLM_FUSED_MOE_CHUNK_SIZE", str(chunk_size))
241
tests/kernels/moe/test_moe_align_block_size.py
+2 -1
@@ -14,12 +14,13 @@ from vllm.model_executor.layers.fused_moe.moe_align_block_size import (
14 )
15 from vllm.platforms import current_platform
16 from vllm.utils.math_utils import round_up
17 +from vllm.utils.torch_utils import set_random_seed
18
19 NUM_TOKENS = [1, 3, 256, 2256, 4096]
20 NUM_EXPERTS = [32, 160, 256, 257]
21 TOP_KS = [1, 2, 16, 32]
22 BLOCK_SIZES = [32, 128]
22 -current_platform.seed_everything(0)
23 +set_random_seed(0)
24
25
26 def _group_tokens_by_expert(
tests/kernels/moe/test_moe_permute_unpermute.py
+3 -2
@@ -17,11 +17,12 @@ from vllm.model_executor.layers.fused_moe.moe_permute_unpermute import (
17 moe_unpermute,
18 )
19 from vllm.platforms import current_platform
20 +from vllm.utils.torch_utils import set_random_seed
21
22 NUM_EXPERTS = [16, 64, 256]
23 TOP_KS = [2, 6, 8]
24 EP_SIZE = [1, 4, 16]
24 -current_platform.seed_everything(0)
25 +set_random_seed(0)
26
27 if current_platform.is_rocm():
28 pytest.skip(
@@ -226,7 +227,7 @@ def test_moe_permute_unpermute(
227 n_local_expert, expert_map, _ = determine_expert_map(ep_size, ep_rank, n_expert)
228 expert_map = expert_map.cuda()
229 start_expert = n_local_expert * ep_rank
229 - current_platform.seed_everything(0)
230 + set_random_seed(0)
231 hidden_states = torch.randn((n_token, n_hidden), device="cuda").to(dtype)
232 gating_output = torch.randn((n_token, n_expert), device="cuda").to(dtype)
233 topk_weights, topk_ids, token_expert_indices = fused_topk(
tests/kernels/moe/test_nvfp4_moe.py
+2 -1
@@ -16,6 +16,7 @@ from vllm.model_executor.layers.fused_moe.config import nvfp4_moe_quant_config
16 from vllm.model_executor.layers.fused_moe.cutlass_moe import cutlass_moe_fp4
17 from vllm.model_executor.layers.fused_moe.fused_moe import fused_topk
18 from vllm.platforms import current_platform
19 +from vllm.utils.torch_utils import set_random_seed
20
21 if not current_platform.has_device_capability(100):
22 pytest.skip(
@@ -42,7 +43,7 @@ MNK_FACTORS = [
43 def test_cutlass_fp4_moe_no_graph(
44 m: int, n: int, k: int, e: int, topk: int, dtype: torch.dtype, workspace_init
45 ):
45 - current_platform.seed_everything(7)
46 + set_random_seed(7)
47 with set_current_vllm_config(
48 VllmConfig(parallel_config=ParallelConfig(pipeline_parallel_size=1))
49 ):
tests/kernels/moe/test_pplx_cutlass_moe.py
+2 -1
@@ -14,6 +14,7 @@ from vllm.model_executor.layers.fused_moe.fused_moe import fused_topk
14 from vllm.model_executor.layers.fused_moe.modular_kernel import FusedMoEModularKernel
15 from vllm.platforms import current_platform
16 from vllm.utils.math_utils import cdiv
17 +from vllm.utils.torch_utils import set_random_seed
18
19 from ...utils import multi_gpu_test
20 from .parallel_utils import ProcessGroupInfo, parallel_launch
@@ -290,7 +291,7 @@ def test_cutlass_moe_pplx(
291 world_dp_size: tuple[int, int],
292 use_internode: bool,
293 ):
293 - current_platform.seed_everything(7)
294 + set_random_seed(7)
295
296 with set_current_vllm_config(vllm_config):
297 dtype = torch.half
tests/kernels/moe/test_pplx_moe.py
+7 -7
@@ -44,8 +44,8 @@ from vllm.model_executor.layers.fused_moe.modular_kernel import FusedMoEModularK
44 from vllm.model_executor.layers.fused_moe.topk_weight_and_reduce import (
45 TopKWeightAndReduceDelegate,
46 )
47 -from vllm.platforms import current_platform
47 from vllm.utils.math_utils import round_up
48 +from vllm.utils.torch_utils import set_random_seed
49 from vllm.v1.worker.workspace import init_workspace_manager
50
51 from ...utils import multi_gpu_test
@@ -184,7 +184,7 @@ def test_fused_moe_batched_experts(
184 dtype: torch.dtype,
185 workspace_init,
186 ):
187 - current_platform.seed_everything(7)
187 + set_random_seed(7)
188
189 a = torch.randn((m, k), device="cuda", dtype=dtype) / 10
190 w1 = torch.randn((e, 2 * n, k), device="cuda", dtype=dtype) / 10
@@ -491,7 +491,7 @@ def test_pplx_prepare_finalize_slow(
491 if per_act_token_quant and block_shape is not None:
492 pytest.skip("Skip illegal quantization combination")
493
494 - current_platform.seed_everything(7)
494 + set_random_seed(7)
495 m, n, k = mnk
496 world_size, dp_size = world_dp_size
497 device = "cuda"
@@ -809,7 +809,7 @@ def test_pplx_moe_slow(
809 block_shape: list[int] | None,
810 use_internode: bool,
811 ):
812 - current_platform.seed_everything(7)
812 + set_random_seed(7)
813 m, n, k = mnk
814 world_size, dp_size = world_dp_size
815
@@ -888,7 +888,7 @@ def _pplx_test_loop(
888 new_vllm_config.parallel_config.enable_expert_parallel = True
889 _set_vllm_config(new_vllm_config, pgi.world_size, pgi.rank, pgi.local_rank)
890
891 - current_platform.seed_everything(7)
891 + set_random_seed(7)
892 combos = itertools.product(
893 PPLX_COMBOS, NUM_EXPERTS, TOP_KS, DTYPES, [False, True], [None, [128, 128]]
894 )
@@ -982,7 +982,7 @@ def test_pplx_prepare_finalize(
982 world_dp_size: tuple[int, int],
983 use_internode: bool,
984 ):
985 - current_platform.seed_everything(7)
985 + set_random_seed(7)
986 world_size, dp_size = world_dp_size
987 parallel_launch(
988 world_size * dp_size,
@@ -1005,7 +1005,7 @@ def test_pplx_moe(
1005 use_internode: bool,
1006 use_shared_experts: bool,
1007 ):
1008 - current_platform.seed_everything(7)
1008 + set_random_seed(7)
1009 world_size, dp_size = world_dp_size
1010 parallel_launch(
1011 world_size,
tests/kernels/moe/test_silu_mul_fp8_quant_deep_gemm.py
+2 -1
@@ -13,6 +13,7 @@ from vllm.model_executor.layers.fused_moe.batched_deep_gemm_moe import (
13 from vllm.platforms import current_platform
14 from vllm.utils.deep_gemm import DeepGemmQuantScaleFMT, has_deep_gemm
15 from vllm.utils.math_utils import cdiv, round_up
16 +from vllm.utils.torch_utils import set_random_seed
17
18 if current_platform.is_fp8_fnuz():
19 pytest.skip(
@@ -201,7 +202,7 @@ def token_random(E, T, H2, tokens_per_expert):
202 @torch.inference_mode()
203 def test_silu_mul_fp8_quant_deep_gemm(E: int, T: int, H: int, fp8_type: torch.dtype):
204 group_size = 128
204 - current_platform.seed_everything(42)
205 + set_random_seed(42)
206
207 tokens_per_expert = torch.randint(
208 low=0,
tests/kernels/moe/test_silu_mul_per_token_group_quant_fp8_colmajor.py
+2 -1
@@ -11,6 +11,7 @@ from vllm.model_executor.layers.quantization.utils.fp8_utils import (
11 from vllm.platforms import current_platform
12 from vllm.triton_utils import triton
13 from vllm.utils.deep_gemm import is_deep_gemm_e8m0_used
14 +from vllm.utils.torch_utils import set_random_seed
15
16 FLOAT8_DTYPE = torch.float8_e4m3fn
17 GROUP_SIZE = 128
@@ -72,7 +73,7 @@ def reference(x: torch.Tensor, use_ue8m0: bool) -> tuple[torch.Tensor, torch.Ten
73 reason="ROCm does not support DeepGemm.",
74 )
75 def test_silu_mul_fp8_quant_deep_gemm(T: int, N: int):
75 - current_platform.seed_everything(42)
76 + set_random_seed(42)
77
78 input = torch.rand((T, N), dtype=torch.bfloat16, device="cuda")
79
tests/kernels/quantization/test_awq_triton.py
+3 -3
@@ -13,7 +13,7 @@ from vllm.model_executor.layers.quantization.awq_triton import (
13 awq_dequantize_triton,
14 awq_gemm_triton,
15 )
16 -from vllm.platforms import current_platform
16 +from vllm.utils.torch_utils import set_random_seed
17
18 device = "cuda"
19
@@ -86,7 +86,7 @@ def test_dequantize(qweight_rows, qweight_cols, group_size):
86 zeros_cols = qweight_cols
87 zeros_dtype = torch.int32
88
89 - current_platform.seed_everything(0)
89 + set_random_seed(0)
90
91 qweight = torch.randint(
92 0,
@@ -141,7 +141,7 @@ def test_gemm(N, K, M, splitK, group_size):
141 qzeros_rows = scales_rows
142 qzeros_cols = qweight_cols
143
144 - current_platform.seed_everything(0)
144 + set_random_seed(0)
145
146 input = torch.rand((input_rows, input_cols), dtype=input_dtype, device=device)
147 qweight = torch.randint(
tests/kernels/quantization/test_cutlass_w4a8_moe.py
+3 -2
@@ -17,6 +17,7 @@ from vllm.model_executor.layers.quantization.utils.quant_utils import (
17 )
18 from vllm.platforms import current_platform
19 from vllm.scalar_type import ScalarType, scalar_types
20 +from vllm.utils.torch_utils import set_random_seed
21
22 IS_SUPPORTED_BY_GPU = (
23 current_platform.is_cuda() and current_platform.get_device_capability()[0] >= 9
@@ -248,7 +249,7 @@ def compute_moe_reference_output(setup: MoETestSetup) -> torch.Tensor:
249 @pytest.mark.parametrize("random_zero", [True, False])
250 def test_cutlass_w4a8_moe_mm_end_to_end(shape, random_zero):
251 num_experts, N, K = shape
251 - current_platform.seed_everything(42)
252 + set_random_seed(42)
253 setup = make_moe_test_setup(
254 num_experts=num_experts, K=K, N=N, max_blocks=64, random_zero=random_zero
255 )
@@ -308,7 +309,7 @@ class W4A8MoELayer(torch.nn.Module):
309 reason="W4A8 Grouped GEMM is not supported on this GPU type.",
310 )
311 def test_cutlass_w4a8_moe_mm_cuda_graph():
311 - current_platform.seed_everything(42)
312 + set_random_seed(42)
313 # Fixed config for CUDA graph test (single parameter point).
314 num_experts = 8
315 K = 512
tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
+2 -1
@@ -12,6 +12,7 @@ from nvfp4_utils import (
12 from vllm import _custom_ops as ops
13 from vllm.platforms import current_platform
14 from vllm.utils.flashinfer import flashinfer_scaled_fp4_mm
15 +from vllm.utils.torch_utils import set_random_seed
16
17 if not current_platform.has_device_capability(100):
18 pytest.skip(
@@ -72,7 +73,7 @@ def test_flashinfer_nvfp4_gemm(
73 if backend == "trtllm" and dtype == torch.float16:
74 pytest.skip("Only torch.bfloat16 is supported for TRTLLM FP4 GEMM operations")
75
75 - current_platform.seed_everything(seed)
76 + set_random_seed(seed)
77 m, n, packed_k = shape
78 k = packed_k * 2
79 block_size = 16
tests/kernels/quantization/test_flashinfer_scaled_mm.py
+2 -1
@@ -6,6 +6,7 @@ import torch
6 from vllm import _custom_ops as ops
7 from vllm.platforms import current_platform
8 from vllm.utils.flashinfer import flashinfer_scaled_fp8_mm
9 +from vllm.utils.torch_utils import set_random_seed
10
11 if not current_platform.has_device_capability(100):
12 pytest.skip(
@@ -38,7 +39,7 @@ def test_flashinfer_fp8_gemm(
39 device: str,
40 autotune: bool,
41 ) -> None:
41 - current_platform.seed_everything(seed)
42 + set_random_seed(seed)
43 m, n, k = shape
44 a = torch.randn((m, k), dtype=dtype, device=device)
45 b = torch.randn((n, k), dtype=dtype, device=device) / k
tests/kernels/quantization/test_fp8_quant.py
+4 -4
@@ -11,7 +11,7 @@ from tests.kernels.quant_utils import (
11 ref_dynamic_per_token_quant,
12 )
13 from tests.kernels.utils import opcheck
14 -from vllm.platforms import current_platform
14 +from vllm.utils.torch_utils import set_random_seed
15
16 DTYPES = [torch.bfloat16, torch.float]
17 HIDDEN_SIZES = [17, 1024, 1025, 1026, 5137, 8193]
@@ -51,7 +51,7 @@ def opcheck_fp8_quant(
51 def test_dynamic_per_token_fp8_quant(
52 num_tokens: int, hidden_size: int, dtype: torch.dtype, scale_ub: bool, seed: int
53 ) -> None:
54 - current_platform.seed_everything(seed)
54 + set_random_seed(seed)
55
56 x = (
57 torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda") + 1e-6
@@ -81,7 +81,7 @@ def test_dynamic_per_token_fp8_quant(
81 def test_dynamic_per_tensor_fp8_quant(
82 num_tokens: int, hidden_size: int, dtype: torch.dtype, seed: int
83 ) -> None:
84 - current_platform.seed_everything(seed)
84 + set_random_seed(seed)
85
86 x = torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda")
87
@@ -101,7 +101,7 @@ def test_dynamic_per_tensor_fp8_quant(
101 @torch.inference_mode()
102 @pytest.mark.parametrize("seed", SEEDS)
103 def test_fp8_quant_large(seed: int) -> None:
104 - current_platform.seed_everything(seed)
104 + set_random_seed(seed)
105
106 num_tokens = 1024000 # Mistral-Nemo's max_position_embeddings
107 hidden_size = 1152 # Smallest hidden_size to reproduce the error
tests/kernels/quantization/test_fp8_quant_group.py
+4 -4
@@ -7,7 +7,7 @@ import torch
7
8 from vllm.model_executor.layers.quantization.input_quant_fp8 import QuantFP8
9 from vllm.model_executor.layers.quantization.utils.quant_utils import GroupShape
10 -from vllm.platforms import current_platform
10 +from vllm.utils.torch_utils import set_random_seed
11
12
13 @pytest.mark.parametrize(
@@ -30,7 +30,7 @@ def test_quantfp8_group_functionality(
30 Tests both CUDA and native implementations, column-major scales,
31 and verifies consistency between implementations.
32 """
33 - current_platform.seed_everything(seed)
33 + set_random_seed(seed)
34
35 x = torch.randn((batch_size, hidden_dim), dtype=torch.bfloat16, device="cuda") * 8
36 expected_num_groups = (hidden_dim + group_size - 1) // group_size
@@ -83,7 +83,7 @@ def test_quantfp8_group_functionality(
83 @pytest.mark.parametrize("use_ue8m0", [True, False])
84 @torch.inference_mode()
85 def test_quantfp8_group_multidimensional(seed: int, use_ue8m0: bool) -> None:
86 - current_platform.seed_everything(seed)
86 + set_random_seed(seed)
87
88 group_size = 64
89
@@ -136,7 +136,7 @@ def test_quantfp8_group_multidimensional(seed: int, use_ue8m0: bool) -> None:
136 @pytest.mark.parametrize("seed", [42])
137 @torch.inference_mode()
138 def test_quantfp8_group_edge_cases(seed: int) -> None:
139 - current_platform.seed_everything(seed)
139 + set_random_seed(seed)
140
141 batch_size = 16
142 group_size = 64
tests/kernels/quantization/test_gguf.py
+4 -4
@@ -11,7 +11,7 @@ from huggingface_hub import snapshot_download
11 import vllm._custom_ops as ops
12 from vllm.model_executor.layers.fused_moe import fused_experts
13 from vllm.model_executor.layers.quantization.gguf import _fused_moe_gguf
14 -from vllm.platforms import current_platform
14 +from vllm.utils.torch_utils import set_random_seed
15
16 GGUF_SAMPLE = snapshot_download("Isotr0py/test-gguf-sample")
17 GGUF_SAMPLE_MOE = snapshot_download("SzymonOzog/test-gguf-moe-sample")
@@ -91,7 +91,7 @@ def test_dequantize(
91 @pytest.mark.parametrize("quant_type", QUANT_TYPES)
92 @torch.inference_mode()
93 def test_mmvq(hidden_size: int, dtype: torch.dtype, quant_type: GGMLQuantizationType):
94 - current_platform.seed_everything(0)
94 + set_random_seed(0)
95
96 tensors = get_gguf_sample_tensors(hidden_size, quant_type)
97 x = torch.rand((1, hidden_size), dtype=dtype, device="cuda")
@@ -134,7 +134,7 @@ def test_mmq(
134 dtype: torch.dtype,
135 quant_type: GGMLQuantizationType,
136 ):
137 - current_platform.seed_everything(0)
137 + set_random_seed(0)
138
139 tensors = get_gguf_sample_tensors(hidden_size, quant_type)
140 x = torch.rand((num_tokens, hidden_size), dtype=dtype, device="cuda")
@@ -169,7 +169,7 @@ def test_moe(
169 quant_type: GGMLQuantizationType,
170 top_k: int,
171 ):
172 - current_platform.seed_everything(0)
172 + set_random_seed(0)
173 H, E = 1024, 256
174
175 x = torch.rand((num_tokens, H), dtype=dtype, device="cuda")
tests/kernels/quantization/test_int8_quant.py
+5 -5
@@ -7,7 +7,7 @@ import torch
7 from tests.kernels.quant_utils import ref_dynamic_per_token_quant
8 from tests.kernels.utils import opcheck
9 from vllm._custom_ops import scaled_int8_quant
10 -from vllm.platforms import current_platform
10 +from vllm.utils.torch_utils import set_random_seed
11
12 DTYPES = [torch.bfloat16, torch.float]
13 HIDDEN_SIZES = [17, 1024, 1025, 1026, 5137, 8193]
@@ -46,7 +46,7 @@ def opcheck_int8_quant_dynamic(output, input, symmetric=True):
46 def test_dynamic_scaled_int8_quant(
47 num_tokens: int, hidden_size: int, dtype: torch.dtype, seed: int
48 ) -> None:
49 - current_platform.seed_everything(seed)
49 + set_random_seed(seed)
50
51 x = torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda") * 1000
52
@@ -70,7 +70,7 @@ def test_dynamic_scaled_int8_quant(
70 def test_dynamic_scaled_int8_azp_quant(
71 num_tokens: int, hidden_size: int, dtype: torch.dtype, seed: int
72 ) -> None:
73 - current_platform.seed_everything(seed)
73 + set_random_seed(seed)
74 int8_traits = torch.iinfo(torch.int8)
75
76 x = torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda") * 1000 - 300
@@ -111,7 +111,7 @@ def test_dynamic_scaled_int8_azp_quant(
111 def test_static_scaled_int8_quant(
112 num_tokens: int, hidden_size: int, dtype: torch.dtype, seed: int, scale: float
113 ) -> None:
114 - current_platform.seed_everything(seed)
114 + set_random_seed(seed)
115 int8_traits = torch.iinfo(torch.int8)
116
117 x = torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda") * 1000
@@ -144,7 +144,7 @@ def test_static_scaled_int8_azp_quant(
144 scale: float,
145 azp: int,
146 ) -> None:
147 - current_platform.seed_everything(seed)
147 + set_random_seed(seed)
148 int8_traits = torch.iinfo(torch.int8)
149
150 x = torch.rand(num_tokens, hidden_size, dtype=dtype, device="cuda") * 1000 - 300
tests/kernels/quantization/test_mxfp4_qutlass.py
+2 -1
@@ -24,6 +24,7 @@ from compressed_tensors.transform.utils.hadamard import deterministic_hadamard_m
24 from vllm._custom_ops import fusedQuantizeMx, matmul_mxf4_bf16_tn
25 from vllm.model_executor.layers.quantization.qutlass_utils import to_blocked
26 from vllm.platforms import current_platform
27 +from vllm.utils.torch_utils import set_random_seed
28
29 if not torch.cuda.is_available():
30 pytest.skip("CUDA required for these tests.", allow_module_level=True)
@@ -205,7 +206,7 @@ LLAMA_MODELS = {
206
207 @pytest.fixture(autouse=True)
208 def _seed_each_test():
208 - current_platform.seed_everything(0)
209 + set_random_seed(0)
210 np.random.seed(0)
211 torch.random.manual_seed(0)
212
tests/kernels/quantization/test_nvfp4_quant.py
+3 -2
@@ -6,6 +6,7 @@ import torch
6 from vllm import _custom_ops as ops
7 from vllm.platforms import current_platform
8 from vllm.scalar_type import scalar_types
9 +from vllm.utils.torch_utils import set_random_seed
10
11 if not current_platform.has_device_capability(100):
12 pytest.skip(
@@ -134,7 +135,7 @@ def test_quantize_to_fp4(
135 seed: int,
136 device: str,
137 ) -> None:
137 - current_platform.seed_everything(seed)
138 + set_random_seed(seed)
139 torch.set_default_device(device)
140
141 m, n = shape
@@ -156,7 +157,7 @@ def test_quantize_to_fp4(
157 @torch.inference_mode()
158 def test_quantize_to_fp4_padded(pad_shape: tuple[int, int]) -> None:
159 dtype = torch.float16
159 - current_platform.seed_everything(42)
160 + set_random_seed(42)
161 torch.set_default_device("cuda:0")
162
163 m, n = pad_shape
tests/kernels/quantization/test_nvfp4_qutlass.py
+2 -1
@@ -25,6 +25,7 @@ from vllm import _custom_ops as ops # use existing nvfp4 gemm in vllm
25 from vllm._custom_ops import fusedQuantizeNv
26 from vllm.model_executor.layers.quantization.qutlass_utils import to_blocked
27 from vllm.platforms import current_platform
28 +from vllm.utils.torch_utils import set_random_seed
29
30 if not torch.cuda.is_available():
31 pytest.skip("CUDA required for these tests.", allow_module_level=True)
@@ -193,7 +194,7 @@ LLAMA_MODELS = {
194
195 @pytest.fixture(autouse=True)
196 def _seed_each_test():
196 - current_platform.seed_everything(0)
197 + set_random_seed(0)
198 np.random.seed(0)
199 torch.random.manual_seed(0)
200
tests/kernels/quantization/test_nvfp4_scaled_mm.py
+2 -1
@@ -6,6 +6,7 @@ from nvfp4_utils import FLOAT4_E2M1_MAX, FLOAT8_E4M3_MAX, dequantize_nvfp4_to_dt
6
7 from vllm import _custom_ops as ops
8 from vllm.platforms import current_platform
9 +from vllm.utils.torch_utils import set_random_seed
10
11 if not current_platform.has_device_capability(100):
12 pytest.skip(
@@ -59,7 +60,7 @@ def test_nvfp4_gemm(
60 seed: int,
61 device: str,
62 ) -> None:
62 - current_platform.seed_everything(seed)
63 + set_random_seed(seed)
64 m, n, packed_k = shape
65 k = packed_k * 2
66 block_size = 16
tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
+2 -1
@@ -11,6 +11,7 @@ from tests.kernels.quantization.nvfp4_utils import (
11 from vllm._custom_ops import scaled_fp4_quant
12 from vllm.model_executor.layers.activation import SiluAndMul
13 from vllm.platforms import current_platform
14 +from vllm.utils.torch_utils import set_random_seed
15
16 if not current_platform.has_device_capability(100):
17 pytest.skip(
@@ -33,7 +34,7 @@ def test_silu_mul_nvfp4_quant(
34 dtype: torch.dtype,
35 shape: tuple[int, int],
36 ) -> None:
36 - current_platform.seed_everything(42)
37 + set_random_seed(42)
38 device = "cuda:0"
39 torch.set_default_device(device)
40
tests/kernels/quantization/test_triton_scaled_mm.py
+2 -1
@@ -11,6 +11,7 @@ import pytest
11 import torch
12
13 from vllm.platforms import current_platform
14 +from vllm.utils.torch_utils import set_random_seed
15
16 device = "cuda"
17
@@ -85,7 +86,7 @@ def test_scaled_mm(
86 ):
87 is_floating_point_type = lambda t: torch.tensor([1, 1], dtype=t).is_floating_point()
88
88 - current_platform.seed_everything(0)
89 + set_random_seed(0)
90
91 # NOTE: There are cases, where if the matrix is large enough, an output
92 # like 65504.4 can be produced, and can easily turn into inf when
tests/kernels/test_apply_repetition_penalties.py
+3 -2
@@ -9,6 +9,7 @@ from vllm._custom_ops import (
9 apply_repetition_penalties_torch,
10 )
11 from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13
14 NUM_SEQS = [1, 2, 3, 4, 8, 13, 17, 32, 37, 256, 1023, 1024, 1025]
15 # [stress, stress, stress, Qwen, llama 4]
@@ -38,7 +39,7 @@ def test_apply_repetition_penalties(
39 Test the apply_repetition_penalties custom op
40 against a reference implementation.
41 """
41 - current_platform.seed_everything(seed)
42 + set_random_seed(seed)
43 torch.set_default_device("cuda:0")
44
45 # Create test data
@@ -95,7 +96,7 @@ def test_apply_repetition_penalties_zero_seqs() -> None:
96 dtype = torch.float32
97 seed = 0
98
98 - current_platform.seed_everything(seed)
99 + set_random_seed(seed)
100 torch.set_default_device("cuda:0")
101
102 # Create test data
tests/kernels/test_fla_layernorm_guard.py
+8 -8
@@ -10,7 +10,7 @@ from vllm.model_executor.layers.fla.ops.layernorm_guard import (
10 layernorm_fn,
11 rms_norm_ref,
12 )
13 -from vllm.platforms import current_platform
13 +from vllm.utils.torch_utils import set_random_seed
14
15
16 def layer_norm_ref(
@@ -114,7 +114,7 @@ def test_layer_norm_fwd_basic(
114 is_rms_norm: bool,
115 ) -> None:
116 """Test basic layer norm forward pass without z (gate) tensor."""
117 - current_platform.seed_everything(seed)
117 + set_random_seed(seed)
118 device = torch.device("cuda:0")
119
120 # Create inputs
@@ -156,7 +156,7 @@ def test_layer_norm_fwd_with_gate(
156 is_rms_norm: bool,
157 ) -> None:
158 """Test layer norm forward pass with z (gate) tensor."""
159 - current_platform.seed_everything(42)
159 + set_random_seed(42)
160 device = torch.device("cuda:0")
161
162 # Create inputs
@@ -213,7 +213,7 @@ def test_layer_norm_fwd_with_groups(
213 f"hidden_size {hidden_size} not divisible by group_size {group_size}"
214 )
215
216 - current_platform.seed_everything(42)
216 + set_random_seed(42)
217 device = torch.device("cuda:0")
218
219 # Create inputs
@@ -253,7 +253,7 @@ def test_layer_norm_rows_per_block(
253 dtype: torch.dtype,
254 ) -> None:
255 """Test that rows_per_block logic works correctly for various M sizes."""
256 - current_platform.seed_everything(42)
256 + set_random_seed(42)
257 device = torch.device("cuda:0")
258 hidden_size = 1024
259
@@ -278,7 +278,7 @@ def test_layer_norm_rows_per_block(
278 def test_strided_input(dtype: torch.dtype) -> None:
279 """Test that the kernel handles non-contiguous (strided)
280 inputs correctly."""
281 - current_platform.seed_everything(42)
281 + set_random_seed(42)
282 device = torch.device("cuda:0")
283 num_tokens = 128
284 hidden_size = 1024
@@ -318,7 +318,7 @@ def test_output_buffer_provided(
318 dtype: torch.dtype,
319 ) -> None:
320 """Test that the kernel works when an output buffer is provided."""
321 - current_platform.seed_everything(42)
321 + set_random_seed(42)
322 device = torch.device("cuda:0")
323
324 # Create inputs
@@ -359,7 +359,7 @@ def test_multidimensional_input(
359 dtype: torch.dtype,
360 ) -> None:
361 """Test that the autograd function handles multidimensional inputs."""
362 - current_platform.seed_everything(42)
362 + set_random_seed(42)
363 device = torch.device("cuda:0")
364 hidden_size = shape[-1]
365
tests/lora/test_fused_moe_lora_kernel.py
+4 -4
@@ -18,8 +18,8 @@ from vllm.distributed.parallel_state import (
18 get_tensor_model_parallel_world_size,
19 )
20 from vllm.lora.ops.triton_ops import fused_moe_lora
21 -from vllm.platforms import current_platform
21 from vllm.utils.network_utils import get_open_port
22 +from vllm.utils.torch_utils import set_random_seed
23
24
25 @pytest.fixture(autouse=True)
@@ -265,7 +265,7 @@ def test_fused_moe_lora_kernel(
265 seed,
266 ):
267 torch.set_default_device(device)
268 - current_platform.seed_everything(seed)
268 + set_random_seed(seed)
269 # the number of randomly generated sentences.
270 num_sequences = 10
271 # generate data
@@ -358,7 +358,7 @@ def test_fused_moe_lora_kernel_fully_sharded(
358 seed,
359 column_parallel,
360 ):
361 - current_platform.seed_everything(seed)
361 + set_random_seed(seed)
362 # the number of randomly generated sentences.
363 num_sequences = 10
364 # generate data
@@ -415,7 +415,7 @@ def use_fused_moe_lora_kernel_tensor_parallel(
415 def _get_shard_slice(shard_size):
416 return slice(local_rank * shard_size, (local_rank + 1) * shard_size)
417
418 - current_platform.seed_everything(seed)
418 + set_random_seed(seed)
419
420 device = torch.device(f"cuda:{local_rank}")
421 torch.cuda.set_device(device)
tests/lora/test_layers.py
+1 -1
@@ -43,8 +43,8 @@ from vllm.model_executor.layers.vocab_parallel_embedding import (
43 VocabParallelEmbedding,
44 get_masked_input_and_mask,
45 )
46 -from vllm.model_executor.utils import set_random_seed
46 from vllm.platforms import current_platform
47 +from vllm.utils.torch_utils import set_random_seed
48
49 from .utils import DummyLoRAManager
50
tests/lora/test_punica_ops.py
+3 -3
@@ -9,7 +9,7 @@ import vllm.lora.ops.torch_ops as torch_ops
9 import vllm.lora.ops.triton_ops as triton_ops
10 from vllm.lora.ops.triton_ops import LoRAKernelMeta
11 from vllm.lora.ops.triton_ops.utils import _LORA_A_PTR_DICT, _LORA_B_PTR_DICT
12 -from vllm.platforms import current_platform
12 +from vllm.utils.torch_utils import set_random_seed
13
14 from .utils import PunicaTensors, assert_close, generate_data_for_nslices
15
@@ -395,7 +395,7 @@ def test_kernels(
395 Tests LoRA kernels.
396 """
397 torch.set_default_device(device)
398 - current_platform.seed_everything(seed)
398 + set_random_seed(seed)
399
400 if op_type == "shrink":
401 check_lora_shrink_kernel(
@@ -447,7 +447,7 @@ def test_kernels_hidden_size(
447 Tests SGMV and LoRA kernels.
448 """
449 torch.set_default_device(device)
450 - current_platform.seed_everything(seed)
450 + set_random_seed(seed)
451
452 if op_type == "shrink":
453 check_lora_shrink_kernel(
tests/models/test_vision.py
+4 -3
@@ -21,6 +21,7 @@ from vllm.model_executor.models.vision import (
21 from vllm.platforms import current_platform
22 from vllm.utils.network_utils import get_open_port
23 from vllm.utils.system_utils import update_environment_variables
24 +from vllm.utils.torch_utils import set_random_seed
25
26 pytestmark = pytest.mark.cpu_test
27
@@ -98,7 +99,7 @@ def run_dp_sharded_vision_model_vs_direct(
99 """
100
101 # Set random seed for reproducibility
101 - current_platform.seed_everything(0)
102 + set_random_seed(0)
103
104 device = f"{current_platform.device_name}:{local_rank}"
105 current_platform.set_device(device)
@@ -284,7 +285,7 @@ def run_dp_sharded_mrope_vision_model_vs_direct(
285 calling the model directly.
286 """
287 # Set random seed for reproducibility
287 - current_platform.seed_everything(0)
288 + set_random_seed(0)
289 device = f"{current_platform.device_name}:{local_rank}"
290 current_platform.set_device(device)
291 torch.set_default_device(device)
@@ -408,7 +409,7 @@ def run_dp_sharded_mrope_vision_model_uneven_load_worker(
409 ):
410 """Test run_dp_sharded_mrope_vision_model with uneven load distribution."""
411 # Set up distributed environment
411 - current_platform.seed_everything(123)
412 + set_random_seed(123)
413 device = f"{current_platform.device_name}:{local_rank}"
414 current_platform.set_device(device)
415 torch.set_default_device(device)
tests/v1/attention/test_attention_backends.py
+6 -2
@@ -19,7 +19,11 @@ from vllm.attention.backends.registry import AttentionBackendEnum
19 from vllm.config import ModelConfig
20 from vllm.platforms import current_platform
21 from vllm.utils.math_utils import cdiv
22 -from vllm.utils.torch_utils import STR_DTYPE_TO_TORCH_DTYPE, is_torch_equal_or_newer
22 +from vllm.utils.torch_utils import (
23 + STR_DTYPE_TO_TORCH_DTYPE,
24 + is_torch_equal_or_newer,
25 + set_random_seed,
26 +)
27 from vllm.v1.attention.backends.utils import (
28 CommonAttentionMetadata,
29 set_kv_cache_layout,
@@ -320,7 +324,7 @@ def _test_backend_correctness(
324 multiple GPUs. This tests that backends work correctly with different
325 head counts.
326 """
323 - current_platform.seed_everything(42)
327 + set_random_seed(42)
328
329 hf_config_override = None
330 if tensor_parallel_size > 1:
tests/v1/kv_offload/test_cpu_gpu.py
+2 -1
@@ -7,6 +7,7 @@ import pytest
7 import torch
8
9 from vllm.platforms import current_platform
10 +from vllm.utils.torch_utils import set_random_seed
11 from vllm.v1.attention.backends.flash_attn import FlashAttentionBackend
12 from vllm.v1.kv_offload.mediums import CPULoadStoreSpec, GPULoadStoreSpec
13 from vllm.v1.kv_offload.worker.cpu_gpu import CpuGpuOffloadingHandlers
@@ -62,7 +63,7 @@ def test_transfer(
63 seed: int,
64 device: str,
65 ) -> None:
65 - current_platform.seed_everything(seed)
66 + set_random_seed(seed)
67
68 # create per-layer GPU KV caches based on available attn_backends
69 attn_backends_list = BACKENDS_TO_TEST
tests/v1/tpu/test_mha_attn.py
+2 -1
@@ -15,6 +15,7 @@ import torch_xla.core.xla_model
15 from vllm.attention.layers.mm_encoder_attention import MMEncoderAttention
16 from vllm.attention.selector import _cached_get_attn_backend
17 from vllm.platforms import current_platform
18 +from vllm.utils.torch_utils import set_random_seed
19
20
21 @pytest.fixture(autouse=True)
@@ -63,7 +64,7 @@ def test_mha_attn_forward(
64 head_size: int,
65 device: str,
66 ):
66 - current_platform.seed_everything(0)
67 + set_random_seed(0)
68 # These are expected to be f32
69 q = torch.randn(batch_size, seq_len, num_heads * head_size, device=device)
70 k = torch.randn(batch_size, seq_len, num_kv_heads * head_size, device=device)
tests/v1/worker/test_gpu_model_runner.py
+2 -1
@@ -26,6 +26,7 @@ from vllm.platforms import current_platform
26 from vllm.sampling_params import SamplingParams
27 from vllm.utils.mem_constants import GiB_bytes
28 from vllm.utils.system_utils import update_environment_variables
29 +from vllm.utils.torch_utils import set_random_seed
30 from vllm.v1.core.kv_cache_utils import estimate_max_model_len, get_kv_cache_configs
31 from vllm.v1.core.sched.output import CachedRequestData, NewRequestData, SchedulerOutput
32 from vllm.v1.kv_cache_interface import (
@@ -776,7 +777,7 @@ def test_hybrid_attention_mamba_tensor_shapes():
777 will not corrupt an attention block and vice versa
778 """
779
779 - current_platform.seed_everything(42)
780 + set_random_seed(42)
781
782 update_environment_variables(
783 {
vllm/model_executor/__init__.py
-2
@@ -2,10 +2,8 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 from vllm.model_executor.parameter import BasevLLMParameter, PackedvLLMParameter
5 -from vllm.model_executor.utils import set_random_seed
5
6 __all__ = [
8 - "set_random_seed",
7 "BasevLLMParameter",
8 "PackedvLLMParameter",
9 ]
vllm/model_executor/utils.py
-6
@@ -10,12 +10,6 @@ import torch
10 from vllm.utils.torch_utils import is_torch_equal_or_newer
11
12
13 -def set_random_seed(seed: int | None) -> None:
14 - from vllm.platforms import current_platform
15 -
16 - current_platform.seed_everything(seed)
17 -
18 -
13 def set_weight_attrs(
14 weight: torch.Tensor,
15 weight_attrs: dict[str, Any] | None,
vllm/platforms/interface.py
+4
@@ -372,6 +372,10 @@ class Platform:
372
373 Loosely based on: https://github.com/Lightning-AI/pytorch-lightning/blob/2.4.0/src/lightning/fabric/utilities/seed.py#L20
374 """
375 + logger.info_once(
376 + "`seed_everything` is deprecated. It will be removed in v0.14.0 or later. "
377 + "Please use `vllm.utils.torch_utils.set_random_seed` instead."
378 + )
379 if seed is not None:
380 random.seed(seed)
381 np.random.seed(seed)
vllm/utils/torch_utils.py
+10 -5
@@ -3,6 +3,7 @@
3 import contextlib
4 import importlib.metadata
5 import os
6 +import random
7 import threading
8 from collections.abc import Callable, Collection
9 from functools import lru_cache
@@ -278,6 +279,13 @@ def kv_cache_dtype_str_to_dtype(
279 return STR_DTYPE_TO_TORCH_DTYPE[kv_cache_dtype]
280
281
282 +def set_random_seed(seed: int | None) -> None:
283 + if seed is not None:
284 + random.seed(seed)
285 + np.random.seed(seed)
286 + torch.manual_seed(seed)
287 +
288 +
289 def create_kv_caches_with_random_flash(
290 num_blocks: int,
291 block_size: int,
@@ -290,9 +298,7 @@ def create_kv_caches_with_random_flash(
298 device: str | None = "cuda",
299 cache_layout: str | None = "NHD",
300 ) -> tuple[list[torch.Tensor], list[torch.Tensor]]:
293 - from vllm.platforms import current_platform
294 -
295 - current_platform.seed_everything(seed)
301 + set_random_seed(seed)
302
303 dtype = get_kv_cache_torch_dtype(cache_dtype, model_dtype)
304 generic_kv_cache_shape = (num_blocks, 2, block_size, num_heads, head_size)
@@ -335,9 +341,8 @@ def create_kv_caches_with_random(
341 raise ValueError(
342 f"Does not support key cache of type fp8 with head_size {head_size}"
343 )
338 - from vllm.platforms import current_platform
344
340 - current_platform.seed_everything(seed)
345 + set_random_seed(seed)
346
347 dtype = get_kv_cache_torch_dtype(cache_dtype, model_dtype)
348
vllm/v1/worker/cpu_worker.py
+1 -1
@@ -10,10 +10,10 @@ import torch
10 from vllm import envs
11 from vllm.config import VllmConfig
12 from vllm.logger import init_logger
13 -from vllm.model_executor.utils import set_random_seed
13 from vllm.platforms import CpuArchEnum, current_platform
14 from vllm.platforms.cpu import CpuPlatform, LogicalCPUInfo
15 from vllm.profiler.wrapper import TorchProfilerWrapper
16 +from vllm.utils.torch_utils import set_random_seed
17 from vllm.v1.worker.cpu_model_runner import CPUModelRunner
18 from vllm.v1.worker.gpu_worker import Worker, init_worker_distributed_environment
19
vllm/v1/worker/gpu_worker.py
+1 -1
@@ -34,7 +34,6 @@ from vllm.distributed.parallel_state import (
34 )
35 from vllm.logger import init_logger
36 from vllm.lora.request import LoRARequest
37 -from vllm.model_executor import set_random_seed
37 from vllm.model_executor.models.interfaces import is_mixture_of_experts
38 from vllm.model_executor.warmup.kernel_warmup import kernel_warmup
39 from vllm.platforms import current_platform
@@ -43,6 +42,7 @@ from vllm.sequence import IntermediateTensors
42 from vllm.tasks import SupportedTask
43 from vllm.utils.mem_constants import GiB_bytes
44 from vllm.utils.mem_utils import MemorySnapshot, memory_profiling
45 +from vllm.utils.torch_utils import set_random_seed
46 from vllm.v1.core.sched.output import GrammarOutput, SchedulerOutput
47 from vllm.v1.engine import ReconfigureDistributedRequest, ReconfigureRankType
48 from vllm.v1.kv_cache_interface import KVCacheConfig, KVCacheSpec
vllm/v1/worker/tpu_worker.py
+1 -2
@@ -20,12 +20,11 @@ from vllm.distributed.kv_transfer import (
20 )
21 from vllm.logger import init_logger
22 from vllm.lora.request import LoRARequest
23 -from vllm.model_executor import set_random_seed
23 from vllm.platforms import current_platform
24 from vllm.platforms.tpu import USE_TPU_INFERENCE
25 from vllm.tasks import SupportedTask
26 from vllm.utils.math_utils import cdiv
28 -from vllm.utils.torch_utils import STR_DTYPE_TO_TORCH_DTYPE
27 +from vllm.utils.torch_utils import STR_DTYPE_TO_TORCH_DTYPE, set_random_seed
28 from vllm.v1.core.sched.output import GrammarOutput, SchedulerOutput
29 from vllm.v1.kv_cache_interface import AttentionSpec, KVCacheConfig, KVCacheSpec
30 from vllm.v1.outputs import ModelRunnerOutput
vllm/v1/worker/xpu_worker.py
+1 -1
@@ -9,9 +9,9 @@ import torch.distributed
9 from vllm.config import VllmConfig
10 from vllm.distributed import get_world_group
11 from vllm.logger import init_logger
12 -from vllm.model_executor import set_random_seed
12 from vllm.platforms import current_platform
13 from vllm.profiler.wrapper import TorchProfilerWrapper
14 +from vllm.utils.torch_utils import set_random_seed
15 from vllm.v1.worker.gpu_worker import Worker, init_worker_distributed_environment
16 from vllm.v1.worker.xpu_model_runner import XPUModelRunner
17