一种GPU服务器IO资源分配的方法及系统与流程

文档序号:16067511发布日期:2018-11-24 12:49阅读:488来源:国知局

本申请涉及资源分配领域,特别涉及一种gpu服务器io资源分配的方法、系统、gpu服务器及计算机可读存储介质。

背景技术

随着人工智能(artificialintelligence,ai)科学技术的发展及成熟,ai技术已经无处不在的渗透到现代的各个应用场景中。国家目前已将人工智能发展定位为国家发展战略,极力的促进了中国人工智能的发展。

人工智能对于计算处理能力要求较高,而intel传统服务器的处理器已经无法满足对于计算能力要求较高及准确率极高的要求,此时英伟达推出了用于人工智能领域的gpu处理器,这极大的节约了各个涉及人工智能领域公司的投入成本,保证了各个公司可以使用最低廉的价格达到最大化的收益。因为gpu服务器的发展已经成为了一种新的技术方向及趋势。但gpu分为企业级和消费级,企业级显卡对于小公司而言是一笔不小的开销,但消费级显卡同样支持计算能力故采用消费级显卡搭建人工智能硬件环境更加的节约成本,故消费级显卡得到了许多公司的青睐。

然而,由于gpu服务器的bios本身io资源有限,而每张消费级显卡需要使用一定数量的io资源,当连接的消费级显卡数量较多时io资源已无法满足其他pci设备的使用,因此为保证其他pci设备能够正常使用,通常会限制gpu服务器的消费级显卡连接数量,而这使得gpu服务器的性能降低。

因此,如何突破gpu服务器显卡的数量限制是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种gpu服务器io资源分配的方法、系统、gpu服务器及计算机可读存储介质,用于突破gpu服务器显卡的数量限制。

为解决上述技术问题,本申请提供一种gpu服务器io资源分配的方法,该方法包括:

通过post自检对连接于gpu服务器的pci设备进行扫描;

根据扫描到的参数信息判断所述pci设备是否为预设型号的显卡;

若是,则不为所述预设型号的显卡分配io资源。

可选的,不为所述预设型号的显卡分配io资源,包括:

在pci枚举时读取所述预设型号的显卡的io资源需求;

将所述预设型号的显卡的io资源需求设置为零。

可选的,不为所述预设型号的显卡分配io资源,包括:

发送关闭指令至所述预设型号的显卡,以使所述预设型号的显卡的微bios执行所述关闭指令,将所述预设型号的显卡的io资源开关关闭。

可选的,当所述pci设备不为预设型号的显卡时,还包括:

在pci枚举时读取所述pci设备的io资源需求;

根据所述pci设备的io资源需求对所述pci设备进行io资源分配。

本申请还提供一种gpu服务器io资源分配的系统,该系统包括:

扫描模块,用于通过post自检对连接于gpu服务器的pci设备进行扫描;

判断模块,用于根据扫描到的参数信息判断所述pci设备是否为预设型号的显卡;

第一资源分配模块,用于当所述pci设备为所述预设型号的显卡时,不为所述预设型号的显卡的分配io资源。

可选的,所述第一资源分配模块包括:

读取子模块,用于在pci枚举时读取所述预设型号的显卡的io资源需求;

设置子模块,用于将所述预设型号的显卡的io资源需求设置为零。

可选的,所述第一资源分配模块包括:

发送子模块,用于发送关闭指令至所述预设型号的显卡,以使所述预设型号的显卡的微bios执行所述关闭指令,将所述预设型号的显卡的io资源开关关闭。

可选的,还包括:

读取模块,用于当所述pci设备不为预设型号的显卡时,在pci枚举时读取所述pci设备的io资源需求及内存资源需求;

第二资源分配模块,用于根据所述pci设备的io资源需求对所述pci设备进行io资源分配。

本申请还提供一种gpu服务器,该gpu服务器包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述gpu服务器io资源分配的方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述gpu服务器io资源分配的方法的步骤。

本申请所提供gpu服务器io资源分配的方法,包括:通过post自检对连接于gpu服务器的pci设备进行扫描;根据扫描到的参数信息判断pci设备是否为预设型号的显卡;若是,则不为预设型号的显卡分配io资源。

基于现有技术中gpu服务器的bios本身io资源有限,当连接的消费级显卡数量较多时io资源已无法满足其他pci设备的使用,因此会限制gpu服务器的消费级显卡连接数量;而由于将消费级显卡应用于负责人工智能的gpu服务器时,主要利用消费级显卡的计算能力而不是它的图形功能,进而不需要io资源,因此本申请根据扫描到的参数信息判断连接的pci设备是否为预设型号的显卡;若是,则不为其分配io资源,使得消费级显卡不消耗有限gpu服务器的bios本身的io资源,因此不需要限制gpu服务器的消费级显卡连接数量来避免io资源的消耗,突破了gpu服务器显卡的数量限制,进而增加了gpu服务器的性能。本申请同时还提供了一种gpu服务器io资源分配的系统、gpu服务器及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种gpu服务器io资源分配的方法的流程图;

图2为图1所提供的一种gpu服务器io资源分配的方法中s103的一种实际表现方式的流程图;

图3为本申请实施例所提供的一种gpu服务器io资源分配的系统的结构图;

图4为本申请实施例所提供的另一种gpu服务器io资源分配的系统的结构图;

图5为本申请实施例所提供的一种gpu服务器的结构图。

具体实施方式

本申请的核心是提供一种gpu服务器io资源分配的方法、系统、gpu服务器及计算机可读存储介质,用于突破gpu服务器显卡的数量限制。

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

由于人工智能对于计算处理能力要求较高,而intel传统服务器的处理器已经无法满足对于计算能力要求较高及准确率极高的要求,此时英伟达推出了用于人工智能领域的gpu处理器,这极大的节约了各个涉及人工智能领域公司的投入成本,保证了各个公司可以使用最低廉的价格达到最大化的收益。因为gpu服务器的发展已经成为了一种新的技术方向及趋势。但gpu分为企业级和消费级,企业级显卡售价较高,大概在7万元左右,对于小公司而言是一笔不小的开销,但消费级显卡同样支持计算能力,且售价较低,大约在1万元左右,故采用消费级显卡搭建人工智能硬件环境更加的节约成本,故消费级显卡得到了许多公司的青睐。

然而,由于gpu服务器的bios本身io资源有限,通常只有64k大小,而每张消费级显卡需要使用4k的io资源,当连接的消费级显卡数量较多时(理论上最多支持16张消费级显卡)io资源已无法满足其他pci设备的使用,因此为保证其他pci设备能够正常使用,通常会限制gpu服务器的消费级显卡连接数量,而这使得gpu服务器的性能降低。

基于此,本申请提供了一种gpu服务器io资源分配的方法,用于解决上述问题。

请参考图1,图1为本申请实施例所提供的一种gpu服务器io资源分配的方法的流程图。

其具体包括如下步骤:

s101:通过post自检对连接于gpu服务器的pci设备进行扫描;

post自检是指接通gpu服务器的电源后,系统将执行一个自我检查的例行程序,这是bios功能的一部分,通常称为post自检(poweronselftest),本申请通过post自检对连接于gpu服务器的pci设备进行扫描,得到各pci设备的参数信息;

这里提到的pci设备会需要使用io资源进行数据交换,当连接pci设备较少时io资源不存在资源不足的情况,但是当pci设备较多时io资源明显不足无法支持数量较多的pci设备。

s102:根据扫描到的参数信息判断该pci设备是否为预设型号的显卡;

若是,则进入步骤s103;

根据该参数信息判断该pci设备是否为预设型号的显卡,这里提到的预设型号的显卡具体可以包括消费级titanx显卡、消费级titanxp显卡、消费级1080ti显卡中的至少一项;

这里提到的参数信息具体可以为pci设备的id及其版本id;

可选的,当该pci设备不为预设型号的显卡时,还可以包括:

在pci枚举时读取pci设备的io资源需求;

根据pci设备的io资源需求对pci设备进行io资源分配。

s103:不为该预设型号的显卡的分配io资源。

当确定连接的pci设备为预设型号的显卡时,不为其分配io资源,因为io资源对于gpu服务器中的显卡来说是不需要使用的,故将其io资源分配时的参数移除,以满足gpu服务器的正常使用且可以不用限制连接的消费级显卡的数量;

优选的,这里提到的不为该预设型号的显卡的分配io资源,其具体可以为:

发送关闭指令至预设型号的显卡,以使预设型号的显卡的微bios执行关闭指令,将预设型号的显卡的io资源开关关闭。

由于每张显卡中均具有微bios程序,本申请实施例可以发送关闭指令至该预设型号的显卡,以使该显卡中的微bios执行关闭指令,将该预设型号的显卡的io资源开关关闭,这使得在分配资源时系统读取到的io资源需求为零,则不会为其分配io资源,仅根据内存资源需求为其分配对应的内存资源即可。

基于上述技术方案,本申请所提供的一种gpu服务器io资源分配的方法,根据扫描到的参数信息判断连接的pci设备是否为预设型号的显卡;若是,则不为其分配io资源,使得消费级显卡不消耗有限gpu服务器的bios本身的io资源,因此不需要限制gpu服务器的消费级显卡连接数量来避免io资源的消耗,突破了gpu服务器显卡的数量限制,进而增加了gpu服务器的性能。

针对于上一实施例的步骤s103,其中提到的不为该预设型号的显卡的分配io资源,其具体还可以为如图2所示的流程。

请参考图2,图2为图1所提供的一种gpu服务器io资源分配的方法中s103的一种实际表现方式的流程图。

其具体包括以下步骤:

s201:在pci枚举时读取预设型号的显卡的io资源需求;

s202:将预设型号的显卡的io资源需求设置为零。

由于该预设型号的显卡的io资源需求为零,因此在分配资源时不会为其分配io资源。

本申请实施例直接在pci枚举时读取预设型号的显卡的io资源需求,并将其io资源需求设置为零,避免了与显卡进行通信的麻烦,直接在系统中进行操作,过程方便简单快捷。

请参考图3,图3为本申请实施例所提供的一种gpu服务器io资源分配的系统的结构图。

该系统可以包括:

扫描模块100,用于通过post自检对连接于gpu服务器的pci设备进行扫描;

判断模块200,用于根据扫描到的参数信息判断pci设备是否为预设型号的显卡;

第一资源分配模块300,用于当pci设备为预设型号的显卡时,不为预设型号的显卡的分配io资源。

请参考图4,图4为本申请实施例所提供的另一种gpu服务器io资源分配的系统的结构图。

该第一资源分配模块300可以包括:

读取子模块,用于在pci枚举时读取预设型号的显卡的io资源需求;

设置子模块,用于将预设型号的显卡的io资源需求设置为零。

该第一资源分配模块300可以包括:

发送子模块,用于发送关闭指令至预设型号的显卡,以使预设型号的显卡的微bios执行关闭指令,将预设型号的显卡的io资源开关关闭。

该系统还可以包括:

读取模块,用于当pci设备不为预设型号的显卡时,在pci枚举时读取pci设备的io资源需求及内存资源需求;

第二资源分配模块,用于根据pci设备的io资源需求对pci设备进行io资源分配。

以上系统中的各个组成部分可实际应用于以下的实施例中:

扫描模块通过post自检对连接于gpu服务器的pci设备进行扫描;判断模块根据扫描到的参数信息判断pci设备是否为预设型号的显卡;当pci设备不为预设型号的显卡时,读取模块在pci枚举时读取pci设备的io资源需求及内存资源需求;第二资源分配模块根据pci设备的io资源需求对pci设备进行io资源分配;

当pci设备为预设型号的显卡时,读取子模块在pci枚举时读取预设型号的显卡的io资源需求;设置子模块将预设型号的显卡的io资源需求设置为零;或者,发送子模块发送关闭指令至预设型号的显卡,以使预设型号的显卡的微bios执行关闭指令,将预设型号的显卡的io资源开关关闭。

请参考图5,图5为本申请实施例所提供的一种gpu服务器的结构图。

该gpu服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在gpu服务器400上执行存储介质430中的一系列指令操作。

gpu服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1至图2所描述的gpu服务器io资源分配的方法中的步骤由gpu服务器基于该图5所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、gpu服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种gpu服务器io资源分配的方法、系统、gpu服务器及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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