Spaces:
Running
on
Zero
Running
on
Zero
| from __future__ import annotations | |
| import time | |
| class RuntimeLogger: | |
| def __init__(self, enabled: bool) -> None: | |
| self.enabled = enabled | |
| self.start_time = time.perf_counter() | |
| self.last_time = self.start_time | |
| self.last_step = 0 | |
| def event(self, message: str) -> None: | |
| if self.enabled: | |
| print(f"[dia2] {message}") | |
| def progress(self, step: int, total: Optional[int] = None) -> None: | |
| if not self.enabled: | |
| return | |
| now = time.perf_counter() | |
| delta_t = max(now - self.last_time, 1e-6) | |
| delta_steps = max(step - self.last_step, 1) | |
| speed = delta_steps / delta_t | |
| if total is None: | |
| self.event(f"step {step} :: {speed:.1f} toks/s") | |
| else: | |
| self.event(f"step {step}/{total} :: {speed:.1f} toks/s") | |
| self.last_time = now | |
| self.last_step = step | |
| def elapsed(self) -> float: | |
| return time.perf_counter() - self.start_time | |
| __all__ = ["RuntimeLogger"] | |