GPU写请求数据的延迟控制方法、装置以及云计算系统与流程

文档序号:12786297阅读:552来源:国知局
GPU写请求数据的延迟控制方法、装置以及云计算系统与流程

本发明涉及云计算技术领域,尤其涉及一种GPU写请求数据的延迟控制方法、装置以及云计算系统。



背景技术:

云计算(Cloud Computing)是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡、热备份冗余等传统计算机和网络技术发展融合的产物。通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似,能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。目前,GPU(Graphics Processing Unit,图形处理器)已经发展成为了并行度高、多线程、计算快捷及内存带宽大的高性能通用处理器。GPU中不同层次存储结构具有不同的资源容量和访问延迟等特性。在云计算系统中,GPU与CPU(Central Processing Unit,中央处理器)协同计算,数据频繁地通过PCI-E(PCI Express)总线从主机内存拷贝到GPU内存,大量小数据的写入中断请求消耗了大量的IO(Input Output,输入、输出)资源,极大降低了系统的总体IO性能,导致GPU得不到足够的数据从而计算能力不能被最大化利用。



技术实现要素:

有鉴于此,本发明要解决的一个技术问题是一种GPU写请求数据的延迟控制方法、装置以及云计算系统。

一种图形处理器GPU写请求数据的延迟控制方法,包括:接收到对于GPU内存的写请求数据;在主机侧对所述写请求数据进行缓存;计算所述GPU的延迟请求时间;当到达延迟发送时间点时,将在 所述延迟请求时间内与所述GPU对应的写请求数据进行合并处理,并写入所述GPU的内存。

根据本发明的一个实施例,进一步的,所述接收到对于GPU内存的写请求数据、在主机侧对所述写请求数据进行缓存包括:设置多个请求队列;其中,所述多个请求队列与多个GPU为一一对应设置;接收到应用程序的写请求数据,确定此写请求数据请求写入的目的GPU,将此写请求数据放入与所述目的GPU相对应的请求队列中。

根据本发明的一个实施例,进一步的,所述计算所述GPU的延迟请求时间包括:获取各个GPU的资源使用数据,基于所述资源使用数据计算此GPU的空闲内存;其中,所述资源使用数据包括:GPU的流处理器的实时利用率、内存空闲率;计算GPU的延迟系数以及主机侧对GPU的延迟请求时间。

根据本发明的一个实施例,进一步的,计算GPU的空闲内存的公式为:

Mi=M*ui

其中,Mi为第i个GPU的空闲内存,M为第i个GPU的固定内存,ui为第i个GPU的内存空闲率。

根据本发明的一个实施例,进一步的,计算GPU的延迟系数的公式为:

计算主机侧对GPU的延迟请求时间的公式为:

Ti=di*T;

其中,di为第i个GPU的延迟系数,Ti为第i个GPU的延迟请求时间,Gi为第i个GPU的流处理器的实时利用率,T为常量,Gj为第j个GPU的流处理器的实时利用率,n为多个GPU的数量。

根据本发明的一个实施例,进一步的,所述当到达延迟发送时间点时、将在所述延迟请求时间内与所述GPU对应的写请求数据进行合并处理、并写入所述GPU的内存包括:根据各个GPU的延迟请求时间进 行排序;当到达一个GPU的延迟发送时间点时,将与此GPU对应的请求队列中在所述延迟请求时间内的写请求数据进行合并,形成请求写入数据,并将所述请求写入数据写入此GPU内存。

根据本发明的一个实施例,进一步的,包括:判断所述请求写入数据是否大于其对应的GPU的空闲内存,如果是,则将所述请求写入数据超出其对应的GPU的空闲内存的数据保留在请求队列中。

一种GPU写请求数据的延迟控制装置,包括:数据缓存模块,用于接收到对于GPU内存的写请求数据,在主机侧对所述写请求数据进行缓存;延迟计算模块,用于计算所述GPU的延迟请求时间;数据合并模块,用于当到达延迟发送时间点时,将在所述延迟请求时间内与所述GPU对应的写请求数据进行合并处理,并写入所述GPU的内存。

根据本发明的一个实施例,进一步的,所述数据缓存模块,还用于设置多个请求队列;其中,所述多个请求队列与多个GPU为一一对应设置;接收到应用程序的写请求数据,确定此写请求数据请求写入的目的GPU,将此写请求数据放入与所述目的GPU相对应的请求队列中。

根据本发明的一个实施例,进一步的,所述延迟计算模块,用于获取各个GPU的资源使用数据,基于所述资源使用数据计算此GPU的空闲内存;其中,所述资源使用数据包括:GPU的流处理器的实时利用率、内存空闲率;计算GPU的延迟系数以及主机侧对GPU的延迟请求时间。

根据本发明的一个实施例,进一步的,所述延迟计算模块计算GPU的空闲内存的公式为:

Mi=M*ui

其中,Mi为第i个GPU的空闲内存,M为第i个GPU的固定内存,ui为第i个GPU的内存空闲率。

根据本发明的一个实施例,进一步的,所述延迟计算模块计算GPU的延迟系数的公式为:

所述延迟计算模块计算主机侧对GPU的延迟请求时间的公式为:

Ti=di*T;

其中,di为第i个GPU的延迟系数,Ti为第i个GPU的延迟请求时间,Gi为第i个GPU的流处理器的实时利用率,T为常量,Gj为第j个GPU的流处理器的实时利用率,n为所述多个GPU的数量。

根据本发明的一个实施例,进一步的,所述数据合并模块,用于根据各个GPU的延迟请求时间进行排序;当到达一个GPU的延迟发送时间点时,将与此GPU对应的请求队列中在所述延迟请求时间内的写请求数据进行合并,形成请求写入数据,并将所述请求写入数据写入此GPU内存。

根据本发明的一个实施例,进一步的,所述数据合并模块,用于判断所述请求写入数据是否大于其对应的GPU的空闲内存,如果是,则将所述请求写入数据超出其对应的GPU的空闲内存的数据保留在请求队列中。

一种云计算系统,包括如上所述的GPU写请求数据的延迟控制装置。

本发明的GPU写请求数据的延迟控制方法、装置以及云计算系统,在主机侧对GPU内存写入请求进行基于策略的延迟控制,根据GPU的空闲情况采用可调的延迟控制,合并在延迟时间内的多个写存请求进行批量写入,可有效避免小数据频繁传输导致的IO资源大量消耗。

附图说明

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

图1为根据本发明的GPU写请求数据的延迟控制方法的一个实施 例的流程示意图;

图2为根据本发明的GPU写请求数据的延迟控制方法的另一个实施例的流程示意图;

图3为在云计算系统中实施GPU写请求数据的延迟控制方法的示意图;

图4为根据本发明的GPU写请求数据的延迟控制装置的一个实施例的模块示意图。

具体实施方式

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

图1为根据本发明的GPU写请求数据的延迟控制方法的一个实施例的流程示意图,如图1所示:

步骤101,接收到对于GPU内存的写请求数据。

步骤102,在主机侧对写请求数据进行缓存。

步骤103,计算GPU的延迟请求时间。

步骤104,当到达延迟发送时间点时,将在延迟请求时间内与GPU对应的写请求数据进行合并处理,并写入GPU的内存。

上述实施例中的GPU写请求数据的延迟控制方法,解决了GPU与CPU协同计算时大量小数据写入GPU内存,产生频繁的数据中断请求的问题。

在云计算系统中具有多个GPU,设置多个请求队列与多个GPU为一一对应。接收到应用程序的写请求数据,确定此写请求数据请求写入的目的GPU,将此写请求数据放入与目的GPU相对应的请求队列 中。

获取系统中各个GPU的资源使用数据,基于资源使用数据计算此GPU的空闲内存。资源使用数据包括:GPU的流处理器的实时利用率、内存空闲率等,并计算GPU的延迟系数以及主机侧对GPU的延迟请求时间。

计算GPU的空闲内存的公式为:

Mi=M*ui (1);

Mi为第i个GPU的空闲内存,M为第i个GPU的固定内存,ui为第i个GPU的内存空闲率。

根据空闲内存计算GPU的延迟系数的公式为:

计算主机侧对GPU的延迟请求时间的公式为:

Ti=di*T (3);

di为第i个GPU的延迟系数,Ti为第i个GPU的延迟请求时间,Gi为第i个GPU的流处理器的实时利用率,能够直接将图形数据流映射到流处理器上进行处理,T为常量,全部的GPU,即云计算系统中具有的多个GPU的延迟请求时间的和为T,此值可以根据具体的系统以及应用程序进行设置。Gj为第j个GPU的流处理器的实时利用率,n为多个GPU的数量。

根据各个GPU的延迟请求时间进行排序;当到达一个GPU的延迟发送时间点时,将与此GPU对应的请求队列中在延迟请求时间内的写请求数据进行合并,形成请求写入数据,并将请求写入数据写入此GPU内存。

判断请求写入数据是否大于其对应的GPU的空闲内存,如果是,则将请求写入数据超出其对应的GPU的空闲内存的数据保留在请求队列中。

上述实施例中的GPU写请求数据的延迟控制方法,首先通过分类各应用程序到各GPU的写请求,并在主机侧对GPU内存的写请求进行基 于策略的延迟控制,然后合并延迟内的多个写存请求进行批量处理,使得系统的IO性能有明显提高。

图2为根据本发明的GPU写请求数据的延迟控制方法的另一个实施例的流程示意图,如图2所示:

步骤201,获取GPUi流处理器,即多个GPU中的第i个GPU流处理器的实时利用率Gi、内存空闲率ui;按公式(1)计算GPUi的空闲内存Mi,M为GPU的固定内存。

步骤202,根据利用率Gi,按式(2)、(3)计算GPUi的延迟系数di,及主机侧对GPUi的延迟请求时间Ti,T为常量。

步骤203,按各GPU上运行的程序分类写请求并存入请求队列,并根据预设的分配比例,计算各卡上各程序的可用内存。

步骤204,按第202步骤计算的延迟时间排序GPU,顺序到达第一个延迟点时,将该点对应的GPU分类后的写入请求合并,并写入其GPU内存,以此类推。

步骤205,判断合并写入的内存是否超出GPU的空闲内存,如果是,则进入步骤206。

步骤206,若合并写入的内存超出GPU的空闲内存Mi,超出内存缓存在主机侧,其它写入GPU内存,并通知上层应用。重复步骤201-205。

如图3所示,在主机侧对GPU内存写入请求进行基于策略的延迟控制,根据GPU的空闲情况采用可调的延迟控制,合并在这个延迟时间内的多个写存请求进行批量写入。

针对主机系统上可能存在的多个GPU计算卡GPU1、GPU2……GPUn,以及分布在各计算卡上的处理程序应用1、应用2……应用n,对主机侧的请求进行分类。按各GPU卡上运行的应用程序分类写请求,并加入到装置中对应GPU的“请求队列”,如GPU1请求队列、GPU2请求队列……GPUn请求队列。根据GPU空闲情况,采用可调的延迟控制策略,计算各GPU的延迟点,顺序到达一个延迟点时,写入对应GPU卡延迟时间内的“合并请求”到GPU内存。

如图4所示,本发明提供一种GPU写请求数据的延迟控制装置。数据缓存模块41接收到对于GPU内存的写请求数据,在主机侧对写请求数据进行缓存。延迟计算模块42计算GPU的延迟请求时间;数据合并模块43当到达延迟发送时间点时,将在延迟请求时间内与GPU对应的写请求数据进行合并处理,并写入GPU的内存。

数据缓存模块41设置多个请求队列,多个请求队列与多个GPU为一一对应设置。接收到应用程序的写请求数据,确定此写请求数据请求写入的目的GPU,将此写请求数据放入与目的GPU相对应的请求队列中。

延迟计算模块42获取各个GPU的资源使用数据,基于资源使用数据计算此GPU的空闲内存。资源使用数据包括:GPU的流处理器的实时利用率、内存空闲率;计算GPU的延迟系数以及主机侧对GPU的延迟请求时间。

延迟计算模块42计算GPU的空闲内存的公式为:

Mi=M*ui

Mi为第i个GPU的空闲内存,M为第i个GPU的固定内存,ui为第i个GPU的内存空闲率。

延迟计算模块42根据空闲内存计算GPU的延迟系数的公式为:

延迟计算模块42计算主机侧对GPU的延迟请求时间的公式为:

Ti=di*T;

di为第i个GPU的延迟系数,Ti为第i个GPU的延迟请求时间,Gi为第i个GPU的流处理器的实时利用率,T为常量。

数据合并模块43根据各个GPU的延迟请求时间进行排序。当到达一个GPU的延迟发送时间点时,将与此GPU对应的请求队列中在延迟请求时间内的写请求数据进行合并,形成请求写入数据,并将请求写入数据写入此GPU内存。

数据合并模块43判断请求写入数据是否大于其对应的GPU的空闲 内存,如果是,则将请求写入数据超出其对应的GPU的空闲内存的数据保留在请求队列中。

本发明提供一种云计算系统,包括如上的GPU写请求数据的延迟控制装置。

上述实施例提供的GPU写请求数据的延迟控制方法、装置以及云计算系统,在主机侧对GPU内存写入请求进行基于策略的延迟控制,根据GPU的空闲情况采用可调的延迟控制,合并在延迟时间内的多个写存请求进行批量写入,可有效避免小数据频繁传输导致的IO资源大量消耗,能够提升IO性能,进一步发挥协同计算中GPU的计算能力。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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