1 系统环境
硬件环境(Ascend/GPU/CPU): Ascend
MindSpore版本: mindspore=2.6.0
执行模式(PyNative/ Graph): 不限
Python版本: Python=3.9
操作系统平台: Linux
2 报错信息
2.1 问题描述
在使用昇思MindSpore 进行分布式训练时,发现训练会错误,查询了具体的错误信息如下。
2.2 报错信息
RuntimeError: HCCL AllReduce failed, device type of rank 0 is Ascend, rank 1 is CPU
3 根因分析
- 设备类型不统一:在分布式训练中,所有
rank必须使用相同类型的设备。 - 在训练脚本中明确设置设备类型,确保所有
rank都使用Ascend。 - 节点
NPU驱动未加载或CANN版本不一致。
4 解决方案
排查命令:
所有节点执行
npu-smi info # 检查 NPU 状态
cat /usr/local/Ascend/version.info # 检查 CANN 版本
确保环境变量一致
echo $ASCEND_HOME
echo $LD_LIBRARY_PATH
修复:
统一安装 CANN 7.0.RC1
bash Ascend-cann-toolkit_7.0.RC1_linux-x86_64.run --install
启动训练前初始化 HCCL
source /usr/local/Ascend/ascend-toolkit/set_env.sh
mpirun -n 8 python train.py