main.py 1.83 KB
Newer Older
1
# SPDX-License-Identifier: Apache-2.0
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3

4
import argparse
5
import typing
6

7
from vllm.entrypoints.cli.benchmark.base import BenchmarkSubcommandBase
8
from vllm.entrypoints.cli.types import CLISubcommand
9
from vllm.entrypoints.utils import VLLM_SUBCMD_PARSER_EPILOG
10
11

if typing.TYPE_CHECKING:
12
    from vllm.utils.argparse_utils import FlexibleArgumentParser
13
14
else:
    FlexibleArgumentParser = argparse.ArgumentParser
15
16
17


class BenchmarkSubcommand(CLISubcommand):
18
    """The `bench` subcommand for the vLLM CLI."""
19

20
21
    name = "bench"
    help = "vLLM bench subcommand."
22
23
24
25
26
27

    @staticmethod
    def cmd(args: argparse.Namespace) -> None:
        args.dispatch_function(args)

    def validate(self, args: argparse.Namespace) -> None:
28
        pass
29
30

    def subparser_init(
31
32
        self, subparsers: argparse._SubParsersAction
    ) -> FlexibleArgumentParser:
33
        bench_parser = subparsers.add_parser(
34
            self.name,
35
            help=self.help,
36
            description=self.help,
37
38
39
            usage=f"vllm {self.name} <bench_type> [options]",
        )
        bench_subparsers = bench_parser.add_subparsers(required=True, dest="bench_type")
40
41
42
43
44
45

        for cmd_cls in BenchmarkSubcommandBase.__subclasses__():
            cmd_subparser = bench_subparsers.add_parser(
                cmd_cls.name,
                help=cmd_cls.help,
                description=cmd_cls.help,
46
                usage=f"vllm {self.name} {cmd_cls.name} [options]",
47
48
49
            )
            cmd_subparser.set_defaults(dispatch_function=cmd_cls.cmd)
            cmd_cls.add_cli_args(cmd_subparser)
50
            cmd_subparser.epilog = VLLM_SUBCMD_PARSER_EPILOG.format(
51
52
                subcmd=f"{self.name} {cmd_cls.name}"
            )
53
54
55
56
57
        return bench_parser


def cmd_init() -> list[CLISubcommand]:
    return [BenchmarkSubcommand()]