tools#
Benchmark#
- onnx_array_api.ext_test_case.measure_time(stmt: Callable, context: Dict[str, Any] | None = None, repeat: int = 10, number: int = 50, div_by_number: bool = True, max_time: float | None = None) Dict[str, Any] [source]#
Measures a statement and returns the results as a dictionary.
- Parameters:
stmt – string
context – variable to know in a dictionary
repeat – average over repeat experiment
number – number of executions in one row
div_by_number – divide by the number of executions
max_time – execute the statement until the total goes beyond this time (approximatively), repeat is ignored, div_by_number must be set to True
- Returns:
dictionary
<<<
from onnx_array_api.ext_test_case import measure_time from math import cos res = measure_time(lambda: cos(0.5)) print(res)
>>>
{'average': 8.540000271750614e-08, 'deviation': 1.2932129190009065e-08, 'min_exec': 7.999995432328433e-08, 'max_exec': 1.2399999832268805e-07, 'repeat': 10, 'number': 50, 'ttime': 8.540000271750615e-07, 'context_size': 64}
See Timer.repeat for a better understanding of parameter repeat and number. The function returns a duration corresponding to number times the execution of the main statement.
Changed in version 0.4: Parameter max_time was added.
Examples#
Unit tests#
- onnx_array_api.ext_test_case.ignore_warnings(warns: List[Warning]) Callable [source]#
Catches warnings.
- Parameters:
warns – warnings to ignore
- class onnx_array_api.ext_test_case.ExtTestCase(methodName='runTest')[source]#
- capture(fct: Callable)[source]#
Runs a function and capture standard output and error.
- Parameters:
fct – function to run
- Returns:
result of fct, output, error