CSR配置字典之NPU类
更新时间: 2025/07/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | NPU类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-06-22 |
| 最后更新 | 2026-06-22 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-06-22 | 初始版本 | 创建NPU类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
NPU 类
| 属性 | 值 |
|---|---|
| 类名称 | NPU |
| 功能描述 | NPU处理器配置和状态管理 |
| 所属SIG组 | system |
| 所属组件 | 处理器管理 |
| 责任人 | 系统架构组 |
| 最后更新 | 2026-06-22 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Id | U8 | 无 | 1~16 | - | ID 在多个Host间标识NPU | 指定NPU的编码 | 1 | CSR配置 | 软件 |
SystemId | U8 | 无 | 1~8 | - | Host ID | 指明NPU所在的Host | 1 | CSR配置 | 软件 |
Name | String | 无 | - | - | 名字 | NPU名称显示 | "NPU1" | CSR配置 | 软件 |
Presence | U8 | 1 | 1 | - | 在位信息 | 显示NPU在位状态 | 1 | CSR配置 | 软件 |
Architecture | String | 无 | - | - | 芯片架构 | 北向接口显示NPU架构 | "DaVinci" | CSR配置 | 软件 |
Manufacturer | String | 无 | - | - | 厂商 | 硬件资产制造商 | "Huawei" | CSR配置 | 软件 |
Model | String | 无 | - | - | 产品型号 | 北向接口展示NPU型号 | "Ascend910" | CSR配置 | 软件 |
Slot | U8 | 无 | 1~8 | - | NPU的物理槽位信息 | 显示NPU物理槽位 | 1 | CSR配置 | 软件 |
PowerOn | U8 | 无 | 0、1 | - | 开机 | NPU上电状态 | 1 | CSR配置 | 软件 |
DiagnosticFault | U8 | 0 | - | - | 严重故障诊断告警状态 默认值为0 | NPU故障检测告警配置 | 0 | ras组件设置 | 软件 |
PredictiveFault | U8 | 0 | - | - | 预故障告警状态 默认值0,异常状况置1 | NPU预故障告警配置 | 0 | ras组件设置 | 软件 |
Location | String | "A1" | A1~A4 | - | NPU所属抽屉信息 | 显示NPU所在抽屉 | "A1" | CSR配置 | 软件 |
Position | String | 无 | buc、pcie卡等 | - | 容器:buc、pcie卡等 | 显示NPU所在容器位置 | "buc" | CSR配置 | 软件 |
Health | U8 | 无 | 关联Component | Component_NPU1 | 健康状态 | NPU健康状态告警配置 | "<=/Component_NPU1.Health" | CSR配置 | 软件 |
ThermalTrip | U8 | 无 | 关联Accessor | Scanner_Npu1ThermalTripAccessor | NPU的过热保护状态 | NPU过温告警配置 | "<=/Scanner_Npu1ThermalTripAccessor.Value" | 硬件提供 | 硬件 |
Replaceable | Boolean | false | true/false | - | 此部件是否可以作为独立的部件进行替换 | NPU热插拔 | false | CSR配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
CapabilitySupportMask | U32 | 0 | - | - | 能力支持掩码 | NPU能力特性展示 | 0 | CSR配置 | 软件 |
ComputeCapability | String | 无 | - | - | 芯片算力规格 | 北向接口展示NPU算力 | "910B" | CSR配置 | 软件 |
ComputeCapabilities | Array[ComputeCapabilityItem] | 无 | - | - | NPU芯片计算能力集合,包含支持的计算精度和对应算力 | NPU算力详情展示 | [{"precision":"FP16","throughput":"256 TFLOPS"}] | CSR配置 | 软件 |
NimBusTemp | U16 | 0 | - | - | 芯片外围设备NimBus温度 | NPU外围温度监控 | 0 | 硬件上报 | 硬件 |
AiCoreTemp | U16 | 0 | - | - | AiCore计算核心温度 | NPU核心温度监控 | 0 | 硬件上报 | 硬件 |
HBMTemp | U16 | 0 | - | - | HBM内存温度 | NPU HBM温度监控 | 0 | 硬件上报 | 硬件 |
VRDChipTemp | U16 | 0 | - | - | VRD chip温度 | NPU VRD温度监控 | 0 | 硬件上报 | 硬件 |
ECCAlarmStatus | U8 | 0 | 0、1、2 | - | NPU ECC错误告警状态 2-严重告警 1-事件 0-未发生 | NPU ECC告警配置 | 0 | ras组件设置 | 软件 |
VendorID | U16 | 无 | - | - | 槽位号 | NPU槽位标识 | 1 | CSR配置 | 软件 |
Version | String | 无 | - | - | 版本 | NPU版本信息显示 | "V100" | CSR配置 | 软件 |
FaultCode | String | 无 | - | - | NPU带内故障码 | NPU带内故障诊断 | "" | 组件上报 | 软件 |
TotalCores | U32 | 0 | - | - | NPU核数 | 北向接口展示NPU核数 | 0 | CSR配置 | 软件 |
PowerState | String | 无 | Off、PoweringOff、On、PoweringOn | - | NPU芯片上下电状态 | NPU上下电状态展示 | "Off" | CSR配置 | 软件 |
InstructionSet | String | 无 | - | - | 指令集 | 北向接口展示NPU指令集 | "DaVinci" | CSR配置 | 软件 |
🔗 动态关联机制
语法规范
使用 #/xxx 和 <=/xxx 格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名" # 直接关联
属性名: "<=/目标类.属性名" # 条件关联
# 实际示例
ThermalTrip: "<=/Scanner_Npu1ThermalTripAccessor.Value" # 关联过热保护扫描器
Health: "<=/Component_NPU1.Health" # 关联健康状态组件关联说明
- Scanner关联: 通过Scanner获取实时硬件状态信息
- Accessor关联: 通过Accessor进行读写操作
- Component关联: 与其他组件的状态关联
- 多种信号源: 支持温度、电源、故障等多种信号源的关联
📂 分类标准
硬件属性
- 定义:直接从硬件获取或控制硬件的参数
- 特点:实时反映硬件状态,支持硬件控制操作
- 示例:
ThermalTrip,NimBusTemp,AiCoreTemp,HBMTemp,VRDChipTemp
软件属性
- 定义:用于软件层面的NPU管理和配置
- 特点:包含标识、配置、状态管理等功能
- 示例:
Id,SystemId,Name,Presence,Architecture,Manufacturer,Model,Slot,PowerOn,DiagnosticFault,PredictiveFault,Location,Position,Health,Replaceable
📝 配置示例
标准单NPU配置
json
{
"NPU": {
"Id": 1,
"SystemId": 1,
"Name": "NPU1",
"Presence": 1,
"Architecture": "DaVinci",
"Manufacturer": "Huawei",
"Model": "Ascend910",
"Slot": 1,
"PowerOn": 1,
"DiagnosticFault": 0,
"PredictiveFault": 0,
"Location": "A1",
"Position": "buc",
"Health": "<=/Component_NPU1.Health",
"ThermalTrip": "<=/Scanner_Npu1ThermalTripAccessor.Value",
"Replaceable": false,
"CapabilitySupportMask": 0,
"ComputeCapability": "910B",
"ComputeCapabilities": [{"precision":"FP16","throughput":"256 TFLOPS"}],
"NimBusTemp": 0,
"AiCoreTemp": 0,
"HBMTemp": 0,
"VRDChipTemp": 0,
"ECCAlarmStatus": 0,
"VendorID": 1,
"Version": "V100",
"FaultCode": "",
"TotalCores": 0,
"PowerState": "Off",
"InstructionSet": "DaVinci"
}
}多NPU配置(NPU1)
json
{
"NPU1": {
"Id": 1,
"SystemId": 1,
"Name": "NPU1",
"Presence": 1,
"Architecture": "DaVinci",
"Manufacturer": "Huawei",
"Model": "Ascend910",
"Slot": 1,
"PowerOn": 1,
"DiagnosticFault": 0,
"PredictiveFault": 0,
"Location": "A1",
"Position": "buc",
"Health": "<=/Component_NPU1.Health",
"ThermalTrip": "<=/Scanner_Npu1ThermalTripAccessor.Value",
"Replaceable": false,
"CapabilitySupportMask": 0,
"ComputeCapability": "910B",
"ComputeCapabilities": [{"precision":"FP16","throughput":"256 TFLOPS"}],
"NimBusTemp": 0,
"AiCoreTemp": 0,
"HBMTemp": 0,
"VRDChipTemp": 0,
"ECCAlarmStatus": 0,
"VendorID": 1,
"Version": "V100",
"FaultCode": "",
"TotalCores": 0,
"PowerState": "On",
"InstructionSet": "DaVinci"
}
}多NPU配置(NPU2)
json
{
"NPU2": {
"Id": 2,
"SystemId": 1,
"Name": "NPU2",
"Presence": 1,
"Architecture": "DaVinci",
"Manufacturer": "Huawei",
"Model": "Ascend910",
"Slot": 2,
"PowerOn": 1,
"DiagnosticFault": 0,
"PredictiveFault": 0,
"Location": "A1",
"Position": "buc",
"Health": "<=/Component_NPU2.Health",
"ThermalTrip": "<=/Scanner_Npu2ThermalTripAccessor.Value",
"Replaceable": false,
"CapabilitySupportMask": 0,
"ComputeCapability": "910B",
"ComputeCapabilities": [{"precision":"FP16","throughput":"256 TFLOPS"}],
"NimBusTemp": 0,
"AiCoreTemp": 0,
"HBMTemp": 0,
"VRDChipTemp": 0,
"ECCAlarmStatus": 0,
"VendorID": 2,
"Version": "V100",
"FaultCode": "",
"TotalCores": 0,
"PowerState": "On",
"InstructionSet": "DaVinci"
}
}PCIe卡场景配置
json
{
"NPU_PCIE": {
"Id": 3,
"SystemId": 1,
"Name": "NPU3",
"Presence": 1,
"Architecture": "DaVinci",
"Manufacturer": "Huawei",
"Model": "Ascend310",
"Slot": 3,
"PowerOn": 1,
"DiagnosticFault": 0,
"PredictiveFault": 0,
"Location": "A2",
"Position": "pcie卡",
"Health": "<=/Component_NPU3.Health",
"ThermalTrip": "<=/Scanner_Npu3ThermalTripAccessor.Value",
"Replaceable": true,
"CapabilitySupportMask": 0,
"ComputeCapability": "310",
"ComputeCapabilities": [{"precision":"FP16","throughput":"64 TFLOPS"}],
"NimBusTemp": 0,
"AiCoreTemp": 0,
"HBMTemp": 0,
"VRDChipTemp": 0,
"ECCAlarmStatus": 0,
"VendorID": 3,
"Version": "V100",
"FaultCode": "",
"TotalCores": 0,
"PowerState": "Off",
"InstructionSet": "DaVinci"
}
}🔧 使用指南
配置步骤
- 设置基本标识:配置Id、SystemId、Name
- 配置物理信息:设置Slot、Location、Position
- 关联硬件信号:配置ThermalTrip等硬件关联
- 设置状态管理:配置Health、Presence、PowerOn、PowerState等状态属性
- 配置故障检测:设置DiagnosticFault、PredictiveFault、ECCAlarmStatus等故障属性
- 可选配置:根据需要配置温度、算力规格等可选属性
注意事项
- ID唯一性:Id在多Host间必须唯一
- 硬件关联:确保Scanner和Accessor对象存在且可用
- 多Host配置:SystemId用于区分不同的Host
- 槽位标识:Slot用于标识NPU的物理槽位信息
- 位置区分:Position区分NPU所在容器类型(buc或pcie卡)
- 故障检测:DiagnosticFault和PredictiveFault由RAS组件自动设置
- ECC告警:ECCAlarmStatus取值2为严重告警、1为事件、0为未发生
性能建议
- 硬件监控:合理设置Scanner的扫描频率
- 故障响应:及时处理ThermalTrip信号
- 温度管理:关注NimBusTemp、AiCoreTemp、HBMTemp、VRDChipTemp等温度属性
- 资源优化:根据实际需求配置可选属性
ID体系说明
- Id (1-16): 全局唯一标识,跨Host识别
- SystemId (1-8): Host标识,区分不同主机
- Slot (1-8): 物理槽位标识,标识NPU在系统中的槽位
故障检测机制
- DiagnosticFault: 严重故障诊断告警检测
- PredictiveFault: 预故障告警检测
- ECCAlarmStatus: NPU ECC错误告警检测(2-严重告警 1-事件 0-未发生)
- FaultCode: NPU带内故障码检测
- ThermalTrip: NPU过热保护状态检测
常见问题
- Q: 在位状态为什么不应该写死?
- A: Presence应该反映NPU的实际在位状态,建议通过硬件检测动态获取
- Q: Position的buc和pcie卡有什么区别?
- A: buc表示NPU位于BUC容器内,pcie卡表示NPU以PCIe卡形式接入
- Q: Location默认值为什么是A1?
- A: A1是NPU默认所属的抽屉编号,可根据实际硬件布局调整
- Q: 多Host场景如何配置?
- A: 通过SystemId区分不同Host,Id保持全局唯一,Slot在各Host内独立编号