快捷键

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})

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源