什么是ECC Mode?
ECC (Error Correcting Code) 是一种实现内存错误检查和纠正的技术,通过GPU驱动开启ECC Mode后,驱动会通过消耗一部分显存作为校验位来对数据损坏进行发现,一般情况下损坏可进行自动修正。
如何确认ECC Mode的开启状态
- 登陆云主机,执行下如下指令即可查询当前ECC状态。
如何开启或关闭ECC Mode
- 关闭ECC Mode
- 如果针对所有GPU设备关闭ECC Mode,执行如下指令:
nvidia-smi -e 0 - 如果针对指定GPU设备关闭 ECC Mode,执行如下指令,其中id为GPU设备的索引,比如:nvidia-smi -i 0000:07:00.0 -e 0
nvidia-smi -i id -e 0 - 重启虚拟机
reboot - 确认当前虚拟机的ECC状态
- 开启ECC Mode
- 如果针对所有GPU设备关闭ECC Mode,执行如下指令:
nvidia-smi -e 1 - 如果针对指定GPU设备关闭 ECC Mode,执行如下指令,其中id为GPU设备的索引,比如:nvidia-smi -i 0000:07:00.0 -e 1:
nvidia-smi -i id -e 1 - 重启虚拟机:
reboot - 确认当前虚拟机的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