NPU温度功率等信息获取失败问题分析
更新时间: 2026/05/27
在Gitcode上查看源码问题背景
- 单板类型:自研板;
- 软件版本:openUBMC 25.09;
- 涉及功能:300I A2 NPU卡,web;
- 预制条件:环境上安装了300I A2 NPU卡;
- 触发条件:适配的300I A2 NPU卡正常加载,web页面查询NPU卡信息。
- 业务表现:预期卡的信息稳定查询;实际卡的信息概率性获取不到。
问题复现步骤
web页面定时刷新,查看NPU卡的web页面信息。
关键日志信息
web页面信息如下: compute组件的log文件打印如下:
定位过程
- 从compute组件的log文件打印可知,NPU卡与smbus交互存在问题;
- 确认NPU卡的温度功率数据来源为MCU,需要确认npu固件版本和驱动版本是否兼容;与NPU卡厂商确认NPU的温度和功率获取的却与npu的固件版本和驱动版本有关,但是当前网卡的驱动与固件版本无兼容性问题;
- 从compute组件的log文件打印观察日志打印时间线,日志中存在两条日志打印,第一条时间为2025-10-22 08:19:48,第二条时间依然为2025-10-22 08:19:48,怀疑芯片访问时间无延时导致访问频率过快;尝试将芯片对象中的属性DrvWriteDelay的值从0改为100,出包升级后重新通过web页面查看NPU卡功率等信息,发现功率等信息可以正常获取。
问题原因
芯片对象配置的时候未加延时配置为0,导致高频率访问芯片,可能导致时序不满足、信号不稳等问题,最终导致所需的卡信息获取失败。
解决方案
NPU卡的Chip对象中,DrvWriteDelay的值从0改为100,将延时0ms改为100ms即可。