一种GPU的设备信息获取方法及装置与流程

文档序号:17160174发布日期:2019-03-20 00:34阅读:349来源:国知局
一种GPU的设备信息获取方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种gpu的设备信息获取方法及装置。



背景技术:

目前随着ai技术应用越来越广泛,带有gpu设备的服务器产品是不可缺少的重要硬件部分,用于图形、图像处理领域的gpu可以并行处理大量数据,非常适合深度学习的高并行、高本地化数据场景,是目前主流的ai人工智能计算架构。

nvidia的gpu目前在服务器产品中占主导地位,在实际设计中,gpu的数量动辄8个,16个,未来设计可能会更多的数量,针对此状况服务器产品开发过程中对于gpu信息抓取比对暂时没有一个有效直观的工具及方法,依靠人为的进行每个gpu设备的信息比对效率比较低而且出现遗漏错误。而且目前开发过程中已经有出现系统下gpu数量在不同环境下信息不同的异常发生。



技术实现要素:

为了解决现有技术存在的上述技术问题,本申请提供了一种gpu的设备信息获取方法及装置,应用于服务器gpu设备的数量及信息抓取,操作简单,实用性强,能够减少了人工操作及干预的时间。

本申请提供了一种gpu设备的信息获取方法,所述方法包括:

分别从系统层和物理层获取gpu设备数量及gpu的id;

判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同;

判断相同时,分别从所述系统层和所述物理层获取gpu的设备信息。

可选的,若从所述系统层获取的gpu设备数量及gpu的id与从所述物理层获取的gpu设备数量及gpu的id不同,所述方法还包括:

中断进程,并及时的进行错误提示。

可选的,所述gpu的设备信息至少包括以下其中一种:

gpu设备的带宽速率、gpu数量和显卡基本输入输出系统vbios。

可选的,所述分别从所述系统层和所述物理层获取gpu的设备信息后,所述方法还包括:

将从所述系统层和所述物理层获取的所述gpu的设备信息,分别保存到不同的日志文件中。

可选的,所述方法还包括,对所述gpu的id进行排序处理。

本申请实施例还提供了一种gpu设备的信息获取装置,所述装置包括:第一获取模块、判断模块和第二获取模块;

所述第一获取模块,用于分别从系统层和物理层获取gpu设备数量及gpu的id;

所述判断模块,用于判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同;

所述第二获取模块,用于判断相同时,分别从所述系统层和所述物理层获取gpu的设备信息。

可选的,其特征在于,若从所述系统层获取的gpu设备数量及gpu的id与从所述物理层获取的gpu设备数量及gpu的id不同,所述判断模块,还用于:

中断进程,并及时的进行错误提示。

可选的,其特征在于,所述gpu的设备信息至少包括以下其中一种:

gpu设备的带宽速率、gpu数量和显卡基本输入输出系统vbios。

可选的,所述装置还包括:存储模块;

所述存储模块,用于将从所述系统层和所述物理层获取的所述gpu的设备信息,分别保存到不同的日志文件中。

可选的,所述第一获取模块和所述第二获取模块,还用于对所述gpu的id进行排序处理。

与现有技术相比,本发明至少具有以下优点:

本申请提供了一种gpu设备的信息获取方法,所述方法包括:分别从系统层和物理层获取gpu设备数量及gpu的id;判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同;若相同,分别从所述系统层和所述物理层获取gpu信息。利用本申请提供了一种gpu设备的信息获取方法,操作简单,实用性强,能够减少了人工操作及干预的时间。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例一提供的一种gpu设备的信息获取方法的流程图;

图2为本申请实施例二提供的一种gpu设备的信息获取装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

本申请实施例一提供了一种gpu设备的信息获取方法,下面结合附图进行具体说明。

参见图1,该图为本申请实施例一提供的一种gpu设备的信息获取方法的流程图。

所述方法包括以下步骤:

s101:分别从系统层和物理层获取gpu设备数量及gpu的id。

s102:判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同。

s103:判断相同时,分别从所述系统层和所述物理层获取gpu的设备信息。

下面具体介绍本申请实施例所述方法的实现过程:

1.gpu设备数量及id的获取

分别通过nvidiadriver中nvidia-smi工具从系统层获取服务器端识别到的gpu设备数量及id,物理层面通过lspci获取服务器识别到的gpu设备数量及busid,并将两者进行比对判断.

如果两次获取到的设备信息不同会中断程序进程,并及时的进行错误信息输出提醒开发测试人员,需要及时的查看问题所在.如果信息比对相同,程序继续向下执行.

#!/bin/bash

cur_dir=`dirname$0`

rm-rf$cur_dir/gpu_pci_info.log$cur_dir/gpu_smi_info.log#删除脚本生成的历史记录日志

nvidia-smi-a|grep"productname"-b1|grepgpu|cut-d":"-f2-$nf|tr[a-z][a-z]>$cur_dir/smi_list_tmp#使用驱动nvidia-smi工具从系统层获取gpu设备的id

lspci|grepnvidia|grep"vgacompatiblecontroller"|awk'{print$1}'|tr[a-z][a-z]>$cur_dir/pci_list_tmp#获取gpu设备的busid号

cat$cur_dir/smi_list_tmp|sort>$cur_dir/smi_list

cat$cur_dir/pci_list_tmp|sort>$cur_dir/pci_list#分别对上面部分获取到的id号进行排序处理

diff$cur_dir/smi_list$cur_dir/pci_list

if[!$?-eq0];then

echo"gpudevicequalityisdifferentinnvidia-smiandpcidevice,pleasecheckit!!!!!"

exit1

fi#比对两种方式获取到的gpuid设备数量及地址是否相同,并作出相对应的响应操作

2.gpu设备信息的获取

此部分仍旧是通过两种途径分别取抓取gpu设备信息,分别是通过nvidiadriver中nvidia-smi工具从系统层和lspci从物理层上获取.最终将两种途径获取到gpu设备信息分别保存到不同的日志记录中,方便后续的查看及确认.

cnt=`cat$cur_dir/smi_list|wc-l`#统计gpu设备数量

for((i=0;i<"$cnt";i++))

do

smi_list_all[$i]=`cat$cur_dir/smi_list|sed-n$[i+1]p`

pci_list_all[$i]=`cat$cur_dir/pci_list|sed-n$[i+1]p`

done

#将两种途径获取到的id信息分别保存到不同的数组中

for((i=0;i<"$cnt";i++))

do

lspci-s${pci_list_all[$i]}-vvvv|sed-n1p>>$cur_dir/gpu_pci_info.log

lspci-s${pci_list_all[$i]}-vvvv|grep-e-w"lnkcap|lnksta">>$cur_dir/gpu_pci_info.log

done

#lspci从物理层上获取每一个gpu设备的速率及带宽信息并输出保存到gpu_pci_info.log日志中

nvidia-smi-a>$cur_dir/gpu_tmp

for((i=0;i<"$cnt";i++))

do

cat$cur_dir/gpu_tmp|grep-i${pci_list_all[$i]}-a20|grep-e"${pci_list_all[$i]}|productname|vbios">>$cur_dir/gpu_smi_info.log

done

#nvidia-smi工具从系统层分别获取每一个gpu设备的设备pn及vbios软体信息,并输出到gpu_smi_info.log日志中

rm-rf$cur_dir/smi_list_tmp$cur_dir/pci_list_tmp$cur_dir/gpu_tmp需要注意的是,所述服务器测试平台,可以为intelx86处理器,可正常开机并安装rhel7.464bitos。将脚本程序gpu_check.sh拷贝到系统任意目录下,运行“shgpu_check.sh”执行测试程序脚本。注意屏幕输出是否存在”gpudevicequalityisdifferentinnvidia-smiandpcidevice,pleasecheckit!”错误提示,如果存在需要进行分析检查。确认测试结果日志gpu_pci_info.log/gpu_smi_info.log,是否与实际的gpu数量及设备信息相符。

本申请实施例提供了一种gpu设备的信息获取方法,所述方法包括:分别从系统层和物理层获取gpu设备数量及gpu的id;判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同;若相同,分别从所述系统层和所述物理层获取gpu信息。利用本申请提供了一种gpu设备的信息获取方法,操作简单,实用性强,能够减少了人工操作及干预的时间。

实施例二:

基于上述实施例提供的gpu设备的信息获取方法,本申请实施例二还提供了一种gpu设备的信息获取设备,下面结合附图进行具体说明。

参见图2,该图为本申请实施例二提供的一种gpu设备的信息获取设备的示意图。

所述装置包括:第一获取模块201、判断模块202和第二获取模块203。

所述第一获取模块201,用于分别从系统层和物理层获取gpu设备数量及gpu的id。

所述判断模块202,用于判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同。

若从所述系统层获取的gpu设备数量及gpu的id与从所述物理层获取的gpu设备数量及gpu的id不同,所述判断模块202,还用于:

中断进程,并及时的进行错误提示。

所述第二获取模块203,用于判断相同时,分别从所述系统层和所述物理层获取gpu的设备信息。

所述gpu的设备信息至少包括以下其中一种:

gpu设备的带宽速率、gpu数量和显卡基本输入输出系统vbios。

可选的,所述装置还包括:存储模块。

所述存储模块,用于将从所述系统层和所述物理层获取的所述gpu的设备信息,分别保存到不同的日志文件中。

所述第一获取模块201和所述第二获取模块203,还用于对所述gpu的id进行排序处理。

本申请实施例提供了一种gpu设备的信息获取装置,所述装置利用第一获取模块分别从系统层和物理层获取gpu设备数量及gpu的id;利用判断模块判断从系统层获取的gpu设备数量及gpu的id与从物理层获取的gpu设备数量及gpu的id是否相同;若相同,利用第二获取模块分别从所述系统层和所述物理层获取gpu信息。利用本申请提供了一种gpu设备的信息获取装置,操作简单,实用性强,能够减少了人工操作及干预的时间。

上述实施例中,对于各个实施例的描写都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1