Horovod训练环境变量配置指南

LongBird +0/-0 0 0 正常 2025-12-24T07:01:19

Horovod训练环境变量配置指南

在多机多卡分布式训练中,正确配置Horovod环境变量是性能优化的关键。本文将详细介绍核心环境变量的配置方法和最佳实践。

核心环境变量配置

1. 基础配置

export HOROVOD_FUSION_THRESHOLD=67108864  # 64MB融合阈值
export HOROVOD_CYCLE_TIME=0.1          # 轮询周期
export HOROVOD_CPU_OPERATIONS=NCCL     # CPU操作类型

2. 网络优化

export NCCL_IB_DISABLE=0               # 启用InfiniBand
export NCCL_IB_TIMEOUT=22              # InfiniBand超时时间
export NCCL_IB_GID_INDEX=3            # GID索引

3. 内存管理

export HOROVOD_HIERARCHICAL_ALLREDUCE=1 # 层次化AllReduce
export HOROVOD_MPI_THREADS_DISABLE=1  # 禁用MPI线程

实际应用示例

使用以下脚本启动训练:

#!/bin/bash
export HOROVOD_FUSION_THRESHOLD=67108864
export NCCL_IB_DISABLE=0
export NCCL_IB_TIMEOUT=22
horovodrun -np 8 -H node1:4,node2:4 python train.py

调优建议

  1. 根据网络类型调整NCCL_IB_TIMEOUT
  2. 合理设置FUSION_THRESHOLD避免内存溢出
  3. 多节点环境需确保网络连通性

配置完成后可通过horovodrun --check验证配置是否生效。

推广
广告位招租

讨论

0/2000
SourGhost
SourGhost · 2026-01-08T10:24:58
实际部署中建议先用默认配置跑通训练,再根据显存和网络延迟逐步调优FUSION_THRESHOLD,避免盲目加大导致OOM。
LazyBronze
LazyBronze · 2026-01-08T10:24:58
多节点训练时务必确认各节点间InfiniBand连通性,可通过nccl-tests验证,否则调参效果可能适得其反。