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 | 无效或损坏的推送缓冲区流 | ✔ | ✔ | ✔ | ✔ | |||
4 | GPU 信号量超时 | ✔ | ✔ | ✔ | ✔ | ✔ | ||
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时最可能看到 | ✔ | ||||||
46 | GPU停止处理 | ✔ | ✔ | |||||
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-77 | CE6-CE8:未知错误 | ✔ | ✔ | |||||
78 | vGPU启动错误 | ✔ | ||||||
79 | GPU已从总线上掉下来 | ✔ | ✔ | ✔ | ✔ | ✔ | ||
80 | 损坏的数据被发送到GPU | ✔ | ✔ | ✔ | ✔ | ✔ | ||
81 | VGA子系统错误 | ✔ | ||||||
82 | NVJPG0错误 | ✔ | ✔ | |||||
83-84 | NVDEC1-NVDEC2错误 | ✔ | ✔ | |||||
85 | CE9:未知错误 | ✔ | ✔ | |||||
86 | OFA异常 | ✔ | ✔ | |||||
87 | 保留 | |||||||
88-89 | NVDEC3-NVDEC4错误 | ✔ | ✔ | |||||
90-91 | 保留 | |||||||
92 | 单比特ECC误码率高 | ✔ | ✔ | |||||
93 | 非致命违反规定的信息磨损限制 | ✔ | ✔ | |||||
94 | 包含ECC错误 | ✔ | ✔ | ✔ | ||||
95 | 不包含ECC错误 | ✔ | ✔ | ✔ | ||||
96-98 | NVDEC5-NVDEC7错误 | ✔ | ✔ | |||||
99-105 | NVJPG1-NVJPG7错误 | ✔ | ✔ | |||||
106 | SMBPBI测试消息 | ✔ | ||||||
107 | SMBPBI测试消息沉默 | ✔ | ||||||
108 | 保留 | |||||||
109 | 切换超时错误 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
110 | 安全性错误 | ✔ | ||||||
111 | 显示错误事件 | ✔ | ✔ | ✔ | ||||
112 | 显示管理器错误 | ✔ | ✔ | |||||
113 | DP链路训练错误 | ✔ | ✔ | |||||
114 | 显示管道下溢错误 | ✔ | ✔ | ✔ | ||||
115 | 显示核心通道误差 | ✔ | ✔ | |||||
116 | 显示窗口通道错误 | ✔ | ✔ | |||||
117 | 显示光标通道错误 | ✔ | ✔ | |||||
118 | 显示像素流水线错误 | ✔ | ✔ | |||||
119 | GSP RPC超时 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
120 | GSP错误 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
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
相关阅读
- 使用GPU时出现XID 119/XID 120错误导致GPU掉卡
- 各型号GPU使用nccl-tests单机多卡性能测试基准参考
- 各型号GPU使用gpu-burn和cublasMatmulBench性能测试基准参考
- ubuntu22.04安装nvidia-fabricmanager
- linux部署开发者工具包NVIDIA HPC SDK
- linux部署NVIDIA HPC-X综合软件包环境
- linux下开启GPU Direct RDMA(GDR)的方法
- ubuntu使用nvbandwidth测试单节点gpu带宽性能
- nvidia-peermem和dmabuf两种GDR方式的区别
- linux下使用cublasMatmulBench对GPU进行测试
评论列表