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, pre_grad_graphs=False, post_grad_graphs=False, ir_pre_fusion=False, ir_post_fusion=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, autotuning=False, graph_region_expansion=False)[source][source]¶
为各个组件设置日志级别并切换各个日志条目类型。
警告
该功能是一个原型,未来可能会有不兼容的更改。
注意
环境变量
TORCH_LOGS
具有完全优先级,因此如果已设置,此函数将不起作用。组件是 PyTorch 中相关功能的一组。从给定组件发出的所有日志消息都有自己的日志级别。如果特定消息的日志级别优先级大于或等于其组件的日志级别设置,则将其发出。否则,将其抑制。这允许您,例如,静音与您无关的大量日志消息,并增加相关组件的日志详细程度。预期的日志级别值,按从高到低的优先级排序,为:
logging.CRITICAL
logging.ERROR
logging.WARNING
logging.INFO
logging.DEBUG
logging.NOTSET
更多关于日志级别的信息,请参阅 Python
logging
模块的文档:https://docs.python.org/3/library/logging.html#logging-levels文件是一个特定类型的日志消息。每个文件都分配给一个父组件。一个组件可以发出许多不同类型的文件。一般来说,如果以下参数列表中对应的设置被开启,或者其父组件的日志级别小于或等于文件的日志级别,就会发出文件。
- 关键字参数:
所有(
Optional[int]
)- 所有组件的默认日志级别。默认:logging.WARN
dynamo(
Optional[int]
)- TorchDynamo 组件的日志级别。默认:logging.WARN
aot(
Optional[int]
)- AOTAutograd 组件的日志级别。默认:logging.WARN
autograd (
Optional[int]
) – 自动微分日志级别。默认:logging.WARN
inductor (
Optional[int]
) – TorchInductor 组件的日志级别。默认:logging.WARN
dynamic (
Optional[int]
) – 动态形状的日志级别。默认:logging.WARN
distributed (
Optional[int]
) – 是否记录 PyTorch 分布式组件的 c10d 通信操作和其他调试信息。默认:logging.WARN
c10d (
Optional[int]
) – 是否记录 PyTorch 分布式组件中 c10d 通信操作的调试信息。默认:logging.WARN
ddp (Optional[int]
) – 是否记录与DistributedDataParallel``(DDP) from PyTorch Distributed components. Default: ``logging.WARN
相关的调试信息
fsdp (Optional[int]
) – 是否记录与FullyShardedDataParallel``(FSDP) in PyTorch Distributed components. Default: ``logging.WARN
相关的调试信息
dtensor (Optional[int]
) – 是否记录与DTensor``(DTensor) in PyTorch Distributed components. Default: ``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
内核代码(
bool
)- 是否按内核基础输出 TorchInductor 输出代码。默认:False
调度(
bool
)- 是否输出 TorchInductor 的调度。默认:False
性能提示(
bool
)- 是否输出 TorchInductor 的性能提示。默认:False
预梯度图(
bool
)- 是否在电感器梯度传递之前输出图。默认:False
后置梯度图生成(
bool
)- 是否输出由后置梯度操作生成的图。默认:False
诱导器融合前图(
bool
)- 是否输出诱导器融合操作之前的图。默认:False
诱导器融合后图(
bool
)- 是否输出诱导器融合操作之后的图。默认:False
ONNX 导出器诊断(
bool
)- 是否在日志中输出 ONNX 导出器的诊断信息。默认:False
融合(
bool
)- 是否输出详细的电感器融合决策。默认:False
交叉(
bool
)- 是否输出详细的电感器计算/通信交叉决策。默认:False
sym_node(
bool
)- 是否输出各种 SymNode 操作调试信息。默认:False
导出(
Optional[int]
)- 导出日志级别。默认:logging.WARN
基准测试(
bool
)- 是否输出详细的电感器基准测试信息。默认:False
模块(dict)- 此参数提供了一种指定上述日志组件和工件设置的替代方法,格式为单个参数给出的关键字参数字典。在两种情况下这很有用(1)如果已注册了新的日志组件或工件,但尚未为此函数添加关键字参数,以及(2)如果需要设置未注册模块的日志级别。这可以通过提供完全限定的模块名称作为键,将日志级别作为值来完成。默认:
None
cudagraph_static_inputs(
bool
)- 是否输出 cudagraph 静态输入检测的调试信息。默认:False
自动调优(
bool
)- 自动调优选择日志,例如内核源代码、性能和调优参数。默认:False
图区域扩展算法的详细步骤是否输出(
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})