torch.compiler.config¶
這是編譯器的頂級配置模組,包含影響編譯器堆疊所有部分的跨領域配置選項。
您可能還對每個元件的配置模組感興趣,這些模組包含僅影響編譯器特定部分的配置選項
torch._dynamo.configtorch._inductor.configtorch._functorch.configtorch.fx.experimental.config
- torch.compiler.config.job_id: Optional[str] = None¶
從語義上講,這應該是一個唯一標識訓練作業等的識別符號。同一作業可能有多次嘗試,例如如果作業被搶佔或需要重新啟動,但每次嘗試都應該執行基本相同工作負載和分散式拓撲。您可以透過環境變數
TORCH_COMPILE_JOB_ID來設定此項。在操作層面,這控制了 Profile-Guided Optimization (PGO) 相關持久狀態的影響。PGO 狀態會影響我們在多次呼叫 PyTorch 時執行編譯的方式,例如,首次執行程式時,我們可能會編譯兩次以發現哪些輸入是動態的,然後 PGO 會儲存此狀態,以便後續呼叫只需編譯一次,因為它們會記住哪些是動態的。然而,此配置檔案資訊對您正在執行的工作負載很敏感,因此我們要求您告訴我們兩個作業是相關的(即,是相同的工作負載),然後我們才願意重用此資訊。值得注意的是,除非提供了有效的
job_id,否則 PGO 不會執行任何操作(即使已顯式啟用)。在某些情況下,可以將 PyTorch 配置為根據其執行環境自動計算job_id。配置檔案始終按 rank 收集,因此不同的 rank 可能具有不同的配置檔案。如果您知道您的工作負載是真正的 SPMD,則可以執行
torch._dynamo.config.enable_compiler_collectives以確保所有 rank 上的節點獲得一致的配置檔案。