评价此页

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,将抛出错误。