快捷方式

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.python.club.tw/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 完整的開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲取問題解答

檢視資源