快捷方式

PYTORCH ProcessGroupNCCL 環境變數

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

變數

描述

TORCH_NCCL_ASYNC_ERROR_HANDLING

控制當監視執行緒(watchdog)檢測到異常時,PyTorch 如何執行 NCCL 的非同步錯誤處理。如果設定為 0,則不處理非同步 NCCL 錯誤。如果設定為 1,則中止 NCCL communicator 並在出錯時終止程序。如果設定為 2,則僅中止 NCCL communicator;如果設定為 3,則在不中止 NCCL communicator 的情況下終止程序。預設情況下,它設定為 3。

TORCH_NCCL_HIGH_PRIORITY

控制是否為 NCCL communicator 使用高優先順序流。

TORCH_NCCL_BLOCKING_WAIT

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

TORCH_NCCL_DUMP_ON_TIMEOUT

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

TORCH_NCCL_DESYNC_DEBUG

控制是否啟用 Desync Debug。這有助於找出集合操作失步(collective desync)的罪魁禍首 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

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

TORCH_NCCL_TRACE_CPP_STACK

是否為飛行記錄器收集 C++ 堆疊跟蹤。預設值為 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 將丟擲錯誤。

文件

查閱 PyTorch 的完整開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源