AI-GPU ECC报错处理办法
一.问题描述
ECC(Error Checking and Correction)校验和纠错,是一种用于差错检测和修正的算法。
在应用任务运行中,应用任务计算失败,提示“ECC Errors”信息,同时系统日志中也包含类似信息。
GPU ECC计数检查工具及方法:
检查工具:安装Nvidia GPU驱动的linux系统。
检查方法:使用nvidia-smi 命令查询ECC计数,检查Single Bit ECC(SBE)和Double Bit ECC(DBE)的计数;
检查ECC计数的方法有:
# 使用 -i 参数指定GPU id查询某一块GPU的ECC计数
# nvidia-smi -i <target gpu> -q -d PAGE_RETIREMENT
...
Retired pages
Single Bit ECC : 2
Double Bit ECC : 0
Pending : Yes
#不使用 -i 参数查询所有GPU的ECC计数
# nvidia-smi -q -d PAGE_RETIREMENT
# 执行 nvidia-bug-report.sh 生成GPU日志,在日志中查看GPU ECC计数。
# nvidia-smi -q | grep -i 'bit ecc'
Pending项解释:
No,则说明ECC相关报错地址均已被隔离
Yes,ECC相关报错地址需要在重启或重置GPU后才会被隔离。
隔离后的报错地址不会再影响客户程序运行。
检查30内ECC报错计数:
# 备注 -i # 参数,可以指定具体某一块GPU进行查询,如 -i 2; 去掉 -i 参数可查询所有GPU的ECC计数信息。
nvidia-smi
-i # --query-retired-pages=gpu_bus_id,gpu_serial,retired_pages.cause,retired_pages.timestamp
--format=csv
二.处理方法
Tips: 该处理方法仅针对GPU ECC报错生效。
GPU ECC 报错更换标准,对于同一块GPU,满足以下任一条件则进行更换:
•30天内同一GPU的 Double Bit ECC≥5;
•质保期内Double Bit ECC≥10;
•质保期内Double Bit ECC+Single Bit ECC≥60
满足以上任一条件或fieldiag检测结果为FAIL,可以进行GPU更换。
对于不满足GPU更换条件的ECC报错问题,可以重启操作系统或nvidia-smi -r 重置GPU,使该GPU的Pending 项变为No,屏蔽ECC报错地址即可。
不满足GPU 更换条件的ECC报错问题,可按以下解释向客户进行说明:
通过重启操作系统或重置GPU,ECC报错的地址空间会被列入“黑名单”进行屏蔽,被屏蔽的地址空间将不会再次被GPU使用,不会影响客户程序运行。
Pending 项为No,表示所有报错的ECC 地址均已被屏蔽。
三.问题根因
nvidia RMA标准参考:
四.建议与总结
目前所有GPU ECC报修问题均按照本文第二步所描述的处理方法进行解决即可。
五.GPU常见故障及判断、更换标准
常见故障 | 判断标准 | 建议更换标准 |
lspci掉卡 | lspci | grep -i nvidia | grep -iE '3d con|vga com' |
|
nvidia-smi GPU掉卡 | nvidia-smi |
|
GPU降带宽 | lspci -vvd 10de: | grep -i Lnksta: |
|
ERR!或Unknown Error 报错 | nvidia-smi 输出中出现ERR!报错; |
|
GPU infoROM is corrupted | nvidia-smi输出报错或nvidia-bug-report日志中报错WARNING: infoROM is corrupted at gpu 0000:xx.00.0 |
|
GPU nvlink链路出现 inactive | nvlink机型:nvidia-smi nvlink -s |
|
Ampere架构GPU ECC报错 |
标准三: SRAM Uncorrectable error >4 | Pending 状态为Yes,表示需要重启OS屏蔽报错地址 |
其他Tesla GPU ECC报错 | 标准一: | 以下4条满足任一条可直接更换GPU: |
其他ECC报错计数相关 | 命令:nvidia-smi -q -d ecc | 该部分报错计数不作为GPU更换RMA标准。 |