評價此頁

torch.compiler.config#

創建於: 2024年11月01日 | 最後更新於: 2025年06月11日

這是編譯器的高層配置模組,其中包含影響編譯器堆疊所有部分的通用配置選項。

您也可能對特定元件的配置模組感興趣,這些模組包含僅影響編譯器特定部分的配置選項。

  • torch._dynamo.config

  • torch._inductor.config

  • torch._functorch.config

  • torch.fx.experimental.config

torch.compiler.config.job_id: Optional[str] = None#

從語義上講,這應該是一個唯一標識例如訓練作業的識別符號。同一作業可能會有多個嘗試,例如,如果作業被中斷或需要重新啟動,但每次嘗試都應執行實質上相同的 the same distributed topology 的工作負載。您可以透過環境變數 TORCH_COMPILE_JOB_ID 來設定此項。

在操作上,這會控制剖面圖引導最佳化相關持久化的影響。PGO 狀態會影響我們在多次呼叫 PyTorch 時如何執行編譯,例如,第一次執行程式時,我們可能會編譯兩次以發現哪些輸入是動態的,然後 PGO 將儲存此狀態,因此後續呼叫只需要編譯一次,因為它們會記住它是動態的。然而,此剖面資訊對您執行的工作負載很敏感,因此我們需要您告訴我們兩個作業是 *相關* 的(即,是同一個工作負載),我們才願意重用這些資訊。特別是,除非有有效的 job_id,否則 PGO 不起任何作用(即使顯式啟用)。在某些情況下,PyTorch 可以配置為根據其執行的環境自動計算 job_id

剖面圖始終是按 rank 收集的,因此不同的 rank 可能會有不同的剖面圖。如果您知道您的工作負載是真正的 SPMD,您可以執行 torch._dynamo.config.enable_compiler_collectives 以確保所有 rank 上的節點獲得一致的剖面圖。