torch._logging.set_logs¶
- torch._logging.set_logs(*, all=None, dynamo=None, aot=None, autograd=None, dynamic=None, inductor=None, distributed=None, c10d=None, ddp=None, fsdp=None, dtensor=None, onnx=None, bytecode=False, aot_graphs=False, aot_joint_graph=False, ddp_graphs=False, graph=False, graph_code=False, graph_breaks=False, graph_sizes=False, guards=False, recompiles=False, recompiles_verbose=False, trace_source=False, trace_call=False, trace_bytecode=False, output_code=False, kernel_code=False, schedule=False, perf_hints=False, post_grad_graphs=False, onnx_diagnostics=False, fusion=False, overlap=False, export=None, modules=None, cudagraphs=False, sym_node=False, compiled_autograd=False, compiled_autograd_verbose=False, cudagraph_static_inputs=False, benchmarking=False, graph_region_expansion=False)[来源][来源]¶
为各个组件设置日志级别并切换各个日志工件类型。
警告
此功能是一个原型,将来可能会有破坏兼容性的更改。
注意
TORCH_LOGS
环境变量完全优先于此函数,因此如果已设置该环境变量,则此函数不执行任何操作。组件是 PyTorch 中一组相关的功能。从给定组件发出的所有日志消息都有自己的日志级别。如果特定消息的日志级别优先级大于或等于其组件的日志级别设置,则会发出该消息。否则,该消息将被抑制。这允许您例如,静默与您无关的大量日志消息,并提高与您相关的组件的日志详细程度。预期的日志级别值(从最高优先级到最低优先级排序)为
logging.CRITICAL
logging.ERROR
logging.WARNING
logging.INFO
logging.DEBUG
logging.NOTSET
有关日志级别的更多信息,请参阅 Python
logging
模块的文档: https://docs.pythonlang.cn/3/library/logging.html#logging-levels工件是一种特定的日志消息类型。每个工件都分配给一个父组件。一个组件可以发出许多不同种类的工件。通常,如果下面参数列表中的相应设置已打开,或者其父组件设置为小于或等于工件日志级别的日志级别,则会发出工件。
- 关键字参数
all (
Optional[int]
) – 所有组件的默认日志级别。默认值:logging.WARN
dynamo (
Optional[int]
) – TorchDynamo 组件的日志级别。默认值:logging.WARN
aot (
Optional[int]
) – AOTAutograd 组件的日志级别。默认值:logging.WARN
autograd (
Optional[int]
) – autograd 的日志级别。默认值:logging.WARN
inductor (
Optional[int]
) – TorchInductor 组件的日志级别。默认值:logging.WARN
dynamic (
Optional[int]
) – 动态形状的日志级别。默认值:logging.WARN
distributed (
Optional[int]
) – 是否记录 c10d 通信操作和来自 PyTorch Distributed 组件的其他调试信息。默认值:logging.WARN
c10d (
Optional[int]
) – 是否记录 PyTorch Distributed 组件中与 c10d 通信操作相关的调试信息。默认值:logging.WARN
ddp (
Optional[int]
) – 是否记录与来自 PyTorch Distributed 组件的DistributedDataParallel
(DDP) 相关的调试信息。默认值:logging.WARN
fsdp (
Optional[int]
) – 是否记录 PyTorch Distributed 组件中与FullyShardedDataParallel
(FSDP) 相关的调试信息。默认值:logging.WARN
dtensor (
Optional[int]
) – 是否记录 PyTorch Distributed 组件中与DTensor
(DTensor) 相关的调试信息。默认值:logging.WARN
onnx (
Optional[int]
) – ONNX 导出器组件的日志级别。默认值:logging.WARN
bytecode (
bool
) – 是否从 TorchDynamo 发出原始字节码和生成的字节码。默认值:False
aot_graphs (
bool
) – 是否发出 AOTAutograd 生成的图。默认值:False
aot_joint_graph (
bool
) – 是否发出 AOTAutograd 生成的联合前向-后向图。默认值:False
ddp_graphs (
bool
) – 是否发出 DDPOptimizer 生成的图。默认值:False
graph (
bool
) – 是否以表格格式发出 TorchDynamo 捕获的图。默认值:False
graph_code (
bool
) – 是否发出 TorchDynamo 捕获的图的 python 源代码。默认值:False
graph_breaks (
bool
) – 是否发出 TorchDynamo 遇到的图中断。默认值:False
graph_sizes (
bool
) – 是否发出 TorchDynamo 捕获的图的张量大小。默认值:False
guards (
bool
) – 是否为每个编译的函数发出 TorchDynamo 生成的保护。默认值:False
recompiles (
bool
) – 每次 TorchDynamo 重新编译函数时,是否发出保护失败原因和消息。默认值:False
recompiles_verbose (
bool
) – 当 TorchDynamo 重新编译函数时,是否发出所有保护失败原因,即使是那些实际上未运行的原因。默认值:False
trace_source (
bool
) – 当 TorchDynamo 开始跟踪新行时是否发出。默认值:False
trace_call (
bool
) – 当 TorchDynamo 创建与函数调用对应的 FX 节点时,是否发出详细的行位置信息。仅限 Python 3.11+。默认值:False
trace_bytecode (
bool
) – 当 TorchDynamo 跟踪字节码时,是否发出字节码指令和跟踪的堆栈状态。默认值:False
output_code (
bool
) – 是否在每个图的基础上发出 TorchInductor 输出代码。默认值:False
kernel_code (
bool
) – 是否在每个内核的基础上发出 TorchInductor 输出代码。默认值:False
schedule (
bool
) – 是否发出 TorchInductor 调度。默认值:False
perf_hints (
bool
) – 是否发出 TorchInductor 性能提示。默认值:False
post_grad_graphs (
bool
) – 是否发出在后梯度传递之后生成的图。默认值:False
onnx_diagnostics (
bool
) – 是否在日志记录中发出 ONNX 导出器诊断信息。默认值:False
fusion (
bool
) – 是否发出详细的 Inductor 融合决策。默认值:False
overlap (
bool
) – 是否发出详细的 Inductor 计算/通信重叠决策。默认值:False
sym_node (
bool
) – 是否发出各种 SymNode 操作的调试信息。默认值:False
export (
Optional[int]
) – 导出的日志级别。默认值:logging.WARN
benchmarking (
bool
) – 是否发出详细的 Inductor 基准测试信息。默认值:False
modules (dict) – 此参数提供了一种替代方法来指定上述日志组件和工件设置,格式为作为单个参数给出的关键字参数字典。在两种情况下,这很有用:(1)如果已注册新的日志组件或工件,但尚未为此函数添加关键字参数;(2)如果需要设置未注册模块的日志级别。这可以通过提供完全限定的模块名称作为键,并将日志级别作为值来完成。默认值:
None
cudagraph_static_inputs (
bool
) – 是否发出 cudagraph 静态输入检测的调试信息。默认值:False
graph_region_expansion (
bool
) – 是否发出重复图区域跟踪器扩展算法的详细步骤。默认值:False
示例
>>> import logging # The following changes the "dynamo" component to emit DEBUG-level # logs, and to emit "graph_code" artifacts. >>> torch._logging.set_logs(dynamo=logging.DEBUG, graph_code=True) # The following enables the logs for a different module >>> torch._logging.set_logs(modules={"unregistered.module.name": logging.DEBUG})