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