torch.compiler.set_enable_guard_collectives#
- torch.compiler.set_enable_guard_collectives(enabled)[source]#
在 guard 評估期間啟用 collectives,以跨 rank 同步行為。這開銷很大:每次進入編譯程式碼區域時,我們都必須發出一個 collective,即使沒有 rank 實際需要編譯。這有助於防止 NCCL 掛起,方法是確保我們永遠不會出現一個 rank 開始重新編譯而其他 rank 不編譯的情況;它與 enable_compiler_collectives 結合使用特別有用,因為在後一種情況下,這種情況會立即導致掛起(因為所有 rank 同時編譯以執行編譯器 collectives 是必要的)。與編譯器 collectives 一樣,你只能在 SPMD 程式上執行此函式,否則會掛起。請注意,只有當有任何編譯程式碼需要 guard 時,才會發出 guard collective;如果這是我們第一次遇到一個 frame,或者該 frame 被跳過,我們不會發出 collectives。
返回 enabled 的先前設定。