服务器读取GPU的方法及装置与流程

文档序号:20838562发布日期:2020-05-22 17:11阅读:686来源:国知局
服务器读取GPU的方法及装置与流程

本发明涉及服务器技术领域,具体来说,涉及一种服务器读取gpu的方法及装置。



背景技术:

当前通过smbusaccess方式获得图形处理器信息有限,只可以获得图形处理的温度、设备识别码、厂商识别码、子设备识别码、子厂商识别码。bios(basicinputoutputsystem,基本输入输出系统)通过pcie协议方式,只能获取到图形处理器的设备识别码、厂商识别码、子设备识别码、子厂商识别码、类型、型号、链接速率、链接宽度。

现有技术是通过os系统安装图形处理器的驱动,通过smbus带内的方式可以获得图形处理器的详细信息,但是只能以命令行形式大量的返回呈现。

现有技术中gpu的地址是固定的,而在硬件设计上要实现多gpu同时使用,就需要将gpu设备放到不同的i2c通道上,或者相同的i2c通道芯片进行扩展区分,那么硬件上的位置信息是固定的,必然会有相关的丝印显示,bmc可以通过smbusaccess的方式获取每一颗gpu的i2c通道的位置信息,与丝印做对应。但是只是用这种方式是无法获取gpu的所有信息的。

bios对gpu的识别,是按照pcie接口的顺序来识别,不会因为硬件位置有完全对应的关系,而本身对应关系在不同pcie线缆链接方式的变化中会有不确定性。

smbus带内的方式不够便捷,显示的信息只能通过命令行返回大量的数据无法快速定位到想要的信息,无法直观的对应gpu的实时状态信息进行监控显示,而一旦有不满配的gpu卡出现,在系统内gpu显示的顺序就会跟丝印顺序有差别。



技术实现要素:

针对相关技术中的上述问题,本发明提出一种服务器读取gpu的方法及装置,能够直观的显示对应丝印位置下完整的gpu信息。

本发明的技术方案是这样实现的:

根据本发明的一个方面,提供了一种服务器读取gpu的方法,其特征在于,包括:

bios将识别到的pcie设备的第一部分信息同步至bmc;

bmc通过bios同步的第一部分信息判断pcie设备是否为gpu,

当判断结果为是时,bmc将第一部分信息与相应的gpu的硬件位置进行对应,以定位至相应的gpu并读取相应的gpu的第二部分信息;

整合并显示第一部分信息和第二部分信息。

根据本发明的实施例,bmc将第一部分信息与相应的gpu的硬件位置进行对应,以定位至相应的gpu包括:bmc根据pcie与硬件位置的对应关系,根据bios识别到的pcie设备的第一部分信息进行匹配,以获得pcie设备的硬件位置。

根据本发明的实施例,读取第二部分信息包括:通过i2c通道以oob的方式读取相应的gpu内部的第二部分信息。

根据本发明的实施例,服务器读取gpu的方法还包括:在服务器每次开机时,更新gpu的固件版本信息与序列号;在gpu每次上电开机时,重新识别gpu的硬件位置。

根据本发明的实施例,第一部分信息包括:厂商信息、类型、型号、链接速率、链接宽度中的至少一种;第二部分信息包括:固件版本信息、制作时间、序列号、功耗、最大工作温度中的至少一种。

根据本发明的另一方面,提供了一种服务器读取gpu的装置,包括:

bios模块,用于识别pcie设备的第一部分信息并将第一部分信息同步至bmc,

bmc,用于通过bios同步的第一部分信息判断pcie设备是否为gpu,

当判断结果为是时,bmc将第一部分信息与相应的gpu的pcie接口位置进行对应,bmc定位至相应的gpu并读取相应的gpu的第二部分信息;

显示模块,用于显示bmc整合后的第一部分信息和第二部分信息。

根据本发明的实施例,bmc根据pcie与硬件位置的对应关系,根据bios识别到的pcie设备的第一部分信息进行匹配,以获得pcie设备的硬件位置。

根据本发明的实施例,bmc通过i2c通道以oob的方式读取相应的gpu内部的第二部分信息。

根据本发明的实施例,bmc还用于:在服务器每次开机时,更新gpu的固件版本信息与序列号;在gpu每次上电开机时,重新识别gpu的硬件位置。

根据本发明的实施例,第一部分信息包括:厂商信息、类型、型号、链接速率、链接宽度中的至少一种;第二部分信息包括:固件版本信息、制作时间、序列号、功耗、最大工作温度中的至少一种。

本发明的上述技术方案,使用bmc作为对gpu完整信息的呈现,bios可以获得gpu的信息,其中bmc可以将bios获取的部分gpu信息,进行整事,并更直观的将gpu实际的硬件位置(例如硬件丝印位置)与gpu信息做对应,呈现给客户。因此,当运维人员或者用户想去查看硬件丝印上gpu的型号时候,可以直观的通过bmc的web页面去监控,大大提高了gpu信息显示上的完整性,降低了多种操作去查看gpu信息的技术成本和时间成本。

附图说明

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

图1是根据本发明实施例的服务器读取gpu的方法的流程图;

图2是根据本发明具体实施例的服务器读取gpu的方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

图1是根据本发明实施例的服务器读取gpu的方法的流程图。如图1所示,本发明的服务器读取gpu的方法可以包括以下步骤:

s11,bios将识别到的pcie设备的第一部分信息同步至bmc。在一个实施例中,第一部分信息包括:厂商信息、类型、型号、链接速率、链接宽度中的至少一种。

s12,bmc通过bios同步的第一部分信息判断pcie设备是否为gpu。

s13,当判断结果为是时,所述bmc将所述第一部分信息与相应的gpu的硬件位置进行对应,以定位至相应的gpu并读取相应的gpu的第二部分信息。

在一个实施例中,第二部分信息包括:固件版本信息、制作时间、序列号、功耗、最大工作温度中的至少一种。在一个实施例中,bmc通过i2c通道定位至相应的gpu。在一个实施例中,bmc通过oob(outofband,带外数据)的方式读取相应的gpu内部的第二部分信息。

s14,整合并显示第一部分信息和第二部分信息,例如显示在web端。

本发明的上述技术方案,使用bmc作为对gpu完整信息的呈现,bios可以获得gpu的信息,其中bmc可以将bios获取的部分gpu信息,进行整事,并更直观的将gpu实际的硬件位置(例如硬件丝印位置)与gpu信息做对应,呈现给客户。因此,当运维人员或者用户想去查看硬件丝印上gpu的型号时候,可以直观的通过bmc的web页面去监控,大大提高了gpu信息显示上的完整性,降低了多种操作去查看gpu信息的技术成本和时间成本。

在一些实施例中,可以在服务器每次开机时,更新gpu的固件版本信息与序列号;在gpu每次上电开机时,重新识别gpu的硬件位置。

图2是根据本发明具体实施例的服务器读取gpu的方法的流程图。如图2所示,在本实施例中,本发明使用bmc作为对gpu完整信息的呈现。上电开机后,bmc通过smbus方式识别硬件槽位上是否插放gpu设备,确定gpu在硬件上的位置。在bios完成设备初始化后,会抓取所有pcie设备的厂商信息、类型、型号、链接速率、链接宽度信息,同时bios根据预先定义的ipmisugonoem命令格式发给bmc。bmc预先根据硬件设计构建pcie与硬件丝印的对应关系表,根据bios识别到pcie设备bus/device/function信息进行逐一的匹配,获得所有pcie设备所在硬件上位置信息,根据baseclass、subclass确定pcie设备中的gpu设备。结合smbus识别结果、pcie识别结果,可以确定gpu的硬件链路信息。循环监控,根据硬件链路信息循环打开硬件的i2cbus通道,通过oob的方式读取gpu更加完善的信息,比如:固件版本信息、制作时间、序列号、功耗、最大工作温度等等,结合这两部分信息进行整合,转换成中英文呈现到web界面上。

另外,在每次开机时候,都会去更新一次gpu的固件版本信息与序列号。gpu设备本身不支持热插拔,更换gpu设备需要进行断电操作,更换设备后,上电的第一次开机,会进行gpu的重新识别。重新进行上述识别过程,因此即使更换了不同型号的gpu,gpu插放位置发生改变,都不会影响gpu的显示,可以保证gpu信息的正确完整。

更具体的,参考图2所示,bmc接收识别到第一次开机后,开始识别gpu实际在硬件上的pcie接口的位置,并且pcie的bus/device/function记录,与硬件丝印信息一一对应。当bios在每次开机过程中识别到pcie设备的信息时候,使用ipmioem命令在bmc与bios之间进行数据的交互,将获取的信息同步到bmc端。bmc端通过bios识别的信息,通过baseclass、subclass可以确定是否是gpu设备,并且通过bus/device/function与实际的硬件上pcie接口位置进行对应,根据之前记录的位置信息,切换i2c通道去定位到每个gpu设备,通过oob的方式读取gpu内部的信息,显示在web端。

继续参考图2所示,每次服务器的开机或者重启,bios都会识别pcie设备所在pcie链路的bus/device/function信息,同时可以根据pcie的标准协议,获取pcie设备的baseclass/subclass信息,用于确定pcie设备的类型。根据ipmisugonoemcmd,将pcie识别信息传给bmc。bmc预先会根据服务器的硬件设计,构建整体的pcie与硬件丝印的对应关系,通过bios发送的busnum、devnum、funnum,可以通过循环对应表的数据,获得pcie接口的位置信息。根据baseclass、subclass判断pcie设备是否是gpu设备。当识别到gpu设备存在后,根据硬件丝印位置,可以确定gpu所在硬件的i2c链路信息,通过oob的方式与gpu实现交互,获得gpu的详细信息。将所有信息进行整合,显示在web端,看到gpu详尽的信息。

综上所述,本发明提供的方法,bmc通过i2c的方式可以获得gpu在硬件上直观的丝印位置,而bios可以获得gpu的部分信息,bmc可以将bios目前可获取的gpu信息,进行再加工,再完善,更直观的将gpu实际在硬件上的位置与gpu信息做对应,呈现给客户。

当运维人员或者用户想去查看硬件丝印上gpu的型号时候,可以直观的通过bmc的web页面去监控,大大提高了gpu信息显示上的完整性,降低了多种操作去查看gpu信息的技术成本和时间成本。同时gpu的温度、功耗的实时信息也可以被监控,通过风扇及时的控制散热,提高了gpu的使用持续性。同时gpu的温度、功耗的实时信息也可以被监控,通过风扇及时的控制散热,提高了gpu的使用持续性。

根据本发明的实施例,还提供了一种服务器读取gpu的装置,包括:

bmc,用于识别并记录各个gpu的pcie接口位置;

bios模块,用于识别pcie设备的第一部分信息并将第一部分信息同步至bmc,

其中,bmc通过bios同步的第一部分信息判断pcie设备是否为gpu,

当判断结果为是时,bmc将第一部分信息与相应的gpu的pcie接口位置进行对应,bmc定位至相应的gpu并读取相应的gpu的第二部分信息;

显示模块,用于显示bmc整合后的第一部分信息和第二部分信息。

根据本发明的实施例,bmc通过i2c通道定位至相应的gpu。

根据本发明的实施例,bmc通过oob的方式读取相应的gpu内部的第二部分信息。

根据本发明的实施例,bmc还用于:在服务器每次开机时,更新gpu的固件版本信息与序列号;在gpu每次上电开机时,重新识别gpu的硬件位置。

根据本发明的实施例,第一部分信息包括:链接速度和链接带宽中的至少一种;

第二部分信息包括:固件版本信息、制作时间、序列号、功耗和最大工作温度中的至少一种。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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