快捷方式

PYTORCH ProcessGroupNCCL 环境变量

有关环境变量的更多信息,请参阅 ProcessGroupNCCL 环境变量

变量

描述

TORCH_NCCL_ASYNC_ERROR_HANDLING

控制我们在 watchdog 中观察到异常时如何使用 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

控制是否在 watchdog 超时或检测到异常时转储调试信息。此变量必须与大于 0 的 TORCH_NCCL_TRACE_BUFFER_SIZE 一起设置。

TORCH_NCCL_DESYNC_DEBUG

控制是否启用 Desync Debug。这有助于找出集体 desync 的罪魁祸首 rank。

TORCH_NCCL_ENABLE_TIMING

如果设置为 1,则为所有 ProcessGroupNCCL 集合启用记录启动事件,并计算每个集合的精确集合计时。

TORCH_NCCL_ENABLE_MONITORING

如果设置为 1,则启用监视线程,该线程在 ProcessGroupNCCL Watchdog 线程卡住并且在 TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC 后未检测到心跳时中止进程。这可能是由于调用可能挂起的 CUDA/NCCL API 引起的。这有助于防止作业不必要地长时间卡住并占用集群资源。

TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC

控制 watchdog 心跳超时时间段,超过该时间后,监视线程将中止进程。

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

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

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

查看资源