固件更新指南
前提条件
-
已获取用于更新固件的文件。固件包括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
-
执行
stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本大于等于V1.8.0。 -
执行
sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。 -
执行
sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。
-
完成更新操作后,在BMC操作上下电,开始使用新版本的固件。
-
更新后如需重新安装HPE,必须确保HPE版本大于等于V1.8.0。
-
执行
stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。
更新流程2
-
执行
stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本小于等于V1.7.2。 -
执行
sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。 -
执行
sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。
-
完成更新操作后,在BMC操作上下电,开始使用新版本的固件。
-
重新安装HPE,更新后必须确保HPE版本大于等于V1.8.0。
-
执行
stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。
更新流程3
-
执行
stc-smi -q命令,查看当前的版本信息。更新前必须确保HPE版本小于等于V1.7.2。 -
执行
sudo stc-smi -u {file_name}.sdux -i {device_id}命令,为指定NPU设备更新NPU ctrl firmware。 -
执行
sudo stc-smi --mcu-upgrade {file_name}.sdux -i {device_id}命令,为指定NPU设备更新MCU firmware。注意:由于服务器硬件存在差异,偶尔可能报错更新命令执行失败,这时请在BMC操作上下电,并重新执行更新命令。如果是为同一台服务器上的多张板卡批量更新固件,从报错失败的板卡开始继续执行即可。
-
完成更新操作后,在BMC操作上下电,开始使用新版本的固件。
-
更新后对HPE的版本无要求,您可以按需选择是否更换HPE版本。
-
执行
stc-smi -q命令,查看NPU ctrl firmware和MCU firmware的固件版本信息,已更新到对应版本则代表更新成功。