常用 GPU 运维及故障处理

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

本文讨论了NVIDIA GPU的常见错误代码(XID)及其含义,包括图形引擎异常、GPU内存页错误和驱动固件错误。还提到GPU温度过高的问题及其解决方案,如终止高温应用程序。此外,介绍了在Pod中执行nvidia-smi命令时可能出现的错误及其解决方法。

🔎

延伸解读

XID 错误码的快速定位与分类

通过 dmesg -T | grep -i "NVRM: Xid" 可以快速定位 GPU 故障。XID 错误码可分为几类:应用层错误(如 XID 13、31、43)通常由程序越界或非法访问引起,硬件问题概率较低;驱动或固件错误(如 XID 38、68)需关注驱动状态;硬件故障(如 XID 48、74、79)往往需要重置 GPU 或下线维修。理解分类有助于判断故障严重程度和响应优先级。

GPU 温度监控与过热处理

GPU 温度应保持在 85°C 以下,超过会导致锁频和性能下降。使用 nvidia-smi --query-gpu=index,temperature.gpu --format=csv,noheader 可查看各 GPU 温度。若温度超标,可终止高温应用程序,使其迁移到其他 GPU。这是一种软件层面的应急措施,但需注意可能影响业务连续性,建议结合调度策略避免频繁迁移。

NVLink/NVSwitch 报错与持久模式

当出现 NVLink、NVSwitch 报错,或 nvidia-smi 找不到设备、重启后少卡时,可检查 nvidia-fabricmanager 服务状态及日志。启用 nvidia-persistenced 持久模式能让驱动保持加载,大幅缓解此类问题。这提示我们,对于多卡互联环境,保持驱动常驻是预防掉卡和通信故障的有效手段。

Pod 中 nvidia-smi 报错的版本兼容性

在 Pod 中执行 nvidia-smi 出现 'Function Not Found' 错误,通常是因为容器内 CUDA 版本与节点不匹配。解决方法是通过设置 LD_LIBRARY_PATH 环境变量并重启应用。这提醒我们在容器化 GPU 环境中,需确保 CUDA 版本一致性,避免因库路径问题导致工具无法正常工作。

❓

Q&A

XID错误码是什么?

XID是NVIDIA的错误码,用于定位GPU故障。

常见的XID错误有哪些?

常见的XID错误包括图形引擎异常(XID 13)、GPU内存页错误(XID 31)和驱动固件错误(XID 38)。

如何解决GPU过热问题?

可以通过终止高温应用程序或将其迁移到其他GPU上来解决GPU过热问题。

如何查看GPU的温度?

可以使用命令nvidia-smi --query-gpu=index,temperature.gpu --format=csv,noheader查看GPU温度。

在Pod中执行nvidia-smi时出现错误怎么办?

出现'Function not Found'错误通常是由于CUDA版本不匹配,可以通过设置环境变量并重启应用来解决。

GPU温度超过85°C会有什么影响?

GPU温度超过85°C会导致性能下降和锁频问题。

🏷️

标签

➡️

继续阅读