評價此頁

PYTORCH ProcessGroupNCCL 環境變數#

創建於: 2025 年 6 月 10 日 | 最後更新於: 2025 年 6 月 10 日

有關環境變數的更多資訊,請參閱 ProcessGroupNCCL 環境變數

變數

描述

TORCH_NCCL_ASYNC_ERROR_HANDLING

控制在監視器中檢測到異常時,我們如何使用 NCCL 進行非同步錯誤處理。如果設定為 0,則不處理非同步 NCCL 錯誤。如果設定為 1,則在發生錯誤時中止 NCCL 通訊器並終止程序。如果設定為 2,則僅中止 NCCL 通訊器,如果設定為 3,則在不中止 NCCL 通訊器的情況下終止程序。預設值為 3。

TORCH_NCCL_HIGH_PRIORITY

控制是否為 NCCL 通訊器使用高優先順序流。

TORCH_NCCL_BLOCKING_WAIT

控制 wait() 是阻塞的還是非阻塞的。

TORCH_NCCL_DUMP_ON_TIMEOUT

控制在檢測到監視器超時或異常時是否轉儲除錯資訊。此變數必須與 TORCH_NCCL_TRACE_BUFFER_SIZE 大於 0 一起設定。

TORCH_NCCL_DESYNC_DEBUG

控制是否啟用 Desync Debug。這有助於找出集體同步失敗的 rank。

TORCH_NCCL_ENABLE_TIMING

如果設定為 1,則啟用所有 ProcessGroupNCCL 集體的開始事件記錄,並計算每個集體的準確集體計時。

TORCH_NCCL_ENABLE_MONITORING

如果設定為 1,則啟用監視執行緒,當 ProcessGroupNCCL 監視器執行緒卡住並且在 TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC 之後未檢測到心跳時,該執行緒會中止程序。這可能由於呼叫可能掛起的 CUDA/NCCL API 引起。它有助於防止作業卡住的時間過長,從而佔用叢集資源。

TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC

控制監視器執行緒中止程序之前的監視器心跳超時週期。

TORCH_NCCL_TRACE_BUFFER_SIZE

我們在飛行記錄器的環形緩衝區中儲存的最大事件數。一個事件可以是集體操作的開始或結束,例如。設定為 0 可停用跟蹤緩衝區和除錯資訊轉儲。

TORCH_NCCL_TRACE_CPP_STACK

是否為飛行記錄器收集 cpp 堆疊跟蹤。預設值為 False。

TORCH_NCCL_COORD_CHECK_MILSEC

控制監視器執行緒內部檢查來自其他 rank 的協調訊號的間隔,例如,用於轉儲除錯資訊。預設值為 1000 毫秒。

TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC

在退出並丟擲超時異常之前,控制我們將額外等待多少時間來轉儲除錯資訊。

TORCH_NCCL_DEBUG_INFO_TEMP_FILE

將轉儲除錯資訊的檔案的路徑。

TORCH_NCCL_DEBUG_INFO_PIPE_FILE

用於手動觸發除錯轉儲的管道檔案,向該管道寫入任何內容都會觸發轉儲。

TORCH_NCCL_NAN_CHECK

控制是否為輸入啟用 NAN 檢查。如果檢測到 NAN,將丟擲錯誤。