Skip to content

Commit

Permalink
Improved units for "parse_summary" (#45)
Browse files Browse the repository at this point in the history
* Fixed typo

* parse_summary now pretty prints timing units

* Kept everything in milliseconds

* Preserved trailing zeroes

* Removed dead import
  • Loading branch information
Akshat-Tripathi authored Jun 25, 2024
1 parent 94e88c3 commit adf9092
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 5 deletions.
39 changes: 34 additions & 5 deletions base_loadgen_experiment/code_axs.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/usr/bin/env python3

from function_access import to_num_or_not_to_num
from pint import UnitRegistry


def parse_summary(abs_log_summary_path):

Expand All @@ -12,7 +14,34 @@ def parse_summary(abs_log_summary_path):
k = k.replace(' ', '_').replace('/', '_').replace('*', '').replace(')', '').replace('(', '')

parsed_summary[k] = to_num_or_not_to_num(v)
return parsed_summary

beautified_summary = {}
# Pretty print units
ureg = UnitRegistry()
for k, v in parsed_summary.items():
k: str
unit = None
if k.endswith("_ns"):
k = k.removesuffix("_ns")
unit = ureg.ns
elif k.endswith("_ms"):
k = k.removesuffix("_ms")
unit = ureg.ms

if unit is None:
beautified_summary[k] = v
continue

v = (v*unit).to_compact()

if v.u == ureg.us:
v.ito(ureg.ms) # Keep everything in milliseconds

unit_suffix = f"{v.u}{'s' if v.m != 1 else ''}"

beautified_summary[k] = f"{v.m :<.3f} {unit_suffix}"

return beautified_summary


def parse_performance(summary, scenario_performance_map, raw=False):
Expand Down Expand Up @@ -47,7 +76,7 @@ def unpack_one_blob(packed_blob):
return readable_accuracy_log


def guess_command(tags, framework, loadgen_scenario, loadgen_mode, model_name, loadgen_dataset_size, loadgen_buffer_size, loadgen_compiance_test = None, loadgen_target_qps = None, loadgen_target_latency=None, loadgen_multistreamness=None, sut_name = None):
def guess_command(tags, framework, loadgen_scenario, loadgen_mode, model_name, loadgen_dataset_size, loadgen_buffer_size, loadgen_compliance_test = None, loadgen_target_qps = None, loadgen_target_latency=None, loadgen_multistreamness=None, sut_name = None):

terms_list = [] + tags
terms_list.append( f"framework={framework}" )
Expand All @@ -56,10 +85,10 @@ def guess_command(tags, framework, loadgen_scenario, loadgen_mode, model_name, l
terms_list.append( f"model_name={model_name}" )
terms_list.append( f"loadgen_dataset_size={loadgen_dataset_size}" )
terms_list.append( f"loadgen_buffer_size={loadgen_buffer_size}" )
if loadgen_compiance_test is None:
terms_list.append( f"loadgen_compiance_test-" )
if loadgen_compliance_test is None:
terms_list.append( "loadgen_compliance_test-" )
else:
terms_list.append( f"loadgen_compiance_test={loadgen_compiance_test}" )
terms_list.append( f"loadgen_compliance_test={loadgen_compliance_test}" )
if sut_name is not None:
terms_list.append( f"sut_name={sut_name}" )

Expand Down
7 changes: 7 additions & 0 deletions base_loadgen_experiment/data_axs.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
{
"better_units_query": [ "python_package", "package_name=pint", ["desired_python_version", ["^", "kernel_python_major_dot_minor"]] ],
"_BEFORE_CODE_LOADING": [ "^^", "execute", [[
[ "get_kernel" ],
[ "byquery", [[ "^^", "get", "better_units_query" ]] ],
[ "use" ]
]]],

"rel_log_summary_path": "mlperf_log_summary.txt",
"abs_log_summary_path": [ "^^", "get_path_from", "rel_log_summary_path" ],

Expand Down

0 comments on commit adf9092

Please sign in to comment.