File size: 1,466 Bytes
44745f2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
42
from inferscale import compare_topologies, design_space_search


def test_topology_comparison_has_four_scenarios():
    result = compare_topologies({
        "model": "Qwen2.5-3B",
        "accelerator": "L4",
        "prefill_accelerator": "L4",
        "decode_accelerator": "L4",
        "quantization": "int8",
        "duration_s": 3,
        "request_rate_rps": 1,
        "prompt_tokens_mean": 64,
        "output_tokens_mean": 4,
        "prefix_reuse_fraction": 0.5,
        "shared_prefix_tokens": 32,
    })
    assert len(result["rows"]) == 4
    assert {row["topology"] for row in result["rows"]} == {"colocated", "disaggregated_pd"}
    assert all(row["goodput_per_accelerator"] >= 0 for row in result["rows"])


def test_design_space_marks_pareto_candidates():
    result = design_space_search({
        "model": "Qwen2.5-3B",
        "accelerator": "L4",
        "prefill_accelerator": "L4",
        "decode_accelerator": "L4",
        "quantization": "int8",
        "duration_s": 2,
        "request_rate_rps": 0.8,
        "prompt_tokens_mean": 64,
        "output_tokens_mean": 4,
        "shared_prefix_tokens": 32,
        "prefix_reuse_fraction": 0.5,
    }, include_disaggregated=False)
    assert result["candidate_count"] == 10
    assert result["pareto_count"] >= 1
    assert result["efficiency_pareto_count"] >= 1
    assert any(row["pareto"] for row in result["rows"])
    assert any(row["efficiency_pareto"] for row in result["rows"])