"googlemock/git@developer.sourcefind.cn:yangql/googletest.git" did not exist on "c82cd5e41e3755fc9ed65912ca3acaae69921dbb"
configuration.md 2.09 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
---
id: configuration
---

# Configuration

## SuperBench config

SuperBench uses a [YAML](https://yaml.org/spec/1.2/spec.html) config file to configure the details of benchmarkings,
including which benchmark to run, which distributing mode to choose, which parameter to use, etc.

12
Here's the [default config file](https://github.com/microsoft/superbenchmark/blob/main/superbench/config/default.yaml).
13
14
By default, all benchmarks in default configuration will be run if you don't specify customized configuration.

15
If you want to have a quick try, you can modify this config a little bit. For example, only run resnet101 model.
16
17
18
19
1. copy the default config to a file named `resnet.yaml` in current path.
  ```bash
  cp superbench/config/default.yaml resnet.yaml
  ```
20
21
2. enable only `resnet_models` in the config and remove other models except resnet101 under `benchmarks.resnet_models.models`.
  ```yaml {3,11} title="resnet.yaml"
22
23
  # SuperBench Config
  superbench:
24
    enable: ['resnet_models']
25
26
27
28
    var:
  # ...
  # omit the middle part
  # ...
29
      resnet_models:
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
        <<: *default_pytorch_mode
        models:
          - resnet101
        parameters:
          <<: *common_model_config
          batch_size: 128
  ```

## Ansible Inventory

SuperBench leverages [Ansible](https://docs.ansible.com/ansible/latest/) to run benchmarking workloads on managed nodes,
you need to provide an [inventory](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html) file
to configure host list for managed nodes.

Here're some basic examples as your starting point.
* One managed node, same node as control node.
  ```ini title="local.ini"
  [all]
  localhost ansible_connection=local
  ```
* Two managed nodes, one is control node and the other can be remote accessed.
  ```ini title="mix.ini"
  [all]
  localhost ansible_connection=local
  10.0.0.100 ansible_user=username ansible_ssh_private_key_file=id_rsa
  ```
* Eight managed nodes, all can be accessed remotely.
  ```ini title="remote.ini"
  [all]
  10.0.0.[100:103]
  10.0.0.[200:203]

  [all:vars]
  ansible_user=username
  ansible_ssh_private_key_file=id_rsa
  ```