ext_test_case#

Various helpers to help develop the package.

Benchmarks#

onnx_extended.ext_test_case.measure_time(stmt: str | Callable, context: Dict[str, Any] | None = None, repeat: int = 10, number: int = 50, warmup: int = 1, 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 or callable

  • context – variable to know in a dictionary

  • repeat – average over repeat experiment

  • number – number of executions in one row

  • warmup – number of iteration to do before starting the real measurement

  • 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_extended.ext_test_case import measure_time
from math import cos

res = measure_time(lambda: cos(0.5))
print(res)

>>>

    {'average': 9.459999273531139e-08, 'deviation': 3.231123487461624e-09, 'min_exec': 9.199997293762862e-08, 'max_exec': 1.0400006431154907e-07, 'repeat': 10, 'number': 50, 'ttime': 9.459999273531139e-07, 'context_size': 64, 'warmup_time': 1.0600000678095967e-05}

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.