torch._logging¶
PyTorch 有一个可配置的日志记录系统,其中不同的组件可以 给定不同的 log level 设置。例如,一个组件的日志消息 可以完全禁用,而另一个组件的日志消息可以 设置为 Maximum verbosity (最大详细程度)。
警告
此功能处于 Beta 阶段,可能存在兼容性中断 未来的变化。
警告
此功能尚未扩展以控制 PyTorch 中的所有组件。
配置日志记录系统有两种方法:通过环境变量或 python API torch._logging.set_logs。TORCH_LOGS
设置各个组件的日志级别并切换各个日志工件类型。 |
环境变量是逗号分隔的对列表,其中 是下面指定的组件。前缀
将降低组件的日志级别,显示更多日志消息,而前缀
将提高组件的日志级别并显示更少的日志消息。默认设置
是未在 中指定组件时的行为。除了组件之外,还有
还有工件。工件是与组件关联的特定调试信息片段,可以显示或不显示。
因此,在构件前面加上 OR 将是无操作。由于它们与组件相关联,因此启用该组件通常也会启用该工件。
除非该工件被指定为 off_by_default。此选项在 _registrations.py 中指定,用于垃圾内容如此之多的构件,它们只应在显式启用时显示。
以下组件和构件可通过环境进行配置
变量(请参阅 Python API 的 torch._logging.set_logs):TORCH_LOGS
[+-]<component>
<component>
+
-
TORCH_LOGS
+
-
TORCH_LOGS
- 组件:
all
特殊组件,用于配置所有组件的默认日志级别。违约:
logging.WARN
dynamo
TorchDynamo 组件的日志级别。违约:
logging.WARN
aot
AOTAutograd 组件的日志级别。违约:
logging.WARN
inductor
TorchInductor 组件的日志级别。违约:
logging.WARN
your.custom.module
任意未注册模块的日志级别。提供完全限定的名称,模块将被启用。违约:
logging.WARN
- 工件:
bytecode
是否从 TorchDynamo 发出原始字节码和生成的字节码。 违约:
False
aot_graphs
是否发出 AOTAutograd 生成的图形。违约:
False
aot_joint_graph
是否发出 AOTAutograd 生成的联合前后图。违约:
False
compiled_autograd
是否从 compiled_autograd 发出日志。违约:
False
ddp_graphs
是否发出 DDPOptimizer 生成的图形。违约:
False
graph
是否以表格格式发出 TorchDynamo 捕获的图形。 违约:
False
graph_code
是否发出 TorchDynamo 捕获的图形的 python 源。 违约:
False
graph_breaks
期间遇到唯一 graph break 时是否发送消息 TorchDynamo 跟踪。违约:
False
guards
是否发出 TorchDynamo 为每个编译的 功能。违约:
False
recompiles
是否每次都发出守卫失败原因和消息 TorchDynamo 重新编译一个函数。违约:
False
output_code
是否发出 TorchInductor 输出代码。违约:
False
schedule
是否发出 TorchInductor 计划。违约:
False
- 例子:
TORCH_LOGS="+dynamo,aot"
将 TorchDynamo 的日志级别设置为 AOT,并将 AOT 设置为logging.DEBUG
logging.INFO
TORCH_LOGS="-dynamo,+inductor"
将 TorchDynamo 的对数级别设置为 ,将 TorchInductor 设置为logging.ERROR
logging.DEBUG
TORCH_LOGS="aot_graphs"
将启用工件aot_graphs
TORCH_LOGS="+dynamo,schedule"
将启用、将 TorchDynamo 的日志级别设置为并启用对象logging.DEBUG
schedule
TORCH_LOGS="+some.random.module,schedule"
将 some.random.module 的日志级别设置为并启用工件logging.DEBUG
schedule