跳到主要内容
版本:1.9.0

固件更新指南

前提条件

  • 已获取用于更新固件的文件。固件包括NPU ctrl firmware和MCU firmware。

  • 服务器上已禁用smi_info.service和npu_exporter.service服务。smi_info.service和npu_exporter.service服务会和固件更新操作产生冲突,您需要再更新固件前手动禁用服务,并在更新固件后手动启用服务。参考命令如下:

    # 查看是否开启服务
    $ sudo systemctl status smi_info.service
    $ sudo systemctl status npu_exporter.service
    # 停止服务
    $ sudo systemctl stop smi_info.service
    $ sudo systemctl stop npu_exporter.service
    # 禁止服务开机自启动
    $ sudo systemctl disable smi_info.service
    $ sudo systemctl disable npu_exporter.service
    # 开启服务开机自启动
    $ sudo systemctl enable smi_info.service
    $ sudo systemctl enable npu_exporter.service
    # 启动服务
    $ sudo systemctl start smi_info.service
    $ sudo systemctl start npu_exporter.service

使用限制

  • 仅支持在宿主机上更新固件,禁止在VM上执行更新固件的步骤。

  • 支持将推理卡passthrough到基于KVM的VM,同时要求NPU ctrl firmware为V1.3.4或以上版本、HPE为V1.5.1或以上版本。另外,需要注意以下限制:

    • NPU ctrl要求使用PCIe类型的接口才能正确读取板卡信息,基于要求使用PCIe类型的接口,限制KVM必须使用q35类型的主板模拟,而i440类型的主板不可用。

文件和命令说明

使用stc-smi命令即可更新固件版本,可升级版本和回滚版本,同时请注意以下方面:

  • 待更新NPU ctrl firmware:指定NPU ctrl firmware的形式为-u {file_name}.sdux。NPU ctrl firmware和HPE的版本对更新操作有影响,详情请参见NPU ctrl firmware和HPE版本匹配章节。

  • 待更新MCU firmware:指定MCU firmware的形式为--mcu-upgrade {file_name}.sdux

  • 固件更新文件:固件更新文件的后缀统一为sdux,文件请以最新稳定版为准。

  • 操作权限:更新NPU crtl firmware时需要sudo权限。

  • 待更新设备:更新时指定需要更新固件的NPU设备,指定NPU设备的形式为-i {device_id}

NPU ctrl firmware和HPE版本匹配

NPU ctrl firmware从V1.3.4开始修改了策略,做更新操作时,请务必确保NPU ctrl firmware和HPE版本相匹配。基于版本匹配的要求,我们梳理了几种典型场景下的操作:

当前NPU ctrl firmware版本目标NPU ctrl firmware版本对HPE版本的要求参考操作
大于等于V1.3.4大于等于V1.3.4更新前后均大于等于V1.8.0更新流程1
小于V1.3.4大于等于V1.3.4- 更新前小于等于V1.7.2
- 更新后大于等于V1.8.0
更新流程2
大于等于V1.3.4小于V1.3.4- 更新前小于等于V1.7.2
- 更新后无要求
更新流程3
小于V1.3.4小于V1.3.4- 更新前小于等于V1.7.2
- 更新后无要求
更新流程3

更新流程1

  1. 执行stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本大于等于V1.8.0。

  2. 执行sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。

  3. 执行sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。

    注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。

  4. 完成更新操作后,在BMC操作上下电,开始使用新版本的固件。

  5. 更新后如需重新安装HPE,必须确保HPE版本大于等于V1.8.0。

  6. 执行stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。

更新流程2

  1. 执行stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本小于等于V1.7.2。

  2. 执行sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。

  3. 执行sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。

    注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。

  4. 完成更新操作后,在BMC操作上下电,开始使用新版本的固件。

  5. 重新安装HPE,更新后必须确保HPE版本大于等于V1.8.0。

  6. 执行stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。

更新流程3

  1. 执行stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本小于等于V1.7.2。

  2. 执行sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。

  3. 执行sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。

    注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。

  4. 完成更新操作后,在BMC操作上下电,开始使用新版本的固件。

  5. 更新后对HPE的版本无要求,您可以按需选择是否更换HPE版本。

  6. 执行stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。