Skip to content

Commit 0a75d8f

Browse files
Update summary + Add skipped compliance test
1 parent d6890dd commit 0a75d8f

File tree

2 files changed

+54
-3
lines changed

2 files changed

+54
-3
lines changed

tools/submission/README.md

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Output directory with submission with truncated `mlperf_log_accuracy.json` files
2929
### Summary
3030
The input submission directory is modified with empty directories removed and low accuracy results inferred. Multistream and offline scenario results are also wherever possible. The original input directory is saved in a timestamped directory.
3131

32-
## `submission_checker.py` (Mandatory)
32+
## `submission_checker/main.py` (Mandatory)
3333
### Inputs
3434
**input**: Path to the directory containing one or several submissions.<br>
3535
**version**: Checker version. E.g v1.1, v2.0, v2.1, v3.0, v3.1. <br>
@@ -50,9 +50,10 @@ The below input fields are off by default since v3.1 and are mandatory but can b
5050
**skip-check-power-measure-files**: Flag to avoid checking if the required power measurement files are present
5151

5252
### Summary
53-
Checks a directory that contains one or several submissions. This script can be used by running the following command:
53+
Checks a directory that contains one or several submissions. This script can be used by running the following command (outside the inference repository):
5454
```
55-
python3 submission_checker.py --input <path-to-folder>
55+
python3 -m inference.tools.submission.submission_checker.main
56+
--input <path-to-folder>
5657
[--version <version>]
5758
[--submitter <submitter-name>]
5859
[--csv <path-to-output>]
@@ -61,6 +62,52 @@ python3 submission_checker.py --input <path-to-folder>
6162
[--submission-exceptions]
6263
```
6364

65+
### implemented checks
66+
**performance:**
67+
- Check performance detailed log exists
68+
- Check for loadgen errors
69+
- Check for equal issue mode when it is required
70+
- Check the performance sample count used for running the benchmark
71+
- Check loadgen seeds are correct
72+
- Check latency constrain is met
73+
- Check minimun query count is met
74+
- Check minimun duration is met
75+
- Check network requirements
76+
- Check LLM latencies are met (if applies)
77+
- Check loadgen scenario matches with submission scenario or that result can be inferred
78+
79+
**accuracy**
80+
- Check the accuracy metric is correct and over the expected threshold (or within a range if applies)
81+
- Check accuracy json exists and is truncated
82+
- Check for loadgen error
83+
- Check full dataset is used for the accuracy run
84+
85+
**compliance**
86+
- Check compliance directory exists
87+
- Run performance checks for compliance run
88+
- Check accuracy test passes
89+
- Check performance test passes
90+
91+
**measurements**
92+
- Check measurements files exist
93+
- Check the required files are there
94+
- Check the required fields are there
95+
96+
**power**
97+
- Check the required power files are there (if the submission has power)
98+
- Run the external power checks
99+
- Check power metric can be calculated
100+
101+
**system**
102+
- Check system json exists
103+
- Check availability is valid
104+
- Check system type is valid
105+
- Check network fields
106+
- Check required fields are include in system json file
107+
- Check submitter is correct
108+
- Check division is correct
109+
110+
64111
### Outputs
65112
- CSV file containing all the valid results in the directory.
66113
- It raises several errors and logs invalid results.

tools/submission/submission_checker/checks/compliance_check.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def setup_checks(self):
2626
self.checks.append(self.dir_exists_check)
2727
self.checks.append(self.performance_check)
2828
self.checks.append(self.accuracy_check)
29+
self.checks.append(self.compliance_performance_check)
2930

3031
def get_test_list(self, model):
3132
test_list = []
@@ -188,6 +189,9 @@ def accuracy_check(self):
188189
return is_valid
189190

190191
def compliance_performance_check(self):
192+
if self.division.lower() == "open":
193+
self.log.info("Compliance tests not needed for open division. Skipping tests on %s", self.path)
194+
return True
191195
is_valid = True
192196
for test in self.test_list:
193197
test_dir = os.path.join(self.compliance_dir, test)

0 commit comments

Comments
 (0)