cli.py 1.45 KB
Newer Older
1
2
3
4
5
6
7
8
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
import argparse

from vllm.entrypoints.utils import VLLM_SUBCMD_PARSER_EPILOG

from .plot import SweepPlotArgs
from .plot import main as plot_main
9
10
from .plot_pareto import SweepPlotParetoArgs
from .plot_pareto import main as plot_pareto_main
11
12
from .serve import SweepServeArgs
from .serve import main as serve_main
13
14
from .serve_workload import SweepServeWorkloadArgs
from .serve_workload import main as serve_workload_main
15
16
from .startup import SweepStartupArgs
from .startup import main as startup_main
17
18
19

SUBCOMMANDS = (
    (SweepServeArgs, serve_main),
20
    (SweepServeWorkloadArgs, serve_workload_main),
21
    (SweepStartupArgs, startup_main),
22
    (SweepPlotArgs, plot_main),
23
    (SweepPlotParetoArgs, plot_pareto_main),
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
)


def add_cli_args(parser: argparse.ArgumentParser):
    subparsers = parser.add_subparsers(required=True, dest="sweep_type")

    for cmd, entrypoint in SUBCOMMANDS:
        cmd_subparser = subparsers.add_parser(
            cmd.parser_name,
            description=cmd.parser_help,
            usage=f"vllm bench sweep {cmd.parser_name} [options]",
        )
        cmd_subparser.set_defaults(dispatch_function=entrypoint)
        cmd.add_cli_args(cmd_subparser)
        cmd_subparser.epilog = VLLM_SUBCMD_PARSER_EPILOG.format(
            subcmd=f"sweep {cmd.parser_name}"
        )


def main(args: argparse.Namespace):
    args.dispatch_function(args)