main
py 52 lines 1.55 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 """Validate the registry reference kernel against runtime dispatch."""
4
5 import pytest
6
7 from vllm.platforms import current_platform
8
9 if not current_platform.is_cuda_alike():
10 pytest.skip("NVIDIA dispatch tests require CUDA", allow_module_level=True)
11
12 from vllm.v1.worker.block_table import ComputeSlotMappingKernel
13
14
15 @pytest.mark.parametrize(
16 ("kv_cache_block_size", "blocks_per_kv_block", "block_size", "block_size_rep"),
17 [
18 (256, 1, 256, 16),
19 (256, 4, 64, 16),
20 (64, 1, 64, 16),
21 (8, 1, 8, 2),
22 (4, 1, 4, 2),
23 ],
24 )
25 def test_compute_slot_mapping_warmup_matches_runtime_specializations(
26 kv_cache_block_size: int,
27 blocks_per_kv_block: int,
28 block_size: int,
29 block_size_rep: int,
30 ) -> None:
31 kernel = ComputeSlotMappingKernel()
32 kwargs = dict(
33 kv_cache_block_size=kv_cache_block_size,
34 blocks_per_kv_block=blocks_per_kv_block,
35 total_cp_world_size=1,
36 total_cp_rank=0,
37 cp_kv_cache_interleave_size=1,
38 block_table_stride=32768,
39 block_size=block_size,
40 )
41 expected = kernel.CompileKey(
42 kv_cache_block_size=kv_cache_block_size,
43 blocks_per_kv_block=blocks_per_kv_block,
44 total_cp_world_size=1,
45 total_cp_rank=0,
46 cp_kv_cache_interleave_size=1,
47 block_table_stride=16,
48 block_size=block_size_rep,
49 )
50
51 assert kernel.dispatch(**kwargs) == expected
52 assert kernel.get_warmup_keys(**kwargs) == [expected]