MindSpore 分布式训练报错RuntimeError: HCCL AllReduce failed, device type of rank 0 is Ascend, rank 1 is CPU及解决

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