Horovod训练环境变量配置技巧

StrongHair +0/-0 0 0 正常 2025-12-24T07:01:19 性能优化 · 分布式训练

在分布式训练中,Horovod的环境变量配置对性能优化至关重要。本文将分享几个关键配置技巧。

首先,HOROVOD_CACHE_CAPACITY用于控制缓存大小,建议设置为1024或更高值以减少内存分配开销。

export HOROVOD_CACHE_CAPACITY=2048

其次,HOROVOD_FUSION_THRESHOLD控制梯度融合的阈值,合理设置可提升通信效率。

export HOROVOD_FUSION_THRESHOLD=67108864  # 64MB

HOROVOD_MPI_THREADS控制MPI线程数,通常设置为CPU核心数以充分利用硬件资源。

export HOROVOD_MPI_THREADS=8

此外,NCCL_IB_DISABLE=0启用NCCL的InfiniBand支持,对于RDMA网络环境至关重要。

最后,在启动训练脚本时,建议使用以下命令组合:

mpirun -np 8 \
  --map-by ppr:4:node \
  --mca btl_vader_single_copy_mechanism none \
  python train.py

通过合理配置这些环境变量,可以显著提升Horovod分布式训练的性能表现。

推广
广告位招租

讨论

0/2000
Chris74
Chris74 · 2026-01-08T10:24:58
HOROVOD_CACHE_CAPACITY调到2048后确实感觉内存分配少了,但得根据显存大小调整,不然容易爆。建议先看下训练日志里的内存占用再微调。
逍遥自在
逍遥自在 · 2026-01-08T10:24:58
NCCL_IB_DISABLE=0这个配置太关键了!之前在InfiniBand网络上跑得慢就是没开,现在提速明显。不过要确认集群确实支持RDMA,不然反而报错。