八卡A100服务器坏卡引发 CUDA initialization: cudaGetDeviceCount()异常

一、先说结论:

在多卡 GPU服务器中(尤其是 A100),在坏卡后,可能导致各类应用对 CUDA 设备编号出现不一致。因此在检查各应用组件的安装状态都是正常后,尝试重启了 Fabric Manager:

bash 复制代码
sudo systemctl restart nvidia-fabricmanager
sudo systemctl status nvidia-fabricmanager

经重启 Fabric Manager后,少了显卡的服务器的CUDA在使用中恢复了正常。

二、查错过程

Ubuntu系统,排查发现CUDA的A100掉了一张。

尝试重启后,仍有一张卡没有起来;联系运维后得知A100坏掉一张。

此时尝试重启docker服务,使用GPU的docker服务在重启时,均发现如下报错:

bash 复制代码
ERROR: The NVIDIA Driver is present, but CUDA failed to initialize.  GPU functionality will not be available.
   [[ System not yet initialized (error 802) ]]

INFO 01-08 10:15:27 __init__.py:190] Automatically detected platform cuda.
/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py:129: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount().

经排查NVIDIA 驱动、 CUDA Toolkit 、 CUDA Runtime甚至PCI 设备都是正常运行的。

NVSwitch :是 NVIDIA 开发的专用交换机芯片,用于实现多 GPU 系统间的高速全互联通信,提供高带宽、低延迟的数据传输。

NVLink 是英伟达(NVIDIA)开发并推出的一种总线及其通信协议。NVLink采用点对点结构、串列传输,用于中央处理器(CPU)与图形处理器(GPU)之间的连接,也可用于多个图形处理器之间的相互连接。

GPU Fabric 是 NVSwitch 平台中,由 Fabric Manager 管理的 GPU 互连拓扑,它决定了 GPU 之间是否可以高效、对称地进行点对点通信与协同计算。

Fabric Manager 是 NVSwitch 平台的控制平面(Control Plane),负责把多个 GPU 和 NVSwitch 组织成一个逻辑统一的计算网络,并将该网络的状态同步给 NVIDIA 驱动与 CUDA 运行时。

NVSwitch 是硬件,nvidia-fabricmanager 是负责管理 NVSwitch 与 GPU Fabric 的系统服务。

没有 Fabric Manager,NVSwitch 是通着电的交换芯片,GPU 无法组成可用的 CUDA Fabric。

在多卡 GPU服务器中(尤其是 A100),在坏卡后,可能导致各类应用对 CUDA 设备编号出现不一致。因此在检查各应用组件的安装状态都是正常后,尝试重启了 Fabric Manager:

bash 复制代码
sudo systemctl restart nvidia-fabricmanager
sudo systemctl status nvidia-fabricmanager

经重启 Fabric Manager后,少了显卡的服务器的CUDA在使用中恢复了正常。

相关推荐
吴佳浩3 小时前
Skill 为什么不同于 Tool?Agent 技能库的自演进与动态加载机制
人工智能·agent·ai编程
骇客野人6 小时前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维
大模型任我行6 小时前
谷歌:“课程学习”融入扩散模型强化学习
人工智能·语言模型·自然语言处理·论文笔记
AIGCmagic社区6 小时前
具身智能专题:机器人也有Scaling Law?智元GE-Act 2.0用3万小时真机数据给出答案
人工智能·aigc·具身智能
Rosanci7 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
比兔代理7 小时前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
明月_清风7 小时前
AI 越来越强,程序员真正的价值到底是什么?
人工智能·后端
m0_466525297 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
火山引擎开发者社区7 小时前
OpenViking:给 Codex 加上长期记忆
人工智能
荆棘鸟智能8 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算