torch._logging¶
PyTorch 有一個可配置的日誌系統,其中不同的元件可以被賦予不同的日誌級別設定。 例如,一個元件的日誌訊息可以完全被停用,而另一個元件的日誌訊息可以被設定為最大詳細程度。
警告
此功能處於測試階段,未來可能會出現相容性破壞性變更。
警告
此功能尚未擴展到控制 PyTorch 中所有元件的日誌訊息。
有兩種方法可以配置日誌系統:透過環境變數 TORCH_LOGS
或 Python API torch._logging.set_logs。
設定個別元件的日誌級別,並切換個別的日誌物件類型。 |
環境變數 TORCH_LOGS
是一個以逗號分隔的 [+-]<component>
配對列表,其中 <component>
是下方指定的元件。 +
前綴會降低元件的日誌層級,顯示更多日誌訊息,而 -
前綴會提高元件的日誌層級,顯示較少的日誌訊息。預設設定是當元件未在 TORCH_LOGS
中指定時的行為。除了元件之外,還有 artifacts (工件)。Artifacts 是與元件相關聯的特定除錯資訊,它們可能顯示或不顯示,因此在 artifact 前面加上 +
或 -
將不起作用。由於它們與元件相關聯,因此啟用該元件通常也會啟用該 artifact,除非該 artifact 被指定為 off_by_default。此選項是在 _registrations.py 中為那些過於冗長以至於只有在明確啟用時才應顯示的 artifacts 指定的。以下元件和 artifacts 可以透過 TORCH_LOGS
環境變數進行配置(有關 python API,請參閱 torch._logging.set_logs)
- 元件 (Components)
all
特殊元件,用於配置所有元件的預設日誌層級。預設值:
logging.WARN
dynamo
TorchDynamo 元件的日誌層級。預設值:
logging.WARN
aot
AOTAutograd 元件的日誌層級。預設值:
logging.WARN
inductor
TorchInductor 元件的日誌層級。預設值:
logging.WARN
your.custom.module
任意未註冊模組的日誌層級。提供完整名稱,該模組將被啟用。預設值:
logging.WARN
- Artifacts (工件)
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
是否在 TorchDynamo 追蹤期間遇到唯一的圖中斷時發出訊息。預設值:
False
guards
是否為每個編譯的函式發出 TorchDynamo 生成的 guards。預設值:
False
recompiles
每次 TorchDynamo 重新編譯函式時,是否發出 guard 失敗原因和訊息。預設值:
False
output_code
是否發出 TorchInductor 輸出代碼。預設值:
False
schedule
是否發出 TorchInductor 排程。預設值:
False
- 範例 (Examples)
TORCH_LOGS="+dynamo,aot"
將 TorchDynamo 的日誌層級設定為logging.DEBUG
,將 AOT 設定為logging.INFO
TORCH_LOGS="-dynamo,+inductor"
將 TorchDynamo 的日誌層級設定為logging.ERROR
,將 TorchInductor 設定為logging.DEBUG
TORCH_LOGS="aot_graphs"
將啟用aot_graphs
artifactTORCH_LOGS="+dynamo,schedule"
將 TorchDynamo 的日誌層級設定為logging.DEBUG
並啟用schedule
artifactTORCH_LOGS="+some.random.module,schedule"
將 some.random.module 的日誌層級設定為logging.DEBUG
並啟用schedule
artifact