GPU服务器故障诊断

1. GPU日志收集

安装GPU驱动的系统下,任意目录下执行命令:nvidia-bug-report.sh

执行命令后,当前目录下会生成日志压缩包:nvidia-bug-report.log.gz

2. GPU基础状态检测

对于GPU服务器建议客户维持较新的GPU驱动版本、禁用nouveau模块、打开GPU驱动内存常驻模式并配置开机自启动。

对于GPU服务器,建议以下进行以下配置:

  • 维持较新的、正确的GPU驱动版本
  • 禁用nouveau模块
  • 打开GPU驱动内存常驻模式并配置开机自启动

处理GPU服务器故障时,只要涉及服务器关机的操作,均建议对GPU基础状态进行检测,基础状态检测包括:

nouveau模块是否禁用、GPU识别情况、GPU驱动内存常驻模式、GPU 带宽、GPU ECC报错、GPU ERR报错、GPU nvlink状态。

2.1 nouveau 模块禁用检查

Nouveau是由一群开发人员构建的Nvidia显卡的开源驱动程序,会与nvidia官方GPU驱动发生冲突,需要在系统下禁用nouveau模块

# 以下命令没有任何输出表示nouveau模块已经禁用
[[email protected] ~]# lsmod | grep -i nouveau

# 以下输出表示nouveau模块没有禁用
[[email protected] ~]# lsmod | grep -i nouveau
nouveau              1662531  0
mxm_wmi                13021  1 nouveau
wmi                    19086  2 mxm_wmi,nouveau
i2c_algo_bit           13413  1 nouveau
video                  24538  1 nouveau
drm_kms_helper        176920  2 nouveau,vmwgfx
ttm                    99555  2 nouveau,vmwgfx
drm                   397988  6 ttm,drm_kms_helper,nouveau,vmwgfx
i2c_core               63151  5 drm,i2c_piix4,drm_kms_helper,i2c_algo_bit,nouveau

禁用nouveau模块的方法参考如下:

  • CentOS 7:
# 编辑或新建 blacklist-nouveau.conf 文件
[[email protected] ~]# vim /usr/lib/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

# 执行如下命令并重启系统使内核生效
[[email protected] ~]# dracut -force
[[email protected] ~]# shutdown -ry 0

2.2 GPU驱动内存常驻模式

打开GPU驱动内存常驻模式可以减少GPU掉卡、GPU带宽降低、GPU温度监测不到等诸多问题。建议打开GPU驱动内存常驻模式并配置开机自启动。

GPU驱动内存常驻模式检查常用方法:

  • nvidia-smi 输出中Persistence-M状态为on
  • nvidia-but-report.log中,Persistence ModeEnabled

    nvidia-smi 输出:

? nvidia-but-report.log日志:

GPU 00000000:3B:00.0
    Product Name                    : Tesla P40
    Product Brand                   : Tesla
    Display Mode                    : Enabled
    Display Active                  : Disabled
    Persistence Mode                : Enabled

请确保现场服务器:

  • 打开GPU驱动内存常驻模式
  • 配置开机自启动

GPU驱动内存常驻模式开启方法,执行命令:

nvidia-smi -pm 1
或
# 以下命令对较新版本的GPU驱动有效
nvidia-persistenced --persistence-mode

开机自启动配置示例:

# vim /etc/rc.d/rc.local
# 在文件中添加一行
# nvidia-smi -pm 1
# 赋予/etc/rc.d/rc.local文件可执行权限
# chmod +x /etc/rc.d/rc.local
# 重启系统进行验证

2.3 检测GPU是否识别

GPU识别状态检测时,首先要确保lspci命令识别所有GPU,其次确保nvidia-smi 命令识别所有GPU。

  • lspci 检查GPU识别情况

    lspci | grep -i nvidia 命令输出中确保所有GPU识别正常,并且每个GPU末尾标识为(rev a1)。

    输出信息末尾为(rev ff),表示GPU异常。

  # 如下命令表示识别到8个GPU,且末尾标识为(rev a1)的GPU状态正常
  # b5:00.0 GPU末尾标识为(rev ff),表示该GPU状态异常
  ~]# lspci | grep -i nvidia
  3e:00.0 3D controller: NVIDIA Corporation Device 1db8 (rev a1)
  3f:00.0 3D controller: NVIDIA Corporation Device 1db8 (rev a1)
  40:00.0 3D controller: NVIDIA Corporation Device 1db8 (rev a1)
  41:00.0 3D controller: NVIDIA Corporation Device 1db8 (rev ff)
  • nvidia-smi 检查GPU识别情况

    # nvidia-smi
    Thu Dec 26 09:53:57 2019
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.67       Driver Version: 418.67       CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM3...  On   | 00000000:3E:00.0 Off |                    0 |
    | N/A   42C    P0    54W / 350W |      0MiB / 32480MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla V100-SXM3...  On   | 00000000:3F:00.0 Off |                    0 |
    | N/A   40C    P0    48W / 350W |      0MiB / 32480MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   2  Tesla V100-SXM3...  On   | 00000000:40:00.0 Off |                    0 |
    | N/A   40C    P0    52W / 350W |      0MiB / 32480MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   3  Tesla V100-SXM3...  On   | 00000000:41:00.0 Off |                    0 |
    | N/A   43C    P0    54W / 350W |      0MiB / 32480MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+

2.4 GPU带宽检查

需要确保GPU当前带宽与额定带宽一致,一般为x16表示正常。

可以使用lspci 命令或nvidia-smi命令进行GPU带宽检查。

# lspci 命令
额定带宽:lspci -vvd 10de: | grep -i Lnkcap:
当前带宽:lspci -vvd 10de: | grep -i Lnksta:

# nvidia-smi 命令检查
nvidia-smi -q | grep -i -A 2 ‘Link width‘

2.5 GPU ECC计数检查

GPU ECC计数可以通过以下方法进行检查。

如下输出中Pending 的标志为No表示所有ECC报错地址空间已经被屏蔽,报错地址空间后续不会再被软件程序调用,不会再影响程序运行。

Pending :No

Yes 表示有需要被屏蔽的ECC报错地址,需要重启系统或重置GPU使其变为No。

# 使用 -i 参数指定GPU id查询某一块GPU的ECC计数
# nvidia-smi -i <target gpu> -q -d PAGE_RETIREMENT
    ...
    Retired pages
    Single Bit ECC             : 2
    Double Bit ECC             : 0
    Pending                    : No

# 不使用 -i 参数查询所有GPU的ECC计数
# nvidia-smi -q -d PAGE_RETIREMENT

也可通过nvidia-smi | grep -i ‘bit ecc‘ 命令进行查看。

GPU ECC计数请根据公司指标要求进行GPU更换,另需确保有ECC计数的GPU 报错地址空间已经被屏蔽,即Pending :No

2.6 GPU ERR报错检查

GPU运行过程中会出现Fan ERR以及功率ERR报错,可以通过检查nvidia-smi输出中是否包含ERR!报错判断。

# nvidia-smi
Thu Dec 26 09:53:57 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67       Driver Version: 418.67       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM3...  On   | 00000000:3E:00.0 Off |                    0 |
| ERR!  44C     P0   ERR!/ 350W |      0MiB / 32480MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

2.7 GPU序列号查询

# nvidia-smi -q | grep -i serial
    Serial Number                   : 0324018045603
    Serial Number                   : 0324018044864
    Serial Number                   : 0324018027716
    Serial Number                   : 0323918059881

# 可以通过nvidia-smi -q -i id 来检查指定id的GPU序列号
# nvidia-smi -q -i 0 | grep -i serial
    Serial Number                   : 0324018045603

3. GPU故障诊断流程

以下为GPU常见故障检查流程图

3.1 GPU基础状态检查

3.2 lspci GPU不识别

3.3 nvidia-smi GPU不识别

3.4 GPU ERR报错

3.5 GPU ECC报错检查

3.6 GPU带宽检查

3.7 GPU背板无法加电

3.8 GPU驱动版本检查

原文地址:https://blog.51cto.com/zaa47/2469982

时间: 2024-10-16 21:20:40

GPU服务器故障诊断的相关文章

ssh远程登录Jupyter notebook(七月GPU服务器)

本文为博主本人原创,禁止转载! 网上查了好多教程,自己慢慢折腾慢慢琢磨,终于搞出来如何通过ssh远程登录7月VIP的GPU服务器,写个教程给大家分享一下: 首先,我们要知道,从本地登录到我们的GPU服务器,需要经过以下两个步骤: 1.从本地登录到7月的外部服务器. 2.进入外部服务器之后,通过跳板机进入GPU服务器. 而jupyter的相关套件被安装在了GPU服务器里,所以我们要通过本地浏览器打开GPU服务器里的jupyter,需要走两个步骤,即先将GPU的jupyter导入到外部服务器的一个端

GPU服务器运行GAT代码的环境配置

1.使用Xshell 2.3.4.5参照 https://blog.csdn.net/azeyeazeye/article/details/90199915 问题: 1.第5步安装后验证不成功,显示ModuleNotFoundError: No module named 'tensorflow',但是输入pip3 list之后显示已经安装tensorflow-gpu 解决:python3.7版本不匹配,应该使用python3.5,可以创建虚拟环境conda create -n python35

Python实现简单的http服务器程序

主要的需求是这样的,需要调用服务器端的程序获取GPU服务器的信息并且返回给前端显示出来,那么就需要完成一个服务器端的程序,获取服务器的数据之后将数据返回(以JSON格式). 效果如下图: 页面没有内容是因为服务程序还没有启动.下面完成服务器程序: #!/usr/bin/python from bottle import route,run,template import os from bottle import get,post,request import re gpu_info_dict

浪潮服务器通过ipmitool获取mac地址

一.GPU服务器 #配置两个主板集成千兆四个外插PCI万兆网卡# 板载网卡可以使用命令获取到:RAW 0X30 0X21 就可以读取到第一块网卡的MAC,就是以下返回值的后6位. 0c,c4,7a,55,4d,6c. 0x30 0x9F => 黃色圈指出在第一个LAN后有多少LAN Mac, 红色框为第二个LAN mac 获取第一个主板集成千兆网卡 ipmitool -I lanplus -H 10.28.115.11 -U ADMIN -P ADMIN raw 0x30 0x21 获取其他其他

使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 GPU 学习深度学习>系列文章的第二篇,主要介绍了 Tensorflow 的原理,以及如何用最简单的Python代码进行功能实现.本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主. 往期内容: 使用腾讯云 GPU 学习深度学习系列之一:传统机器学

深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点,产生了广泛的应用.DNN具有深层结构.数千万参数需要学习,导致训练非常耗时.GPU有强大的计算能力,适合于加速深度神经网络训练.DNN的单机多GPU数据并行框架是腾讯深度学习平台的一部分,腾讯深度学习平台技术团队实现了数据并行技术加速DNN训练,提供公用算法简化实验过程.对微信语音识别应用,在模型收敛速度和模型性能上都取得了有效提升--相比单GPU 4.6倍加速比,数十亿样本的训练数天收敛,测

从零开始设置用于深度学习的AWS服务器

自己的电脑显卡实在不给力,打算使用AWS的带GPU服务器进行云端计算. 首先到 https://amazonaws-china.com/ 右上角点击sign up注册账号,这里注意需要信用卡认证. 注册成功后需要申请GPU服务器,到 aws.amazon.com/contact-us/ec2-request 选择service limit increase,地区,之后选择服务器类型,在这里我们推荐p2.xlarge,价格适中. 之后选择limit value设置为1. 提交后等待1-2天即可通过

xshell登陆腾讯云服务器

2016-12-11   00:17:36 前段时间在同学的介绍下关注了一下腾讯云:然后里面有学生优惠可以拿到免费的域名和云服务器.所以感兴趣就实验了一下,今天中午抢到了"1元特惠的学生包",里面有免费的域名和云服务器,对linux也有有一些了解了,所以就是着运用xshell来对云服务器进行远程访问. 具体的活动可以参考:http://bbs.qcloud.com/thread-21113-1-1.html. 可以看到云服务器已经运行了.点击其中的登陆就可以访问了:默认为root用户.

【深度学习系列2】Mariana DNN多GPU数据并行框架

[深度学习系列2]Mariana DNN多GPU数据并行框架 本文是腾讯深度学习系列文章的第二篇,聚焦于腾讯深度学习平台Mariana中深度神经网络DNN的多GPU数据并行框架. 深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点[1][2],产生了广泛的应用.DNN具有深层结构.数千万参数需要学习,导致训练非常耗时.GPU有强大的计算能力,适合于加速深度神经网络训练.DNN的单机多GPU数据并行框架是Mariana的一部分,Mariana技术