华为昇腾ModelZoo中YOLOv5模型部署遇到ACL错误和NPU设备识别问题
我在尝试将华为昇腾ModelZoo中的YOLOv5模型部署到昇腾Ascend 910环境时,遇到了模型加载失败和NPU设备无法识别的问题。具体表现为:
- 模型加载失败:执行
from modelzoo.tensorflow import YOLOv5时出现RuntimeError: ACL error, code: 507017错误。 - NPU设备未识别:使用TensorFlow检查可用设备时,只显示CPU和GPU,没有NPU设备。
环境信息:
- 操作系统:Ubuntu 18.04
- Python版本:3.8.10
- Ascend版本:21.0.4
- CANN版本:5.0.4
- ModelZoo版本:1.0.0
- 硬件:Ascend 910,驱动版本1.0.15
已尝试的解决方案:
- 检查Ascend环境:使用
npu-smi info命令显示设备状态正常。 - 确认CANN环境变量已正确设置:
ASCEND_HOME指向/usr/local/Ascend/ascend-toolkit/latest。 - 验证TensorFlow是否能识别NPU设备:使用
tf.config.list_physical_devices()只返回CPU设备。
具体错误日志 RuntimeError: ACL error, code: 507017 # 设备检查结果 可用设备: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')] # 缺少NPU设备
可能的原因分析(根据官方文档):
- TensorFlow与CANN版本不兼容:当前TensorFlow版本可能未适配CANN 5.0.4,导致NPU设备未被正确识别。
- 环境变量设置不完整:
ASCEND_RT_VISIBLE_DEVICES等环境变量可能未正确配置。 - 依赖包版本冲突:tokenizers与pyarrow等依赖包可能存在版本兼容性问题。
求助内容:
- 请问有在类似环境下成功部署YOLOv5模型的经验吗?
- 如何确定TensorFlow与CANN版本的兼容性?
- 除了环境变量检查,还有哪些排查步骤?
华为昇腾ModelZoo中YOLOv5模型部署遇到ACL错误和NPU设备识别问题
我在尝试将华为昇腾ModelZoo中的YOLOv5模型部署到昇腾Ascend 910环境时,遇到了模型加载失败和NPU设备无法识别的问题。具体表现为:
from modelzoo.tensorflow import YOLOv5时出现RuntimeError: ACL error, code: 507017错误。环境信息:
已尝试的解决方案:
npu-smi info命令显示设备状态正常。ASCEND_HOME指向/usr/local/Ascend/ascend-toolkit/latest。tf.config.list_physical_devices()只返回CPU设备。具体错误日志 RuntimeError: ACL error, code: 507017 # 设备检查结果 可用设备: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')] # 缺少NPU设备
可能的原因分析(根据官方文档):
ASCEND_RT_VISIBLE_DEVICES等环境变量可能未正确配置。求助内容: