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.CRITICALlogging.ERRORlogging.WARNINGlogging.INFOlogging.DEBUGlogging.NOTSET
更多关于日志级别的信息,请参阅 Python
logging模块的文档:https://docs.python.org/3/library/logging.html#logging-levels文件是一个特定类型的日志消息。每个文件都分配给一个父组件。一个组件可以发出许多不同类型的文件。一般来说,如果以下参数列表中对应的设置被开启,或者其父组件的日志级别小于或等于文件的日志级别,就会发出文件。
- 关键字参数:
所有(
Optional[int])- 所有组件的默认日志级别。默认:logging.WARNdynamo(
Optional[int])- TorchDynamo 组件的日志级别。默认:logging.WARNaot(
Optional[int])- AOTAutograd 组件的日志级别。默认:logging.WARNautograd (
Optional[int]) – 自动微分日志级别。默认:logging.WARNinductor (
Optional[int]) – TorchInductor 组件的日志级别。默认:logging.WARNdynamic (
Optional[int]) – 动态形状的日志级别。默认:logging.WARNdistributed (
Optional[int]) – 是否记录 PyTorch 分布式组件的 c10d 通信操作和其他调试信息。默认:logging.WARNc10d (
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.WARNbytecode (
bool) – 是否输出 TorchDynamo 的原始和生成字节码。默认:Falseaot_graphs (
bool) – 是否输出由 AOTAutograd 生成的图。默认:Falseaot_joint_graph (
bool) – 是否输出由 AOTAutograd 生成的联合前向-反向图。默认:Falseddp_graphs(
bool)- 是否输出 DDPOptimizer 生成的图。默认:Falsegraph(
bool)- 是否以表格形式输出 TorchDynamo 捕获的图。默认:Falsegraph_code(
bool)- 是否输出 TorchDynamo 捕获的图的 Python 源代码。默认:Falsegraph_breaks(
bool)- 是否输出 TorchDynamo 遇到的图断点。默认:Falsegraph_sizes (
bool) – 是否输出由 TorchDynamo 捕获的图的大小。默认:Falseguards (
bool) – 是否输出 TorchDynamo 为每个编译函数生成的守卫。默认:Falserecompiles (
bool) – 是否在 TorchDynamo 每次重新编译函数时输出守卫失败的原因和信息。默认:Falserecompiles_verbose (
bool) – 是否在 TorchDynamo 重新编译函数时输出所有守卫失败的原因,即使这些原因实际上并未运行。默认:Falsetrace_source (
bool) – 是否在 TorchDynamo 开始追踪新行时发出。默认:Falsetrace_call (
bool) – 是否在 TorchDynamo 创建对应函数调用的 FX 节点时发出详细的行位置信息。仅 Python 3.11+有效。默认:Falsetrace_bytecode (
bool) – 是否在 TorchDynamo 追踪字节码时发出字节码指令和追踪的栈状态。默认:Falseoutput_code (
bool) – 是否按图发出 TorchInductor 的输出代码。默认:False内核代码(
bool)- 是否按内核基础输出 TorchInductor 输出代码。默认:False调度(
bool)- 是否输出 TorchInductor 的调度。默认:False性能提示(
bool)- 是否输出 TorchInductor 的性能提示。默认:False预梯度图(
bool)- 是否在电感器梯度传递之前输出图。默认:False后置梯度图生成(
bool)- 是否输出由后置梯度操作生成的图。默认:False诱导器融合前图(
bool)- 是否输出诱导器融合操作之前的图。默认:False诱导器融合后图(
bool)- 是否输出诱导器融合操作之后的图。默认:FalseONNX 导出器诊断(
bool)- 是否在日志中输出 ONNX 导出器的诊断信息。默认:False融合(
bool)- 是否输出详细的电感器融合决策。默认:False交叉(
bool)- 是否输出详细的电感器计算/通信交叉决策。默认:Falsesym_node(
bool)- 是否输出各种 SymNode 操作调试信息。默认:False导出(
Optional[int])- 导出日志级别。默认:logging.WARN基准测试(
bool)- 是否输出详细的电感器基准测试信息。默认:False模块(dict)- 此参数提供了一种指定上述日志组件和工件设置的替代方法,格式为单个参数给出的关键字参数字典。在两种情况下这很有用(1)如果已注册了新的日志组件或工件,但尚未为此函数添加关键字参数,以及(2)如果需要设置未注册模块的日志级别。这可以通过提供完全限定的模块名称作为键,将日志级别作为值来完成。默认:
Nonecudagraph_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})