GPU适配指导

接口定义

以下是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 个赞