yelvsub
(huangleisheng)
1
接口定义
以下是GPU类主要的interface包含关系
"path": "/bmc/kepler/Systems/:SystemId/Processors/GPU/:ID",
"interfaces": [
"bmc.kepler.Systems.Processor", -- 描述通用处理器的接口
"bmc.kepler.Systems.Processor.GPU", -- 描述GPU特有功能的接口
"bmc.kepler.Systems.Processor.GPU.Status", -- 描述GPU供电功能的接口
"bmc.kepler.Systems.Processor.GPU.Power", -- 描述GPU状态的接口
...
]
bmc.kepler.Systems.Processor
| 属性 |
说明 |
建议实现方式 |
| ProcessorType |
处理器类型 |
对于GPU,在CSR配置为"2" |
| SystemId |
处理器所在系统Id |
默认值1,在CSR配置 |
| Id |
处理器Id |
默认值1,在CSR配置 |
| Name |
名称 |
根据需求在CSR配置 |
| Presence |
在位 |
默认值1,在CSR配置 |
| InstructionSet |
指令集 |
当前未应用,推荐在CSR配置 |
| Architecture |
芯片架构 |
当前未应用,推荐在CSR配置 |
| Manufacturer |
厂商 |
根据需求在CSR配置 |
| Family |
家族 |
当前未应用,推荐在CSR配置 |
| Model |
型号 |
根据需求在CSR配置 |
| PartNumber |
部件号 |
一般需要通过GPU带外管理协议获取。注意这是处理器的部件号,不是GPU卡的。 |
| SN |
序列号 |
一般需要通过GPU带外管理协议获取 |
| FirmwareVersion |
固件版本 |
一般需要通过GPU带外管理协议获取 |
| SocketDesignation |
槽位 |
默认值"1",在CSR配置 |
| Position |
位置 |
配成PCIe Riser${Slot} |
| ThermalTrip |
过热保护状态 |
GPU不涉及 |
| Health |
健康状态 |
关联Component_PCIeCard的Health属性 |
| Replaceable |
是否可以作为独立的部件进行替换 |
对于GPU已在model.json配置默认值为true |
bmc.kepler.Systems.Processor.GPU
| 属性 |
说明 |
建议实现方式 |
| InfoRomVersion |
InfoRom版本 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| Slot |
槽位号 |
同步PCIeDevice_1的SlotID属性 |
| VendorID |
厂商ID |
根据需求在CSR配置 |
| DeviceID |
设备ID |
根据需求在CSR配置 |
| SubVendorID |
子厂商ID |
根据需求在CSR配置 |
| SubDeviceID |
子设备ID |
根据需求在CSR配置 |
| GPUUtilization |
GPU利用率 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| MemoryUtilization |
内存利用率 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| BoardPartNumber |
单板部件号 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| MemoryVendor |
内存厂商 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| MemoryPartNumber |
内存部件号 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| BuildDate |
构建日期 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| UUID |
通用唯一标识符 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| PrimaryGPUTemperatureCelsius |
主处理器温度 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
bmc.kepler.Systems.Processor.GPU.Status
| 属性 |
说明 |
建议实现方式 |
| ECCModeEnabled |
ECC模式当前使能状态 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| ECCModePendingEnabled |
ECC模式重启后使能状态 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| ResetRequired |
是否需要重启 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| DoubleBitErrorPageCount |
双bit失效故障页个数 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| SingleBitErrorPageCount |
单bit失效故障页个数 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| NvLinkInfo |
NvLink信息 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
bmc.kepler.Systems.Processor.GPU.Power
| 属性 |
说明 |
建议实现方式 |
| PowerWatts |
功率 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| PowerBrakeSet |
power brake状态 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
| ExternalPowerSufficient |
外部供电是否充足 |
属性源于NVIDIA的GPU,若不涉及可不实现 |
协议实现
从资源协作接口的定义可以看到,实际上若非NVIDIA的GPU,需要适配的功能点实际上很少
NVIDIA的GPU
- NVIDIA的GPU支持自定义的带外管理协议,即SMBus Post Box Interface(SMBPBI)。当前openUBMC已支持,新增NVIDIA的GPU时,理论上只需增加配置文件即可。详情可参考general_hardware仓的Tesla_T4.lua
- 注意CSR配置的Model字段要与配置文件名称相匹配
非NVIDIA的GPU
- 除在CSR配死的字段外,重点应当关注温度、功耗、序列号、固件版本、部件号。温度、功耗影响整机散热策略设计,序列号、固件版本、部件号影响部件资产管理
- 如果需要实现新的带外管理协议,需要修改general_hardware组件代码,注意避免执行NVIDIA GPU的代码流程
- 目前,新的部件驱动规范正在制定当中,GPU卡作为首批落地的部件,将会很快启用新的适配流程,欢迎社区的伙伴们提出宝贵的意见和建议
- 【公示中】GPU卡驱动规范
4 个赞