最近在尝试将ModelZoo中的YOLOv5模型部署到昇腾Ascend 910环境进行推理测试,但在模型加载阶段遇到了ACL运行时错误,同时在多卡配置下出现了HCCL通信失败的问题。已经排查了几天,但问题仍未解决,特来社区求助。
收藏回复举报
最近在尝试将ModelZoo中的YOLOv5模型部署到昇腾Ascend 910环境进行推理测试,但在模型加载阶段遇到了ACL运行时错误,同时在多卡配置下出现了HCCL通信失败的问题。已经排查了几天,但问题仍未解决,特来社区求助。
t('forum.solved') 已解决
发表于2026-03-24 23:27:38
0 查看

昇腾ModelZoo中YOLOv5模型部署时遇到ACL错误和通信问题

问题概述:

最近在尝试将ModelZoo中的YOLOv5模型部署到昇腾Ascend 910环境进行推理测试,但在模型加载阶段遇到了ACL运行时错误,同时在多卡配置下出现了HCCL通信失败的问题。已经排查了几天,但问题仍未解决,特来社区求助。

环境信息:

  • 硬件:Atlas 800训练服务器,Ascend 910 NPU × 4

  • 操作系统:Ubuntu 20.04 LTS

  1. 模型加载失败(单卡环境)

    在单卡环境下尝试加载YOLOv5模型时,出现以下错误:

    RuntimeError: ACL error, code: 507017
    TensorFlow device list shows only CPU/GPU, no NPU detected

    通过npu-smi info检查设备状态正常,但TensorFlow无法识别NPU设备。

  2. 多卡通信错误(分布式环境)

    配置多卡分布式训练时,出现HCCL通信失败:

    hccl execute failed
    Connection fail between card (IP 10.0.3.9) and card (IP 10.0.3.17)

    使用hccn_tool检测链路状态,部分链路显示为"down"状态。

  3. 模型转换问题

    尝试使用ATC工具将ONNX模型转换为OM格式时,遇到动态shape相关错误:

    ATC conversion failed due to dynamic shape operations

已尝试的解决方案:

  1. 环境检查:

    • 确认已正确source CANN环境变量:source /usr/local/Ascend/ascend-toolkit/set_env.sh

    • 验证$ASCEND_HOME路径正确

    • 检查驱动和固件版本兼容性

  2. 权限和配置调整:

    • 创建了HwHiAiUser用户和用户组

    • 检查了权重文件权限(确保有读取权限)

    • 尝试关闭软链接:设置local_dir_use_symlinks = False

  3. 通信问题排查:

    • 检查防火墙设置,确保HCCL通信端口(5000-6000)开放

    • 验证所有节点的rank_table_file.json配置一致

    • 尝试增加HCCL_CONNECT_TIMEOUT至7200秒

  4. 性能调优尝试:

    • 调整NPU_MEMORY_FRACTION环境变量(从0.8调整到0.95)

    • 设置OMP_NUM_THREADS=1减少线程冲突

    • 启用内存映射:export USE_MMAP_LOAD=1

求助:

  1. 版本兼容性:当前使用的CANN 5.0.4与TensorFlow/PyTorch版本是否存在已知的兼容性问题?是否有推荐的版本组合?

  2. 设备识别:为什么npu-smi info显示设备正常,但TensorFlow无法识别NPU?需要检查哪些关键配置?

  3. 通信链路:HCCL通信链路显示"down"状态的可能原因有哪些?除了网络配置,还需要检查哪些硬件或驱动层面的问题?

  4. 动态shape处理:ModelZoo中的YOLOv5模型包含动态shape操作,在昇腾平台上应该如何正确处理?是否有推荐的静态shape转换方法?

  5. 性能优化:针对这种计算机视觉模型,在昇腾平台上有哪些特定的性能优化建议?

我要发帖子