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
调优建议
- 根据网络类型调整
NCCL_IB_TIMEOUT - 合理设置
FUSION_THRESHOLD避免内存溢出 - 多节点环境需确保网络连通性
配置完成后可通过horovodrun --check验证配置是否生效。

讨论