| | """Logging utilities for Dynamo and Inductor. |
| | |
| | This module provides specialized logging functionality including: |
| | - Step-based logging that prepends step numbers to log messages |
| | - Progress bar management for compilation phases |
| | - Centralized logger management for Dynamo and Inductor components |
| | |
| | The logging system helps track the progress of compilation phases and provides structured |
| | logging output for debugging and monitoring. |
| | """ |
| |
|
| | import itertools |
| | import logging |
| | from typing import Any, Callable |
| |
|
| | from torch.hub import _Faketqdm, tqdm |
| |
|
| |
|
| | |
| | disable_progress = True |
| |
|
| |
|
| | |
| | def get_loggers() -> list[logging.Logger]: |
| | return [ |
| | logging.getLogger("torch.fx.experimental.symbolic_shapes"), |
| | logging.getLogger("torch._dynamo"), |
| | logging.getLogger("torch._inductor"), |
| | ] |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| |
|
| | _step_counter = itertools.count(1) |
| |
|
| | |
| | |
| | |
| |
|
| | if not disable_progress: |
| | try: |
| | import triton |
| |
|
| | num_steps = 3 |
| | except ImportError: |
| | num_steps = 2 |
| | pbar = tqdm(total=num_steps, desc="torch.compile()", delay=0) |
| |
|
| |
|
| | def get_step_logger(logger: logging.Logger) -> Callable[..., None]: |
| | if not disable_progress: |
| | pbar.update(1) |
| | if not isinstance(pbar, _Faketqdm): |
| | pbar.set_postfix_str(f"{logger.name}") |
| |
|
| | step = next(_step_counter) |
| |
|
| | def log(level: int, msg: str, **kwargs: Any) -> None: |
| | if "stacklevel" not in kwargs: |
| | kwargs["stacklevel"] = 2 |
| | logger.log(level, "Step %s: %s", step, msg, **kwargs) |
| |
|
| | return log |
| |
|