显存 ECC 与 Row Remap:二手 GPU 验收的硬判据

2026-10-29 23:31 1 阅读量

二手 GPU 验收里,跑分能过不代表显存健康。ECC 错误计数、页退役、行重映射这三项是硬判据,而且都能通过 nvidia-smi 直接读出来,不需要额外工具。

一、三条查询命令

nvidia-smi -q -d ECC
nvidia-smi -q -d PAGE_RETIREMENT
nvidia-smi -q -d ROW_REMAPPER

也可以组合查:nvidia-smi -q -d MEMORY,ECC。注意 -d 不能与 -u/--unit 或 XML 格式同时使用。

二、Volatile 与 Aggregate 的区别,决定你怎么判

ECC 错误按两个时间尺度统计:Volatile 是自上次驱动加载以来检测到的错误数(Linux 下在不启用持久化时,每次运行计算程序都会重置);Aggregate 是永久保留的生命周期计数器。

所以看二手卡要看 Aggregate。只看 Volatile 会被驱动重载清零骗过去——一台显存有问题的机器,重载驱动后 Volatile 归零,看起来是干净的。

还有一条关键限制:Ampere 及之后的产品,官方不支持清除 aggregate 计数(nvidia-smi 文档原文:Clearing aggregate counts is not supported on Ampere+)。重置命令是 nvidia-smi -p 0(清 volatile)或 -p 1(清 aggregate),在 Ampere+ 上前者对硬件问题没有洗白作用,后者根本不被支持。这条同时也是防伪依据。

三、字段结构与判定

Ampere 及之后的 ECC 输出字段与 Turing 不同,看的是 SRAM Uncorrectable Parity、SRAM Uncorrectable SEC-DED 以及 Aggregate Uncorrectable SRAM Sources 的细分(SRAM L2 / SM / Microcontroller / PCIE / Other),另有修复标志位 Channel Repair Pending、TPC Repair Pending、Unrepairable Memory。

三项检查按以下顺序判:

  • ECC 的 DRAM Uncorrectable 大于 0:不可纠正的显存错误,说明有硬件缺陷,直接拒收或走 RMA,不要用「先跑跑看」来赌。
  • Remapping Failure Occurred 为 Yes:历史上发生过行重映射失败,重映射机制已失效,走 RMA。
  • ROW_REMAPPER 的 Pending 为 Yes:有行等待重映射。注意官方明确「必须对 GPU 复位后重映射才生效」,此时要 nvidia-smi -r 复位后重新查询,而不是当场判死。
  • Bank Remap Availability Histogram 全为 None:可重映射的 bank 资源已耗尽,再出问题就无处可换,属于高风险。
  • PAGE_RETIREMENT 的 Pending 为 Yes:有页将在下次重启后进黑名单,说明近期有页因 ECC 错误退役。

四、复位与恢复动作

复位命令 nvidia-smi -r(默认 Function Level Reset),需要 root,且必须保证所有占用该卡的应用已退出。涉及 NVLink 连接时要看 PEER 复位规则:Ampere+ 在 Fabric Manager 运行时可以单独复位,Pre-Ampere 或 Fabric Manager 未运行时要连同 PEER 一起复位。

另外有 GPU Recovery Action 字段,常见值为 None、Reset、Reboot、Drain P2P、Drain and Reset。看到非 None 时按提示动作处理,不要跳过。

五、写进验收单的判据

建议把三项检查结果原样落到验收记录里:aggregate 的 DRAM Uncorrectable 计数、ROW_REMAPPER 的四项状态、Bank Remap Availability 分布。这三组数据是可复核的客观量,比「跑分通过」有说服力,也比看一眼温度可靠。

口径提示:命令、字段名、复位规则与「Ampere+ 不支持清除 aggregate」均取自 NVIDIA nvidia-smi 官方文档。本文不给出「aggregate 计数到多少算不合格」的统一阈值——不同批次、不同负载历史差异很大,阈值应由项目方按机型与用途自定,写死一个数字反而会造成误判。

来源:NVIDIA nvidia-smi 官方文档