(repeats: int, f: Callable, *args, **kwargs)
| 26 | |
| 27 | |
| 28 | def timeit(repeats: int, f: Callable, *args, **kwargs) -> float: |
| 29 | for _ in range(5): # warmup |
| 30 | f(*args, **kwargs) |
| 31 | torch.cuda.synchronize() |
| 32 | start = time.time() |
| 33 | for _ in range(repeats): |
| 34 | results = f(*args, **kwargs) |
| 35 | torch.cuda.synchronize() |
| 36 | end = time.time() |
| 37 | return (end - start) / repeats, results |
| 38 | |
| 39 | |
| 40 | def main( |