mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08:00
I feel uneasy about touching `__warningregistry__` since it is undocumented and private surface. The only public API hook that doesn't increment warnings version seems to be https://docs.python.org/3/library/warnings.html#warnings.showwarning. So we could wack a mole all the warnings muters in compile to just not display warnings, and we wouldn't invalidate warnings cache. This PR adds it for torch/_dynamo, and I didn't find any warnings versioning mutation from torch/_inductor. There is a behavior change if someone calls a compiled graph with simplefilter("error"): ```python # e.g. test/dynamo_expected_failures/TestAutogradFallback.test_no_autograd_kernel_inplace_mode_nothing with warnings.catch_warnings(): warnings.simplefilter("error") # turns all warnings into errors compiled_fn() # will throw if any of the muted warnings fire ``` FIXES https://github.com/pytorch/pytorch/issues/128427 A note for the future: The warnings module doesn't offer a thread safe way of using it. Even regular filters have this problem, directly editing `__warningregistry__` would be very bad, and this PR would mute all threads. Someone will need to build a thread safe warnings interface. Pull Request resolved: https://github.com/pytorch/pytorch/pull/158520 Approved by: https://github.com/anijain2305, https://github.com/zou3519
21 lines
818 B
Python
21 lines
818 B
Python
# Top level logging module for torch logging
|
|
# Design doc: https://docs.google.com/document/d/1ZRfTWKa8eaPq1AxaiHrq4ASTPouzzlPiuquSBEJYwS8/edit#
|
|
# Simple setup for onboarding (see above doc for more detail):
|
|
# 1. register any top-level log qualified name for your module in torch._logging._registrations (see there for examples)
|
|
# 2. register any artifacts (<artifact_name> below) in torch._logging._registrations
|
|
# a. call getArtifactLogger(__name__, <artifact_name>) at your logging site instead of the standard logger to log your artifact
|
|
import torch._logging._registrations
|
|
|
|
from ._internal import (
|
|
_init_logs,
|
|
DEFAULT_LOGGING,
|
|
dtrace_structured,
|
|
get_structured_logging_overhead,
|
|
getArtifactLogger,
|
|
hide_warnings,
|
|
LazyString,
|
|
set_logs,
|
|
trace_structured,
|
|
warning_once,
|
|
)
|