英伟达GPU XID Errors介绍和错误码整理

推荐

Xid 消息是来自 NVIDIA 驱动程序的错误报告,会打印到操作系统的内核日志或事件日志中。Xid 消息表明发生了普遍的 GPU 错误,通常是因为驱动程序错误地对 GPU 进行了编程,或者是因为发送给 GPU 的指令出现了损坏。这些消息可能表明存在硬件问题、NVIDIA 软件问题或者用户应用程序问题。

这些消息提供了诊断信息,用户和英伟达均可利用这些信息来协助解决所报告的问题,每个消息的含义在不同版本的驱动程序中是保持一致的。

1.Xid错误的作用和如何查看Xid错误

Xid 消息旨在用作调试指南。由于许多问题可能有多种潜在的根源,仅通过 Xid 值来理解每个问题并不总是可行的。
例如,一个 Xid 错误可能表明用户程序试图访问无效内存。但从理论上讲,由于 PCIE 或帧缓冲区(“FB”)问题导致的内存损坏可能会破坏任何指令,从而引发几乎任何错误。通常,下面列出的 Xid 分类应作为对每个问题进行进一步调查的起点。

在 Linux 系统中,XID 错误信息会被存放在 /var/log/messages 这个位置。
使用“grep”命令搜索“NVRM: Xid”以查找所有与 Xid 相关的消息。
以下是一个 Xid 字符串的示例:

[...] NVRM: GPU at 0000:03:00: GPU-b850f46d-d5ea-c752-ddf3-c4453e44d3f7
[...] NVRM: Xid (0000:03:00): 14, Channel 00000001

日志文件中的第一个“Xid”前面有一行内容,其中包含了 GPU 的 GUID 及设备 ID 。
在上述例子中:
“GPU-b850f46d-d5ea-c752-ddf3-c4453e44d3f7” 是一个全局唯一标识符。
GUID 是针对每块 GPU 的一个全球唯一的、不可更改的标识符。
“0000:03:00” 是设备的唯一标识码。
每个后续的 Xid 行都包含设备 ID、Xid 错误以及关于 Xid 的相关信息。
在上述例子中:
“0000:03:00” 是该设备的唯一标识码。
“14”是 Xid 错误标识符。
“00000001 号信道”是与该 Xid 错误相关的特定数据。

2.使用几种工具协助处理Xid错误的工具

英伟达还提供了另外三种工具,这些工具在处理 Xid 错误时可能会有所帮助。

2.1.nvidia-smi

nvidia-smi 是一个命令行程序,它与 NVIDIA 驱动程序一同安装。它会报告系统中每块 GPU 的基本监控和配置数据。`nvidia-smi 可以列出 ECC 错误计数(Xid 48)并指出电源线是否已拔出(Xid 54)等信息。欲了解更多信息,请查看 nvidia-smi 的手册页。运行 nvidia-smi -q 可获得基本输出。

2.2.NVIDIA Data Center GPU Manager (DCGM)

这是一套用于管理及监控集群环境中 NVIDIA 数据中心 GPU 的工具集。它包含实时健康监测、全面诊断、系统警报以及治理策略,包括电源和时钟管理等。DCGM 诊断工具是一种健康检查工具,能够检查 GPU 的基本健康状况,包括是否存在纠错码错误、PCIe 问题、带宽问题以及运行 CUDA 程序时的一般性问题。

2.3.nvidia-bug-report.sh

这是一个与 NVIDIA 驱动程序一同安装的脚本。它会收集系统中的调试日志和命令输出,包括内核日志以及由 NVIDIA 驱动程序自身收集的日志。该命令需以 root 身份运行:

sudo nvidia-bug-report.sh

该工具的输出结果是一个单一的压缩文本文件,名为“nvidia-bug-report.log.gz”,在向 NVIDIA 报告问题时可将其一并提交。
nvidia-bug-report.sh 通常运行速度较快,但在极少数情况下可能会运行缓慢。请允许其运行至少一小时才能完成。如果该命令长时间处于阻塞状态,请使用附加参数重新运行该命令,格式如下:

nvidia-bug-report.sh --safe-mode --extra-system-data

这将收集备用日志,其方式应能避免在调试收集过程中出现常见的卡顿情况。

3.Xid 错误代码列表

打勾就代表有可能是这些问题导致这个Xid报错码的出现。有重复编号的属于正常现象,官网就有好几个重复的,一个xid编号对象几种情况。

Xid

错误描述

硬件错误驱动错误用户应用错误系统内存损坏总线错误热阻错误帧缓存/显存污染
1-4

无效或损坏的推送缓冲区流

4GPU 信号量超时
5

未使用过的

6无效或损坏的推送缓冲区流
7

无效或损坏的推送缓冲区地址

8

GPU停止处理

9

驱动程序错误编程GPU

10未使用过的
11

无效或损坏的推送缓冲流

12

驱动程序错误处理GPU异常

13

图形引擎异常

14-15未使用过的
16

显示引擎Hung住

17未使用过的
18

总线控制在PCI配置空间禁用

19

显示引擎错误

20

无效或损坏的Mpeg推送缓冲区

21

无效或损坏的运动估计推送缓冲区

22

无效或损坏的视频处理器推送缓冲区

23未使用过的
24

GPU信号量超时

25

无效或非法的推送缓冲区流

26

帧缓冲区超时

27

视频处理器异常

28-29视频处理器异常
30

GPU信号量访问错误

31

GPU内存页故障

32

无效或损坏的推送缓冲流

33

微控制器内部误差

34-36

视频处理器异常

37

驱动程序固件错误

38

驱动程序固件错误

39-41

未使用过的

42

视频处理器异常

43

GPU停止处理

44

切换上下文时图形引擎故障

45

由于先前的错误而进行的抢占式清理-

在运行多个cuda应用程序并遇到DBE时最可能看到

46GPU停止处理
47

视频处理器异常

48

双位ECC错误

49-53未使用过的
54

辅助电源未连接到GPU单板

55未使用过的
56

显示引擎错误

57

错误编程显存接口

58

检测到不稳定的显存接口

58

EDC错误

59

内部微控制器错误(较旧的驱动程序)

60

视频处理器异常

61

内部微控制器断点/警告(更新的驱动程序)

62

内部微控制器停止(更新的驱动程序)

63

ECC页停用或行重映射记录事件

64

ECC页停用或行重绘器记录失败

65

视频处理器异常

66-67

驱动程序非法访问

68

NVDEC0异常

69

图形引擎类错误

70-72

CE3-CE5:未知错误

73

NVENC2错误

74

NVLINK错误

75-77CE6-CE8:未知错误
78

vGPU启动错误





79GPU已从总线上掉下来
80

损坏的数据被发送到GPU

81

VGA子系统错误

82

NVJPG0错误

83-84

NVDEC1-NVDEC2错误

85CE9:未知错误
86

OFA异常

87

保留

88-89NVDEC3-NVDEC4错误
90-91保留
92

单比特ECC误码率高

93

非致命违反规定的信息磨损限制

94

包含ECC错误

95

不包含ECC错误

96-98NVDEC5-NVDEC7错误
99-105

NVJPG1-NVJPG7错误

106

SMBPBI测试消息

107

SMBPBI测试消息沉默

108保留
109

切换超时错误

110

安全性错误

111

显示错误事件

112

显示管理器错误

113DP链路训练错误
114

显示管道下溢错误

115

显示核心通道误差

116

显示窗口通道错误

117

显示光标通道错误

118

显示像素流水线错误

119

GSP RPC超时

120GSP错误
121

C2C链路错误

122

SPI PMU RPC读取失败

123

SPI PMU RPC写失败

124

SPI PMU RPC擦除失败

125

info FS故障

126-136保留
137

NVLink FLA权限错误

138-139保留
140

不可恢复的ECC错误

141-142保留
143

GPU初始化失败

144
145

后续有更新将持续更新,也可以直接查看英伟达官网Xid Errors更新页面:https://docs.nvidia.com/deploy/xid-errors/index.html

Xid Errors定义文件可以直接查看这里:https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/common/sdk/nvidia/inc/nverror.h

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1117

评论列表

0%