快捷方式

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)[源代码][源代码]

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

警告

此功能为原型,将来可能发生破坏兼容性的更改。

注意

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

Artifact(制品)是特定类型的日志消息。每个 Artifact 都被分配给一个父组件。一个组件可以发出许多不同类型的 Artifact。通常,如果以下参数列表中其对应的设置被启用,或者其父组件被设置为小于或等于该 Artifact 日志级别的日志级别,则会发出该 Artifact。

关键字参数
  • 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]) – 是否记录来自 PyTorch 分布式组件的 c10d 通信操作和其他调试信息。默认值:logging.WARN

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

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

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

  • dtensor (Optional[int]) – 是否记录 PyTorch 分布式组件中与 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 为每个编译函数生成的 guards。默认值:False

  • recompiles (bool) – 每当 TorchDynamo 重新编译函数时,是否发出 guard 失败原因和消息。默认值:False

  • recompiles_verbose (bool) – 当 TorchDynamo 重新编译函数时,是否发出所有 guard 失败原因,即使是那些实际未运行的原因。默认值: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) – 是否按 kernel 发出 TorchInductor 输出代码。默认值:False

  • schedule (bool) – 是否发出 TorchInductor 调度信息。默认值:False

  • perf_hints (bool) – 是否发出 TorchInductor 性能提示。默认值:False

  • pre_grad_graphs (bool) – 是否发出 Inductor 梯度传递之前的图。默认值:False

  • post_grad_graphs (bool) – 是否发出后向梯度传递之后生成的图。默认值:False

  • ir_pre_fusion (bool) – 是否发出 Inductor 融合传递之前的图。默认值:False

  • ir_post_fusion (bool) – 是否发出 Inductor 融合传递之后的图。默认值:False

  • onnx_diagnostics (bool) – 是否在日志中发出 ONNX 导出器诊断信息。默认值:False

  • fusion (bool) – 是否发出详细的 Inductor 融合决策。默认值:False

  • overlap (bool) – 是否发出详细的 Inductor 计算/通信重叠决策。默认值:False

  • sym_node (bool) – 是否发出各种 SymNode 操作的调试信息。默认值:False

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

  • benchmarking (bool) – 是否发出详细的 Inductor 基准测试信息。默认值:False

  • modules (dict) – 此参数提供了一种替代方法来指定上述日志组件和 Artifact 设置,格式为作为单个参数给出的关键字参数字典。在两种情况下这很有用:(1) 如果已注册新的日志组件或 Artifact,但尚未为它添加关键字参数到此函数中;(2) 如果需要设置未注册模块的日志级别。可以通过提供完全限定的模块名称作为键,并将日志级别作为值来完成。默认值:None

  • cudagraph_static_inputs (bool) – 是否发出 cudagraph 静态输入检测的调试信息。默认值:False

  • autotuning (bool) – 自动调优选择日志,例如 kernel 源代码、性能和调优参数。默认值: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})

文档

访问 PyTorch 完整的开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获取问题解答

查看资源