Signed-off-by: wangyu31577 <wangyu31577@hundsun.com> Signed-off-by: wangyu <53896905+yenuo26@users.noreply.github.com> Co-authored-by: wangyu31577 <wangyu31577@hundsun.com> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
import typing
|
|
|
|
from vllm.entrypoints.cli.types import CLISubcommand
|
|
from vllm.entrypoints.utils import VLLM_SUBCMD_PARSER_EPILOG
|
|
|
|
from vllm_omni.entrypoints.cli.benchmark.base import OmniBenchmarkSubcommandBase
|
|
|
|
if typing.TYPE_CHECKING:
|
|
from vllm.utils import FlexibleArgumentParser
|
|
|
|
|
|
class OmniBenchmarkSubcommand(CLISubcommand):
|
|
"""The `bench` subcommand for the vLLM CLI."""
|
|
|
|
name = "bench"
|
|
help = "vLLM-omni bench subcommand."
|
|
|
|
@staticmethod
|
|
def cmd(args: argparse.Namespace) -> None:
|
|
args.dispatch_function(args)
|
|
|
|
def validate(self, args: argparse.Namespace) -> None:
|
|
pass
|
|
|
|
def subparser_init(self, subparsers: argparse._SubParsersAction) -> FlexibleArgumentParser:
|
|
bench_parser = subparsers.add_parser(
|
|
self.name, description=self.help, usage=f"vllm {self.name} <bench_type> [options]"
|
|
)
|
|
bench_subparsers = bench_parser.add_subparsers(required=True, dest="bench_type")
|
|
|
|
for cmd_cls in OmniBenchmarkSubcommandBase.__subclasses__():
|
|
cmd_subparser = bench_subparsers.add_parser(
|
|
cmd_cls.name,
|
|
help=cmd_cls.help,
|
|
description=cmd_cls.help,
|
|
usage=f"vllm {self.name} {cmd_cls.name} [--omni] [options]",
|
|
)
|
|
cmd_subparser.add_argument(
|
|
"--omni",
|
|
action="store_true",
|
|
help="Enable benchmark-Omni mode (always enabled for omni commands)",
|
|
)
|
|
cmd_subparser.set_defaults(dispatch_function=cmd_cls.cmd)
|
|
cmd_cls.add_cli_args(cmd_subparser)
|
|
|
|
cmd_subparser.epilog = VLLM_SUBCMD_PARSER_EPILOG.format(subcmd=f"{self.name} {cmd_cls.name}")
|
|
|
|
return bench_parser
|
|
|
|
|
|
def cmd_init() -> list[CLISubcommand]:
|
|
return [OmniBenchmarkSubcommand()]
|