ECC Mode设置问题

什么是ECC Mode?

ECC (Error Correcting Code) 是一种实现内存错误检查和纠正的技术,通过GPU驱动开启ECC Mode后,驱动会通过消耗一部分显存作为校验位来对数据损坏进行发现,一般情况下损坏可进行自动修正。

如何确认ECC Mode的开启状态

  1. 登陆云主机,执行下如下指令即可查询当前ECC状态。

如何开启或关闭ECC Mode

  • 关闭ECC Mode
  1. 如果针对所有GPU设备关闭ECC Mode,执行如下指令:
    nvidia-smi -e 0
  2. 如果针对指定GPU设备关闭 ECC Mode,执行如下指令,其中id为GPU设备的索引,比如:nvidia-smi -i 0000:07:00.0 -e 0 
    nvidia-smi -i id -e 0
  3. 重启虚拟机
    reboot
  4.  确认当前虚拟机的ECC状态
  • 开启ECC Mode
  1. 如果针对所有GPU设备关闭ECC Mode,执行如下指令:
    nvidia-smi -e 1
  2.  如果针对指定GPU设备关闭 ECC Mode,执行如下指令,其中id为GPU设备的索引,比如:nvidia-smi -i 0000:07:00.0 -e 1:
     nvidia-smi -i id -e 1
  3. 重启虚拟机:
    reboot
  4. 确认当前虚拟机的ECC状态

为什么GPU云主机开启/关闭ECC Mode不生效

问题现象:部分用户使用GPU云主机时,通过驱动设置ECC Mode,重启实例以后查询显示设置未生效。

如下图所示current和pending ECC Mode状态不一致:

问题原因:这是因为NVIDIA Tesla 535及以上版本驱动,Legacy Persistence Mode支持不佳。

解决方法:需要开启Persistence Daemon启用新版持久化功能,再进行ECC设置,操作步骤如下

1. 登陆云主机,执行如下命令开启Persistence Mode,参考英伟达官方文档指引开启Persistence Mode

sudo nvidia-persistenced --user <username>    # 运行Persistence Daemon,username为您的用户名
nvidia-smi -pm 1                             # 开启Persistence Mode

2. 执行如下命令,进行ECC设置

nvidia-smi -pm 0                            # 关闭Persistence Mode
nvidia-persistenced --persistence-mode     # 启动Persistence Daemon
nvidia-smi -e 1                             # 开启ECC Mode(1为Enable,0为Disable)
reboot                                    # 重启OS

3. 重启后登陆云主机查看ECC开启状态

nvidia-smi -q -d ecc
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。