CLI
SuperBench provides a command line interface to help you use, deploy and run benchmarks.
$ sb
_____ ____ _ / ____| | _ \ | | | (___ _ _ _ __ ___ _ __| |_) | ___ _ __ ___| |__ \___ \| | | | '_ \ / _ \ '__| _ < / _ \ '_ \ / __| '_ \ ____) | |_| | |_) | __/ | | |_) | __/ | | | (__| | | | |_____/ \__,_| .__/ \___|_| |____/ \___|_| |_|\___|_| |_| | | |_|
Welcome to the SB CLI!
#
SuperBench CLI commandsThe following lists sb
commands usages and examples:
sb benchmark list
#
List benchmarks which match the regular expression.
sb benchmark list [--name]
#
Optional argumentsName | Default | Description |
---|---|---|
--name -n | None | Benchmark name or regular expression. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesList all benchmarks:
sb benchmark list
List all benchmarks ending with "-bw":
sb benchmark list --name [a-z]+-bw
sb benchmark list-parameters
#
List parameters for benchmarks which match the regular expression.
sb benchmark list-parameters [--name]
#
Optional argumentsName | Default | Description |
---|---|---|
--name -n | None | Benchmark name or regular expression. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesList parameters for all benchmarks:
sb benchmark list-parameters
List parameters for all benchmarks which starts with "pytorch-":
sb benchmark list-parameters --name pytorch-[a-z]+
sb deploy
#
Deploy the SuperBench environments to all managed nodes.
sb deploy [--docker-image] [--docker-password] [--docker-username] [--host-file] [--host-list] [--host-password] [--host-username] [--no-image-pull] [--output-dir] [--private-key]
#
Optional argumentsName | Default | Description |
---|---|---|
--docker-image -i | superbench/superbench | Docker image URI, here listed all images. |
--docker-password | None | Docker registry password if authentication is needed. |
--docker-username | None | Docker registry username if authentication is needed. |
--host-file -f | None | Path to Ansible inventory host file. |
--host-list -l | None | Comma separated host list. |
--host-password | None | Host password or key passphrase if needed. |
--host-username | None | Host username if needed. |
--no-image-pull | False | Skip pull and use local Docker image. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
--private-key | None | Path to private key if needed. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesDeploy default image on local GPU node:
sb deploy --host-list localhost
Deploy image superbench/cuda:11.1
to all nodes in ./host.ini
:
sb deploy --docker-image superbench/cuda:11.1 --host-file ./host.ini
sb exec
#
Execute the SuperBench benchmarks locally.
sb exec [--config-file] [--config-override] [--output-dir]
#
Optional argumentsName | Default | Description |
---|---|---|
--config-file -c | None | Path to SuperBench config file. |
--config-override -C | None | Extra arguments to override config_file. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesExecute GPT2 model benchmark in default configuration:
sb exec --config-override superbench.enable="['gpt2_models']"
sb node info
#
Get system info on the local node.
sb node info [--output-dir]
#
Optional argumentsName | Default | Description |
---|---|---|
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
#
ExamplesGet system info on the local node and save it into the outputs
dir:
sb node info --output-dir outputs
sb result diagnosis
#
Filter the defective machines automatically from benchmarking results according to rules defined in rule file.
sb result diagnosis --baseline-file --data-file --rule-file [--decimal-place-value] [--rule-file] [--output-all] [--output-dir] [--output-file-format {excel, json, md, html}]
#
Required argumentsName | Description |
---|---|
--data-file -d | Path to raw data file. |
--rule-file -r | Path to rule file. |
#
Optional argumentsName | Default | Description |
---|---|---|
--baseline-file -b | Path to baseline file. | |
--decimal-place-value | 2 | Number of valid decimal places to show in output. Default: 2. |
--output-all | N/A | Output diagnosis results for all nodes. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
--output-file-format | excel | Format of output file, 'excel', 'json', 'jsonl', 'md' or 'html'. Default: excel. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesRun data diagnosis and output the results in excel format:
sb result diagnosis --data-file outputs/results-summary.jsonl --rule-file rule.yaml --baseline-file baseline.json --output-file-format excel
Run data diagnosis and output the results in json format:
sb result diagnosis --data-file outputs/results-summary.jsonl --rule-file rule.yaml --baseline-file baseline.json --output-file-format json
Run data diagnosis and output the results in jsonl format:
sb result diagnosis --data-file outputs/results-summary.jsonl --rule-file rule.yaml --baseline-file baseline.json --output-file-format jsonl
Run data diagnosis and output the results in markdown format with 2 valid decimal places:
sb result diagnosis --data-file outputs/results-summary.jsonl --rule-file rule.yaml --baseline-file baseline.json --output-file-format md --decimal-place-value 2
run data diagnosis and output the results of all nodes in json format:
sb result diagnosis --data-file outputs/results-summary.jsonl --rule-file rule.yaml --baseline-file baseline.json --output-file-format json --output-all
sb result summary
#
Generate the readable summary report automatically from benchmarking results according to rules defined in rule file.
sb result summary --data-file --rule-file [--decimal-place-value] [--output-dir] [--output-file-format {md, excel, html}]
#
Required argumentsName | Description |
---|---|
--data-file -d | Path to raw data file. |
--rule-file -r | Path to rule file. |
#
Optional argumentsName | Default | Description |
---|---|---|
--decimal-place-value | 2 | Number of valid decimal places to show in output. Default: 2. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
--output-file-format | md | Format of output file, 'excel', 'md' or 'html'. Default: md. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesRun result summary and output the results in markdown format with 2 valid decimal places:
sb result summary --data-file outputs/results-summary.jsonl --rule-file rule.yaml --output-file-format md --decimal-place-value 2
Run result summary and output the results in html format:
sb result summary --data-file outputs/results-summary.jsonl --rule-file rule.yaml --output-file-format html
sb result generate-baseline
#
Generate the baseline file automatically from multiple machines results according to rules defined in rule file.
sb result generate-baseline --data-file --summary-rule-file [--diagnosis-rule-file] [--baseline-file] [--decimal-place-value] [--output-dir]
#
Required argumentsName | Description |
---|---|
--data-file -d | Path to raw data file. |
--summary-rule-file -sr | Path to summary rule file. |
#
Optional argumentsName | Default | Description |
---|---|---|
--diagnosis-rule-file -dr | None | Path to diagnosis rule file. Default: None. |
--baseline-file -b | None | Path to previous baseline file. Default: None. |
--decimal-place-value | 2 | Number of valid decimal places to show in output. Default: 2. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesRun result generate-baseline to generate baseline.json file:
sb result generate-baseline --data-file outputs/results-summary.jsonl --summary-rule-file summary-rule.yaml --diagnosis-rule-file diagnosis-rule.yaml
Run result generate-baseline and merge with previous baseline:
sb result generate-baseline --data-file outputs/results-summary.jsonl --summary-rule-file summary-rule.yaml --diagnosis-rule-file diagnosis-rule.yaml --baseline-file previous-baseline.json
sb run
#
Run the SuperBench benchmarks distributedly.
sb run [--config-file] [--config-override] [--docker-image] [--docker-password] [--docker-username] [--get-info] [--host-file] [--host-list] [--host-password] [--host-username] [--no-docker] [--output-dir] [--private-key]
#
Optional argumentsName | Default | Description |
---|---|---|
--config-file -c | None | Path to SuperBench config file. |
--config-override -C | None | Extra arguments to override config_file. |
--docker-image -i | superbench/superbench | Docker image URI. |
--docker-password | None | Docker registry password if authentication is needed. |
--docker-username | None | Docker registry username if authentication is needed. |
--get-info | False | Collect system info. |
--host-file -f | None | Path to Ansible inventory host file. |
--host-list -l | None | Comma separated host list. |
--host-password | None | Host password or key passphrase if needed. |
--host-username | None | Host username if needed. |
--no-docker | False | Run on host directly without Docker. |
--output-dir | None | Path to output directory, outputs/{datetime} will be used if not specified. |
--private-key | None | Path to private key if needed. |
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesRun all benchmarks on local GPU node:
sb run --host-list localhost
Run all benchmarks on all managed nodes in ./host.ini
using image superbench/cuda:11.1
and default benchmarking configuration:
sb run --docker-image superbench/cuda:11.1 --host-file ./host.ini
Run kernel launch benchmarks on host directly without using Docker:
sb run --no-docker --host-list localhost --config-override \ superbench.enable=kernel-launch superbench.env.SB_MICRO_PATH=/path/to/superbenchmark
Collect system info on all nodes in ./host.ini" distributed without running benchmarks:
sb run --get-info --host-file ./host.ini -C superbench.enable=none
Collect system info on all nodes in ./host.ini" distributed while running benchmarks:
sb run --get-info --host-file ./host.ini
sb version
#
Print the current SuperBench CLI version.
sb version
#
Global argumentsName | Default | Description |
---|---|---|
--help -h | N/A | Show help message. |
#
ExamplesPrint version:
sb version