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

from __future__ import annotations

6
import argparse
7
import typing
8

9
from vllm.entrypoints.cli.benchmark.base import BenchmarkSubcommandBase
10
from vllm.entrypoints.cli.types import CLISubcommand
11
12
from vllm.entrypoints.utils import (VLLM_SUBCMD_PARSER_EPILOG,
                                    show_filtered_argument_or_group_from_help)
13
14
15

if typing.TYPE_CHECKING:
    from vllm.utils import FlexibleArgumentParser
16
17
18
19
20


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

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

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

    def validate(self, args: argparse.Namespace) -> None:
29
        pass
30
31
32
33
34

    def subparser_init(
            self,
            subparsers: argparse._SubParsersAction) -> FlexibleArgumentParser:
        bench_parser = subparsers.add_parser(
35
36
37
            self.name,
            help=self.help,
            description=self.help,
38
39
40
            usage="vllm bench <bench_type> [options]")
        bench_subparsers = bench_parser.add_subparsers(required=True,
                                                       dest="bench_type")
41
42
43
44
45
46
47
48
49

        for cmd_cls in BenchmarkSubcommandBase.__subclasses__():
            cmd_subparser = bench_subparsers.add_parser(
                cmd_cls.name,
                help=cmd_cls.help,
                description=cmd_cls.help,
            )
            cmd_subparser.set_defaults(dispatch_function=cmd_cls.cmd)
            cmd_cls.add_cli_args(cmd_subparser)
50
51
52
            show_filtered_argument_or_group_from_help(cmd_subparser,
                                                      ["bench", cmd_cls.name])
            cmd_subparser.epilog = VLLM_SUBCMD_PARSER_EPILOG
53
54
55
56
57
        return bench_parser


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