@@ -81,11 +81,10 @@ def bench(targets = None):
81
81
# pylint: disable=too-many-branches
82
82
def diff ():
83
83
lhs , rhs = file_load_yaml (ARG ("lhs" )), file_load_yaml (ARG ("rhs" ))
84
-
85
84
cons .print (f"[bold]Comparing Benchmarks: Speedups from [magenta]{ os .path .relpath (ARG ('lhs' ))} [/magenta] to [magenta]{ os .path .relpath (ARG ('rhs' ))} [/magenta] are displayed below. Thus, numbers > 1 represent increases in performance.[/bold]" )
85
+
86
86
if lhs ["metadata" ] != rhs ["metadata" ]:
87
- def _lock_to_str (lock ):
88
- return ' ' .join ([f"{ k } ={ v } " for k , v in lock .items ()])
87
+ _lock_to_str = lambda lock : ' ' .join ([f"{ k } ={ v } " for k , v in lock .items ()])
89
88
90
89
cons .print (f"""\
91
90
[bold yellow]Warning[/bold yellow]: Metadata in lhs and rhs are not equal.
@@ -114,56 +113,39 @@ def _lock_to_str(lock):
114
113
table .add_column ("[bold]Post Process[/bold]" , justify = "right" )
115
114
116
115
err = 0
117
-
118
116
for slug in slugs :
119
- lhs_summary = lhs ["cases" ][slug ]["output_summary" ]
120
- rhs_summary = rhs ["cases" ][slug ]["output_summary" ]
121
-
117
+ lhs_summary , rhs_summary = lhs ["cases" ][slug ]["output_summary" ], rhs ["cases" ][slug ]["output_summary" ]
122
118
speedups = ['N/A' , 'N/A' , 'N/A' ]
123
119
124
120
for i , target in enumerate (sorted (DEFAULT_TARGETS , key = lambda t : t .runOrder )):
125
121
if (target .name not in lhs_summary ) or (target .name not in rhs_summary ):
126
-
127
- err = 1
128
-
129
- if target .name not in lhs_summary :
130
- cons .print (f"{ target .name } not present in lhs_summary - Case: { slug } " )
131
-
132
- if target .name not in rhs_summary :
133
- cons .print (f"{ target .name } not present in rhs_summary - Case: { slug } " )
134
-
135
- continue
122
+ cons .print (f"{ target .name } not present in lhs_summary or rhs_summary - Case: { slug } " )
123
+ err = 1 ; continue
136
124
137
125
if not math .isfinite (lhs_summary [target .name ]["exec" ]) or not math .isfinite (rhs_summary [target .name ]["exec" ]):
138
126
err = 1
139
127
cons .print (f"lhs_summary or rhs_summary reports non-real exec time for { target .name } - Case: { slug } " )
140
128
141
- exec_time_speedup = "N/A"
142
129
try :
143
- exec_time_speedup = f'{ lhs_summary [target .name ]["exec" ] / rhs_summary [target .name ]["exec" ]:.2f} '
130
+ exec_time_value = lhs_summary [target .name ]["exec" ] / rhs_summary [target .name ]["exec" ]
131
+ if exec_time_value < 0.9 :
132
+ cons .print (f"[bold yellow]Warning[/bold yellow]: Exec time speedup for { target .name } is less than 0.9 - Case: { slug } " )
133
+ speedups [i ] = f"Exec: { exec_time_value :.2f} "
134
+ if target == SIMULATION :
135
+ if not math .isfinite (lhs_summary [target .name ]["grind" ]) or not math .isfinite (rhs_summary [target .name ]["grind" ]):
136
+ err = 1
137
+ cons .print (f"lhs_summary or rhs_summary reports non-real grind time for { target .name } - Case: { slug } " )
138
+
139
+ grind_time_value = lhs_summary [target .name ]["grind" ] / rhs_summary [target .name ]["grind" ]
140
+ speedups [i ] += f" & Grind: { grind_time_value :.2f} "
141
+ if grind_time_value < 0.95 :
142
+ raise MFCException (f"Benchmarking failed since grind time speedup for { target .name } below acceptable threshold (<0.98) - Case: { slug } " )
144
143
except Exception as _ :
145
144
err = 1
146
- cons .print (f"lhs_summary or rhs_summary reports non-real exec time for { target .name } - Case: { slug } " )
147
-
148
- speedups [i ] = f"Exec: { exec_time_speedup } "
149
-
150
- if target == SIMULATION :
151
- grind_time_speedup = "N/A"
152
- if not math .isfinite (lhs_summary [target .name ]["grind" ]) or not math .isfinite (rhs_summary [target .name ]["grind" ]):
153
- err = 1
154
- cons .print (f"lhs_summary or rhs_summary reports non-real grind time for { target .name } - Case: { slug } " )
155
-
156
- try :
157
- grind_time_speedup = f'{ lhs_summary [target .name ]["grind" ] / rhs_summary [target .name ]["grind" ]:.2f} '
158
- except Exception as _ :
159
- err = 1
160
- cons .print (f"lhs_summary or rhs_summary reports non-real grind time for { target .name } - Case: { slug } " )
161
-
162
- speedups [i ] += f" & Grind: { grind_time_speedup } "
145
+ cons .print (f"lhs_summary or rhs_summary reports non-real grind time for { target .name } - Case: { slug } " )
163
146
164
147
table .add_row (f"[magenta]{ slug } [/magenta]" , * speedups )
165
148
166
149
cons .raw .print (table )
167
-
168
- if err != 0 :
150
+ if err :
169
151
raise MFCException ("Benchmarking failed" )
0 commit comments