11import argparse
22import importlib
33import re
4+ import time
45import unittest
56
7+ from datetime import timedelta
68from typing import Any
79
810import torch
@@ -43,6 +45,7 @@ def run_test( # noqa: C901
4345 """
4446
4547 error_statistics : list [ErrorStatistics ] = []
48+ extra_stats = {}
4649
4750 # Helper method to construct the summary.
4851 def build_result (
@@ -57,6 +60,7 @@ def build_result(
5760 result = result ,
5861 error = error ,
5962 tensor_error_statistics = error_statistics ,
63+ ** extra_stats ,
6064 )
6165
6266 # Ensure the model can run in eager mode.
@@ -71,11 +75,16 @@ def build_result(
7175 return build_result (TestResult .UNKNOWN_FAIL , e )
7276
7377 if flow .quantize :
78+ start_time = time .perf_counter ()
7479 try :
7580 tester .quantize (
7681 flow .quantize_stage_factory () if flow .quantize_stage_factory else None
7782 )
83+ elapsed = time .perf_counter () - start_time
84+ extra_stats ["quantize_time" ] = timedelta (seconds = elapsed )
7885 except Exception as e :
86+ elapsed = time .perf_counter () - start_time
87+ extra_stats ["quantize_time" ] = timedelta (seconds = elapsed )
7988 return build_result (TestResult .QUANTIZE_FAIL , e )
8089
8190 try :
@@ -86,9 +95,14 @@ def build_result(
8695 except Exception as e :
8796 return build_result (TestResult .EXPORT_FAIL , e )
8897
98+ lower_start_time = time .perf_counter ()
8999 try :
90100 tester .to_edge_transform_and_lower ()
101+ elapsed = time .perf_counter () - lower_start_time
102+ extra_stats ["lower_time" ] = timedelta (seconds = elapsed )
91103 except Exception as e :
104+ elapsed = time .perf_counter () - lower_start_time
105+ extra_stats ["lower_time" ] = timedelta (seconds = elapsed )
92106 return build_result (TestResult .LOWER_FAIL , e )
93107
94108 is_delegated = any (
@@ -183,6 +197,7 @@ def parse_args():
183197 "--report" ,
184198 nargs = "?" ,
185199 help = "A file to write the test report to, in CSV format." ,
200+ default = "backend_test_report.csv" ,
186201 )
187202 return parser .parse_args ()
188203
0 commit comments