快捷方式

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 的完整开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源