本页面介绍如何解决在挂接了 GPU 的 Compute Engine 上运行的虚拟机的问题。
如果您尝试创建挂接了 GPU 的虚拟机但收到错误,请查看排查资源可用性错误以及排查创建和更新虚拟机的问题。
Xid 消息
创建挂接 GPU 的虚拟机后,您必须在 GPU 虚拟机上安装 NVIDIA 设备驱动程序,以便应用可以访问 GPU。但这些驱动程序有时会返回错误消息。
Xid 消息是 NVIDIA 驱动程序的错误报告,输出到 Linux 虚拟机的操作系统内核日志或事件日志中。这些消息位于 /var/log/messages
文件中。
如需详细了解 Xid 消息(包括潜在原因),请参阅 NVIDIA 文档。
以下部分介绍了如何处理一些按最常见的类型分组的 Xid 消息:GPU 内存错误、GPU 系统处理器 (GSP) 错误和非法内存访问错误。
GPU 内存错误
GPU 内存是 GPU 上可用的内存,可用于临时存储数据。GPU 内存受纠错代码 (ECC) 保护,它可以检测和纠正单位错误 (SBE),以及检测并报告双位错误 (DBE)。
在 NVIDIA A100 GPU 发布之前,支持动态页面弃用。对于 NVIDIA A100 及更高版本的 GPU 版本(例如 NVIDIA H100),引入了行重新映射错误恢复功能。ECC 默认处于启用状态。Google 强烈建议您将 ECC 保持启用状态。
以下是常见的 GPU 内存错误及其建议的解决方法。
Xid 错误消息 | 解决方法 |
---|---|
Xid 48: Double Bit ECC |
|
Xid 63: ECC page retirement or row remapping recording
event |
|
Xid 64: ECC page retirement or row remapper recording
failure
该消息包含以下信息: Xid 64: All reserved rows for bank are remapped
|
|
如果您至少同时收到以下 Xid 消息中的两条:
该消息包含以下信息: Xid XX: row remap pending
|
|
Xid 92: High single-bit ECC error rate |
在 GPU 驱动程序更正一个可更正的错误后,系统将返回此 Xid 消息,它不会影响您的工作负载。此 Xid 消息仅供参考。对此,您无需执行任何操作。 |
Xid 94: Contained ECC error |
|
Xid 95: Uncontained ECC error |
|
GSP 错误
GPU 系统处理器 (GSP) 是一个在 GPU 上运行的微控制器,用于处理一些低级别的硬件管理功能。
Xid 错误消息 | 解决方法 |
---|---|
Xid 119: GSP RPC timeout |
|
Xid 120: GSP error |
非法的内存访问错误
如果应用遇到非法内存访问问题,系统会返回以下 Xid:
Xid 13: Graphics Engine Exception
Xid 31: GPU memory page fault
非法内存访问错误通常是由于工作负载尝试访问已释放或超出范围的内存导致的。这可能是由于某些问题(例如对无效指针或出站数组的解引用)导致的。
如需解决此问题,您需要调试应用。如需调试应用,您可以使用 cuda-memcheck 和 CUDA-GDB。
在极少数情况下,硬件降级可能会导致返回非法内存访问错误。如需确定问题是否出在您的硬件上,请使用 NVIDIA 数据中心 GPU 管理器 (DCGM)。您可以运行 dcgmi diag -r 3
或 dcgmi diag -r 4
来运行不同级别的测试覆盖范围和时长。如果您发现问题与硬件有关,请向 Cloud Customer Care 提交支持请求。
其他常见的 Xid 错误消息
Xid 错误消息 | 解决方法 |
---|---|
Xid 74: NVLINK error |
|
Xid 79: GPU has fallen off the bus
这意味着驱动程序无法与 GPU 通信。 |
重新启动虚拟机。 |
重置 GPU
某些问题可能需要您重置 GPU。如需重置 GPU,请完成以下步骤:
- 对于 N1、G2 和 A2 虚拟机,请运行
sudo reboot
来重新启动虚拟机。 - 对于 A3 虚拟机,请运行
nvidia-smi reset GPU
。
如果重置 GPU 后错误仍然存在,您需要删除并重新创建虚拟机。
如果在删除并重新创建后错误仍然存在,请向 Cloud Customer Care 提交支持请求,将虚拟机移到修复阶段。