快捷方式

PYTORCH ProcessGroupNCCL 环境变量

有关环境变量的更多信息,请参见 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。这有助于找出集体不同步的罪魁祸首等级。

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

控制监控线程内部检查来自其他等级的协调信号的间隔,例如转储调试信息。默认值为 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 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源