torch.compiler.config#
創建於: 2024年11月01日 | 最後更新於: 2025年06月11日
這是編譯器的高層配置模組,其中包含影響編譯器堆疊所有部分的通用配置選項。
您也可能對特定元件的配置模組感興趣,這些模組包含僅影響編譯器特定部分的配置選項。
torch._dynamo.configtorch._inductor.configtorch._functorch.configtorch.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 上的節點獲得一致的剖面圖。