in utils/ryzenai/notification_service.py [0:0]
def extract_operator_values(self, trace, all_baseline_value, dpu_baseline_value, cpu_baseline_value):
# Extract values from trace and compare with baseline
if "DPU operators do not match!" in trace or "Total operators do not match!" in trace:
match = re.search(r"\{'all': (\d+), 'dpu': (\d+), 'cpu': (\d+)\}", trace)
all_value = int(match.group(1))
dpu_value = int(match.group(2))
cpu_value = int(match.group(3))
# Process values and compare with baseline
all_value_str = f"{all_value}({all_baseline_value})" if "Total" in trace else str(all_value)
dpu_value_str = (
f"{dpu_value}({dpu_baseline_value})" if dpu_value != dpu_baseline_value else str(dpu_baseline_value)
)
cpu_value_str = (
f"{cpu_value}({cpu_baseline_value})" if cpu_value != cpu_baseline_value else str(cpu_baseline_value)
)
regressed = "Y"
else:
# No regression, do not print values
cpu_value_str = "-"
dpu_value_str = "-"
all_value_str = "-"
regressed = "N"
return all_value_str, dpu_value_str, cpu_value_str, regressed