評價此頁

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_code_verbose=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, inductor_metrics=False, hierarchical_compile=False, compute_dependencies=False)[source]#

設定各個元件的日誌級別並切換各個日誌產物的型別。

警告

此功能是一個原型,未來版本可能存在不相容的更改。

注意

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

產物是一種特定型別的日誌訊息。每個產物都分配給一個父元件。一個元件可以發出許多不同型別的產物。通常,如果下面的引數列表中其對應的設定被開啟,或者如果其父元件的日誌級別設定低於或等於產物的日誌級別,則會發出該產物。

關鍵字引數
  • 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 Distributed 元件中的 c10d 通訊操作和其他除錯資訊。預設值: logging.WARN

  • c10d (Optional[int]) – 是否記錄 PyTorch Distributed 元件中與 c10d 通訊操作相關的除錯資訊。預設值: logging.WARN

  • ddp (Optional[int]) – 是否記錄 PyTorch Distributed 元件中與 DistributedDataParallel``(DDP) 相關的除錯資訊。預設值: logging.WARN

  • fsdp (Optional[int]) – 是否記錄 PyTorch Distributed 元件中與 FullyShardedDataParallel``(FSDP) 相關的除錯資訊。預設值: logging.WARN

  • dtensor (Optional[int]) – 是否記錄 PyTorch Distributed 元件中與 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_code_verbose (bool) – 是否為圖程式碼發出詳細/中間 FX 通路日誌。預設值: False

  • graph_breaks (bool) – 是否發出 TorchDynamo 遇到的圖中斷。預設值: False

  • graph_sizes (bool) – 是否發出 TorchDynamo 捕獲的圖的張量大小。預設值: False

  • guards (bool) – 是否發出 TorchDynamo 為每個編譯函式生成的 guard。預設值: False

  • recompiles (bool) – 每次 TorchDynamo 重新編譯函式時,是否發出 guard 失敗的原因和訊息。預設值: False

  • recompiles_verbose (bool) – 重新編譯函式時,是否發出所有 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) – 是否為每個核心發出 TorchInductor 的輸出程式碼。預設值: False

  • schedule (bool) – 是否發出 TorchInductor 的排程。預設值: False

  • perf_hints (bool) – 是否發出 TorchInductor 的效能提示。預設值: False

  • pre_grad_graphs (bool) – 是否在 Inductor grad 通路之前發出圖。預設值: False

  • post_grad_graphs (bool) – 是否在 post grad 通路之後發出生成的圖。預設值: False

  • ir_pre_fusion (bool) – 是否在 Inductor fusion 通路之前發出圖。預設值: False

  • ir_post_fusion (bool) – 是否在 Inductor fusion 通路之後發出圖。預設值: False

  • onnx_diagnostics (bool) – 是否在日誌中發出 ONNX 匯出器診斷資訊。預設值: False

  • fusion (bool) – 是否發出詳細的 Inductor fusion 決策。預設值: False

  • overlap (bool) – 是否發出詳細的 Inductor 計算/通訊重疊決策。預設值: False

  • sym_node (bool) – 是否發出各種 SymNode 操作的除錯資訊。預設值: False

  • export (Optional[int]) – export 的日誌級別。預設值: logging.WARN

  • benchmarking (bool) – 是否發出詳細的 Inductor 基準測試資訊。預設值: False

  • modules (dict) – 此引數提供了一種替代方法來指定上述日誌元件和產物設定,格式為作為單個引數給出的關鍵字引數字典。有兩種情況可能有用:(1) 如果已註冊新的日誌元件或產物,但尚未為此函式新增關鍵字引數,以及 (2) 如果需要設定未註冊模組的日誌級別。這可以透過提供完全限定的模組名稱作為鍵,並以日誌級別作為值來完成。預設值: None

  • cudagraph_static_inputs (bool) – 是否發出 cudagraph 靜態輸入檢測的除錯資訊。預設值: False

  • autotuning (bool) – autotuning 選擇日誌,例如核心原始碼、效能和調優引數。預設值: False

  • graph_region_expansion (bool) – 是否發出重複圖區域跟蹤器的擴充套件演算法的詳細步驟。預設值: False

  • inductor_metrics (bool) – 是否估計圖中節點的執行時間並將其記錄到 metrics 表中。預設值: False

  • hierarchical_compile (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})