Atlas 300I A2卡的功耗读取不准问题分析
更新时间: 2026/05/28
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:NA;
  • 涉及功能:传感器;
  • 触发条件:传感器值大于255。
  • 业务表现:预期Atlas 300I A2的功耗传感器读值正常;实际Atlas 300I A2卡的功耗读取不准。

问题复现步骤

内部压测Atlas 300I A2的过程中发现带外Sensor显示的功耗数据与带内读取的数据不符。

  • 带内显示

  • BMC Sensor显示:

关键日志信息

通过查看compute组件的debug日志可以看到:

smbus读取到的是0xC92 = 3218,根据带外协议应该是3218 * 0.1 即为321.8,应该是正确读值,实际显示到Sensor确实异常值

定位过程

  1. 看一下传感器的reading是多少,最终显示的值是reading值经过公式计算后得出的.

  2. NPU_1_0101010302下显示的是正常值,ThresholdSensor_GPUPower_0101010302的Reading显示的是255

问题原因

spec里是smbus读取到的原始数据乘以0.1作为实际功耗,但compute将原始数据显示在了设备树上,实际应该乘以0.1。

解决方案

reading的最大值为255,所以应该将NPU.Power的读值先缩小一个倍率,将其控制在255以内,然后再通过配置传感器的M、B、RBExp的值放大回原值。