File size: 1,398 Bytes
4a28d4d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Copyright (c) OpenMMLab. All rights reserved.
import pytest

from lmdeploy.messages import PytorchEngineConfig
from lmdeploy.pytorch.disagg.config import EngineRole
from lmdeploy.pytorch.engine.engine_checker import EngineChecker


def _build_checker(engine_config: PytorchEngineConfig):
    checker = object.__new__(EngineChecker)
    checker.engine_config = engine_config

    def log_and_raise(*args, **kwargs):
        raise RuntimeError(kwargs.get('message'))

    checker.log_and_exit = log_and_raise
    return checker


def test_engine_checker_rejects_split_kernel_blocks_for_pd_migration():
    engine_config = PytorchEngineConfig(max_batch_size=1,
                                        role=EngineRole.Prefill,
                                        block_size=64,
                                        kernel_block_size=32)
    checker = _build_checker(engine_config)

    with pytest.raises(RuntimeError, match='PD migration does not support block_size != kernel_block_size'):
        checker.check()


def test_engine_checker_allows_split_kernel_blocks_for_hybrid_engine():
    engine_config = PytorchEngineConfig(max_batch_size=1,
                                        role=EngineRole.Hybrid,
                                        block_size=64,
                                        kernel_block_size=32)
    checker = _build_checker(engine_config)

    checker.check()