Shortcuts

torch._logging.set_logs

torch._logging.set_logs(*, all=None, dynamo=None, aot=None, autograd=None, dynamic=None, inductor=None, distributed=None, dist_c10d=None, dist_ddp=None, dist_fsdp=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, output_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)[源代码]

设置各个组件的日志级别并切换各个日志工件类型。

警告

此功能是一个原型,未来可能会出现兼容性破坏的更改。

注意

环境变量 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

工件是一种特定类型的日志消息。每个工件都被分配给一个父组件。一个组件可以发出许多不同类型的工件。通常,如果其对应的设置在下面的参数列表中被打开,或者如果其父组件的日志级别小于或等于工件的日志级别,则会发出工件。

Keyword Arguments
  • 全部 (Optional[int]) – 所有组件的默认日志级别。默认值: logging.WARN

  • dynamo (Optional[int]) – TorchDynamo组件的日志级别。默认值: logging.WARN

  • aot (Optional[int]) – AOTAutograd 组件的日志级别。默认值:logging.WARN

  • autograd (Optional[int]) – autograd 的日志级别。默认值: logging.WARN

  • 电感器 (Optional[int]) – TorchInductor 组件的日志级别。默认值:logging.WARN

  • 动态 (Optional[int]) – 动态形状的日志级别。默认值: logging.WARN

  • 分布式 (Optional[int]) – 是否记录c10d通信操作和其他来自PyTorch分布式组件的调试信息。 默认值: logging.WARN

  • dist_c10d (Optional[int]) – 是否在PyTorch分布式组件中记录与c10d通信操作相关的调试信息。 默认值: logging.WARN

  • dist_ddp (Optional[int]) – 是否记录与 DistributedDataParallel``(DDP) 来自 PyTorch 分布式组件 相关的调试信息。 默认值: ``logging.WARN

  • dist_fsdp (Optional[int]) – 是否记录与 FullyShardedDataParallel``(FSDP) PyTorch 分布式 组件中 相关的调试信息。 默认值: ``logging.WARN

  • onnx (Optional[int]) – ONNX 导出器组件的日志级别。默认值:logging.WARN

  • 字节码 (bool) – 是否从 TorchDynamo 发出原始和生成的字节码。 默认值: False

  • aot_graphs (bool) – 是否发出由AOTAutograd生成的图。默认值:False

  • aot_joint_graph (bool) – 是否发出由AOTAutograd生成的联合前向-后向图。默认值:False

  • 电感器 – 是否记录来自电感器cudagraph的信息。默认值: logging.WARN

  • ddp_graphs (bool) – 是否发出由DDPOptimizer生成的图表。默认值:False

  • 图表 (bool) – 是否以表格格式输出TorchDynamo捕获的图表。 默认值: False

  • graph_code (bool) – 是否发出由 TorchDynamo 捕获的图的 Python 源代码。 默认值: False

  • graph_breaks (bool) – 是否发出TorchDynamo遇到的图断点。 默认值: False

  • graph_sizes (bool) – 是否发出由 TorchDynamo 捕获的图的张量大小。 默认值: False

  • guards (bool) – 是否为每个编译的函数发出由 TorchDynamo 生成的 guards。默认值:False

  • 重新编译 (bool) – 是否在每次TorchDynamo重新编译函数时发出保护失败原因和消息。默认值:False

  • recompiles_verbose (bool) – 当 TorchDynamo 重新编译一个函数时,是否发出所有防护失败的原因,即使是那些实际上没有运行的原因。默认值:False

  • trace_source (bool) – 是否在TorchDynamo开始追踪新行时发出信号。默认值: False

  • trace_call (bool) – 当 TorchDynamo 创建与函数调用对应的 FX 节点时,是否发出详细的行位置信息。仅适用于 Python 3.11+。默认值:False

  • output_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

  • 导出 (Optional[int]) – 导出的日志级别。默认值: logging.WARN

  • 模块 (字典) – 此参数提供了一种替代方式,用于以关键字参数字典的形式指定上述日志组件和工件设置。有两种情况可以使用此方式:(1) 如果已注册新的日志组件或工件,但尚未为此函数添加相应的关键字参数;(2) 如果需要设置未注册模块的日志级别。这可以通过提供完全限定的模块名称作为键,并将日志级别作为值来实现。默认值:None

示例:

>>> import logging

# 以下将“dynamo”组件的日志级别更改为DEBUG级别,并发出“graph_code”工件。

>>> torch._logging.set_logs(dynamo=logging.DEBUG, graph_code=True)

# 以下为不同的模块启用日志

>>> torch._logging.set_logs(modules={"unregistered.module.name": logging.DEBUG})
优云智算