适配300i duo卡风扇温度策略时发现一个问题。
目前场景是当前机器有多个300i duo卡需要散热,散热工程师提供策略是槽位1的300i duo卡由风扇组的fan1,fan2,fan3调控,槽位2的300i duo卡由风扇组的fan4,fan5,fan6调控,以此类推。
目前遇到的问题是,无论是哪个槽位上的300i duo卡其实都是调用的同一个sr文件,CoolingRequirement这个配置实际是只有一个,而想让不同的槽位的300i duo卡调控的风扇组不一样,肯定得配置多个CoolingArea,每个CoolingArea的FanIdxGroup配置不同的fan id。而CoolingRequirement和CoolingArea是一一对应的。所以请问该如何解决。
当前不支持。
调速策略是通过槽位号可以进行偏移的,但是基础的baseRequirementId是一样的,而baseRequirementId和CoolingArea中的RequipmentIdx是一一对应的
请问您说的调速策略是通过槽位号可以进行偏移的,具体是怎么去操作呢。
使用表达式语法,针对不同的槽位号使用不同的调速策略
比如当前VPD仓中的CoolingRequirement_1_52,根据槽位号进行偏移"RequirementId": “${Slot} |> expr((52 << 8) | $1)”,但其实际BaseRequirementId为52,有且仅有一个CoolingArea与之对应,无法实现问题描述中的策略
可以实现的 ,卡的csr配置两个coolingrequirement对象,一个id配置为a<<8 | slot,另一个为(a+1) <<8 | slot,然后都配置一个Enabled属性,第一个对象,if slot == 1,则为true,第二个对象if slot ==2 ,则为true
然后PSR配置两个coolingarea,风扇分别为123 ,456
对于卡器件,常见的都是使用所有风扇调速,能稳定的保证散热。分区域调速,对单张卡加压高功率发热运行下3风扇是否能保障散热呢? 是否未配置了分区调速导致存在 风道倒灌场景呢。我的想法是这样的,可能存在不足,可以适当参考
此处请找构建确认问题
解决了,得加双引号
根据您的解决方法,单个npu卡放在不同槽位上,受控的风扇组不一样(效果符合预期)。多个npu卡或者满配npu装备时,有1个或者2个风扇组的风扇不生效(npu卡温度策略不生效)。
如下配置把不同槽位的gpu分成三个区域,每个区域控制不同的风扇组,多个npu卡或者满配npu装备时,其实一个或者两个的CoolingRequirement是失效的,对应风扇组不会根据npu卡温度策略进行调速。
"CoolingRequirement_1_72": {
"RequirementId": "${Slot} |> expr((72 << 8) | $1)",
"Enabled": "${Slot} |> expr(($1 >= 1 && $1 <= 8) ? true : false)" ,
"Description": "Atlas 300I Duo Core0 温度调速",
"MonitoringStatus": "<=/NPUCard_1.Core0TemperatureCelsius |> expr($1 == 32768 ? 1 : 0)",
"MonitoringValue": "<=/NPUCard_1.Core0TemperatureCelsius |> expr(($1 >= 255) ? 40 : ($1 & 255))",
"FailedValue": 80,
"BackupRequirementIdx": 7,
"TargetTemperatureCelsius": 85,
"SmartCoolingTargetTemperature": [85,85,85],
"CustomSupported": true,
"CustomTargetTemperatureCelsius": 85,
"MaxAllowedTemperatureCelsius": 85,
"SensorName": "#/ThresholdSensor_GPUAICore0Temp.SensorName"
},
"CoolingRequirement_1_73": {
"RequirementId": "${Slot} |> expr((73 << 8) | $1)",
"Enabled": "${Slot} |> expr(($1 >= 7 && $1 <= 14) ? true : false)" ,
"Description": "Atlas 300I Duo Core0 温度调速",
"MonitoringStatus": "<=/NPUCard_1.Core0TemperatureCelsius |> expr($1 == 32768 ? 1 : 0)",
"MonitoringValue": "<=/NPUCard_1.Core0TemperatureCelsius |> expr(($1 >= 255) ? 40 : ($1 & 255))",
"FailedValue": 80,
"BackupRequirementIdx": 7,
"TargetTemperatureCelsius": 85,
"SmartCoolingTargetTemperature": [85,85,85],
"CustomSupported": true,
"CustomTargetTemperatureCelsius": 85,
"MaxAllowedTemperatureCelsius": 85,
"SensorName": "#/ThresholdSensor_GPUAICore0Temp.SensorName"
},
"CoolingRequirement_1_74": {
"RequirementId": "${Slot} |> expr((74 << 8) | $1)",
"Enabled": "${Slot} |> expr(($1 >= 13 && $1 <= 20) ? true : false)" ,
"Description": "Atlas 300I Duo Core0 温度调速",
"MonitoringStatus": "<=/NPUCard_1.Core0TemperatureCelsius |> expr($1 == 32768 ? 1 : 0)",
"MonitoringValue": "<=/NPUCard_1.Core0TemperatureCelsius |> expr(($1 >= 255) ? 40 : ($1 & 255))",
"FailedValue": 80,
"BackupRequirementIdx": 7,
"TargetTemperatureCelsius": 85,
"SmartCoolingTargetTemperature": [85,85,85],
"CustomSupported": true,
"CustomTargetTemperatureCelsius": 85,
"MaxAllowedTemperatureCelsius": 85,
"SensorName": "#/ThresholdSensor_GPUAICore0Temp.SensorName"
},
“BackupRequirementIdx”: 7,
“SmartCoolingTargetTemperature”: [85,85,85],
“CustomSupported”: true,
“CustomTargetTemperatureCelsius”: 85
你不应该配置这几个属性吧,使用备用温度点7常见是风扇板温度, [85,85,85]这个也不用配置,需要调速策略写明支持SmartCooling的才配置 ,CustomSupported这个是给自定义调速用的,卡一般不配自定义调速
背景:插了两张300I的卡在槽位5和17,然后风扇根据槽位分为俩个区,1-10槽位和11到20槽位。开启风扇调速不生效(只开启gpu相关调速,其他调速关闭)。看日志像是Policy被列为不生效了。
从低速改成节能还是不行
envtnum为0
配置没问题,排查下是否修改没升级上去
使能的问题,多个CoolingRequirement对象(使能有开启和关闭的)控制同一个CoolingArea对象,导致CoolingPolicy对象异常(生效又立马被取消生效了,日志里面有体现)。我现在改成用槽位去控制CoolingRequirement对象的RequirementId属性,如果槽位不对应,就把RequirementId设置为0(相当于这个CoolingRequirement指向一个不存在的CoolingArea对象,即不生效)。
一般没有直接使用卡的温度用于线形调速。常见的是当存在某张卡时,使能一条CoolingPolicy,关联的进风口温度,配置于CoolingPolicy的PcieCardName属性中。






