一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种计算单元传输与负载的调控系统及调控方法与流程

2022-03-05 10:33:35 来源:中国专利 TAG:


1.本文属于芯片技术领域,具体涉及一种计算单元传输与负载的调控系统及调控方法。


背景技术:

2.gpu的应用场景自gpu诞生就在不断演进,早期的gpu被用来加载和渲染2d图形计算,发展至今gpu还可用于视频处理,自然语言处理,高性能计算,海量数据处理等,应用于互联网、工业、金融、政务、体育、医疗、科研、自动驾驶等多个领域,促使gpu应用迅猛发展的背后推手,除了人们生产生活的客观需求外,还有三个关键因素的发展,它们分别是算法、算力和数据。
3.算法和数据体现了世界万物的内在属性,因此gpu算法和模型也呈现不同特点,有的算法模型很小,参数很少,有的算法模型很大,比如openai在2019年发布了gpt-2,它拥有15亿个参数,这是第一个具有超过10亿个参数的非线性规划模型。2020年,openai在全球发布了gpt-3,其参数高达1750亿。算力方面,当前主流gpu的计算能力已达到每秒钟处理百万亿次操作的级别,甚至更高。
4.gpu的价值就是利用算力,帮助cpu加速计算,满足场景应用的需要。从每一次加速计算的微观过程看,数据由cpu通过pcie协议传输给gpu,待gpu计算完后再将结果传输给cpu,这一过程可以简化为传输-》计算-》传输,传输和计算是gpu运行两个最重要的步骤,要满足计算的时间要求,就需要在向gpu传输数据和gpu处理数据之间有很好的配合,gpu既要有强大的计算能力,又要有足够的数据吞吐能力,来使强大算力得以发挥,这就带来传输速度和处理速度匹配的问题。
5.gpu会面对多种应用场景,甚至会同时面对,不同应用场景的算法和数据量也不同,有的算法计算量大数据量小,有的则反之,这意味着不同的应用对于传输和计算资源的需求比例是大相径庭的,对于gpu来说,如何基于固定的硬件配置来灵活满足不同场景的需求,是gpu芯片在未来数据量和计算量持续高速发展过程中,不可避免面临的问题。


技术实现要素:

6.针对现有技术的上述问题,本文的目的在于,提供一种计算单元传输与负载的调控系统及调控方法,能够帮助芯片优化和提升系统性能。
7.具体地,本文提供一种计算单元传输与负载的调控系统,所述系统包括:上行设备和与所述上行设备通信的多个计算单元,其中:
8.所述计算单元用于采集所述计算单元与所述上行设备之间的传输占用率和负载率,并将采集到的传输占用率和负载率传输至所述上行设备;
9.所述上行设备中设置有计算单元管理模块,所述计算单元管理模块中包括pid控制器,所述pid控制器根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,根据各个计算单元的调度策略对各
个计算单元进行调控。
10.在一个可选的实施例中,所述调度策略包括调整计算单元的计算精度、调整计算单元的工作参数和调整计算单元关联的计算子单元的数量。
11.在一个可选的实施例中,所述调度策略为调整计算单元的计算精度时,所述pid控制器用于通过目标计算单元的本地软件对目标计算单元的计算精度进行调整。
12.在一个可选的实施例中,所述调度策略为调整计算单元的工作参数时,所述pid控制器用于通过驱动目标计算单元的硬件驱动模块对目标计算单元的工作参数进行调整。
13.在一个可选的实施例中,所述系统还包括:云端管理平台;
14.所述上行设备中设置有云端管理接口模块,所述上行设备通过所述云端管理接口模块与所述云端管理平台通信;
15.所述上行设备用于通过所述云端管理接口模块将调整目标计算单元关联的计算子单元的数量上传至所述云端管理平台;
16.所述云端管理平台用于根据接收到的目标计算单元关联的计算子单元的数量调整目标计算单元关联的计算子单元的数量。
17.在一个可选的实施例中,所述工作参数包括:工作频率和工作电压。
18.另一方面,本发明提供一种计算单元传输与负载的调控方法,所述方法应用于上述所述的计算单元传输与负载的调控系统中,所述方法包括:
19.采集各个计算单元与上行设备之间的传输占用率和负载率;
20.根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略;
21.根据各个计算单元的调度策略对各个计算单元进行调控。
22.在一个可选的实施例中,所述根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,包括:
23.根据接收到的各个计算单元传输的传输占用率和对应的负载率,确定各个计算单元的偏差值,所述偏差值为相同计算单元的所述传输占用率和所述负载率的差值;
24.将所述各个计算单元的偏差值输入至pid控制器中,确确定出各个计算单元的调度策略,所述调度策略包括调整计算单元的计算精度、调整计算单元的工作参数和调整计算单元关联的计算子单元的数量。
25.在一个可选的实施例中,所述pid控制器包括多个pid参数,所述pid参数至少包括以下一种:比例调节系数、积分调节系数和微分调节系数。
26.在一个可选的实施例中,所述各个计算单元的调度策略是通过如下公式确定的:
[0027][0028]
其中,u(t)为t时刻的目标计算单元的负载率,e(t)为t时刻计算的偏差值,k
p
为比例调节系数,ki为积分调节系数,kd为微分调节系数。
[0029]
采用上述技术方案,本文所述一种计算单元传输与负载的调控系统及调控方法,系统包括:上行设备和与所述上行设备通信的多个计算单元,其中:所述计算单元用于采集所述计算单元与所述上行设备之间的传输占用率和负载率,并将采集到的传输占用率和负载率传输至所述上行设备;所述上行设备中设置有计算单元管理模块,所述计算单元管理
模块中包括pid控制器,所述pid控制器根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,根据各个计算单元的调度策略对各个计算单元进行调控。本文能够加快数据中心整体的运算速度,或者在本地gpu保持计算速度的前提下提高计算质量,或者在保持计算速度的前提下降低能耗,提高效能。
[0030]
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
[0031]
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]
图1示出了本文实施例提供的一种pid控制器确定调度策略的原理示意图;
[0033]
图2示出了本文实施例提供的另一种pid控制器确定调度策略的原理示意图;
[0034]
图3示出了本文实施例提供的又一种pid控制器确定调度策略的原理示意图;
[0035]
图4示出了本文实施例中计算单元传输与负载的调控系统的步骤示意图;
[0036]
图5示出了本文实施例中计算单元传输与负载的调控方法的步骤示意图;
[0037]
图6示出了本文实施例中计算单元传输与负载的调控系统方法的另一步骤示意图;
[0038]
图7示出了本文实施例中一种设备的结构示意图。
具体实施方式
[0039]
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
[0040]
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0041]
传统的gpu资源利用率的控制方式是开环控制,系统根据任务队列将应用的数据传输和处理请求,按顺序轮询或者dla(deep learning accelerator gpu,计算核心)负载程度来分配,没有考虑数据传输与计算需求的匹配度问题,如图1所示。固定的gpu硬件能力在不同场景中切换时,会存在数据传输(占用率)与数据计算(负载率)不匹配的场景,如数据传输量大(占用率高),计算量小(负载率低),传输占用率会一直高于计算负载率,存在传
输瓶颈。相应的,还可能存在传输会等待计算,存在计算瓶颈,都会造成资源浪费,影响效能。
[0042]
为了解决上述问题,本说明书实施例提供一种计算单元传输与负载的调控系统,由于芯片数据传输和数据处理的负载变化是相互影响的,属于系统变化的范畴,与电子电气系统呈现出类似的系统变化规律,因此,将系统pid控制理论引入芯片的设计中,可以帮助芯片优化和提升系统性能。
[0043]
需要说明的是,上述系统适用于大型数据中心处理海量数据的高效运算场景。
[0044]
具体地,如图1-4所示,所述系统包括:上行设备和与所述上行设备通信的多个计算单元,其中:
[0045]
所述计算单元用于采集所述计算单元与所述上行设备之间的传输占用率和负载率,并将采集到的传输占用率和负载率传输至所述上行设备;
[0046]
所述上行设备中设置有计算单元管理模块,所述计算单元管理模块中包括pid控制器,所述pid控制器根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,根据各个计算单元的调度策略对各个计算单元进行调控。
[0047]
可以理解为,上行设备可以是中央处理器(cpu,central processing unit/processor),计算单元可以是图形处理器(graphics processing unitgpu,gpu)、gpgpu或其他任何形式的xpu计算单元。相应的,计算单元的上行设备可以是cpu,也可以其他形式的网元设备。计算单元与上行设备之间可以通过传输协议实现数据交互,传输协议可以是pcie,也可以是其他传输接口协议。
[0048]
上行设备可以通过预设的链路将需要计算的数据传输给对应的计算单元,计算单元在对数据进行计算后将计算的结果回传至上行设备。上行设备中的可以设置计算单元管理模块,计算单元管理模块中可以包括pid控制器。pid控制器根据采集到的上行设备与各个计算单元传输的传输占用率、各个计算单元的负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,根据各个计算单元的调度策略对各个计算单元进行调控。其中,传输占用率可以表征对应计算单元和对应上行设备之间的传输使用率,负载率可以表征计算单元计算数据时所使用的算力与计算单元总算力的比值。
[0049]
具体的,pid控制器可以包括比例控制单元(proportional)、积分控制单元(integral)和微分控制单元(derivative),pid控制器可以理解为是一种算法,pid控制器可以通过调整这三个单元的调节参数k
p
,ki,kd来调节各个计算单元的负载率,pid控制器具有算法简单、鲁棒性好和可靠性高的优点。
[0050]
可以理解的是,预先配置的计算单元调度规则可以由本领域技术人员基于专家经验或者历史数据进行智能模型训练,利用训练的模型得到计算单元调度规则可以表征输入的传输占用率、输入的负载率和输出的负载率之间的映射关系。通过各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略可以确定出对应的计算单元的调控策略,通过对应的计算单元的调控策略对对应的计算单元进行调控。
[0051]
在本说明书实施例中,调度策略可以包括调整计算单元的计算精度、调整计算单元的工作参数和调整计算单元关联的计算子单元的数量。
[0052]
可以理解的是,gpu处理的数据类型主要有整数型和浮点型,整数型主要有int4、int8、int16、cint32等,浮点型有fp16、fp32、fp64等,精度高的数据类型占用内存空间更多,同样乘加器(mac,multiplier and accumulation)下对算力资源消耗的也更多。本说明书实施例中调节的计算精度,可以在应用的预设阈值范围内,如,当pcie占用率小于dla负载率一定程度时,可以降低计算精度,使dla在单位时间内能够处理更多的数据,从而更快的完成计算任务,避免可能的计算瓶颈出现。当pcie占用率大于dla负载率一定程度时,可以适当提高计算精度,虽然不能增加gpu单位时间内完成任务的数量,但可以提高gpu完成任务的质量,也是对算力资源的有效利用。可以理解的是,本说明书实施例对计算单元的计算精度的调整是从任务完成质量的角度来选取被控对象的。
[0053]
调整计算单元的工作参数可以包括工作频率和工作电压,本说明书实施例中的计算单元的工作参数可以通过计算单元中的硬件驱动模块执行,通过调整计算单元的工作频率或工作电压的方式调整对应计算单元的负载率,以优化传输占用率与负载率的平衡。
[0054]
此外,gpu的计算速度是和工作频率关联的,工作频率又是依靠工作电压来维持和保证的,频率影响工作电流,电流和电压决定功耗。具体的,当pcie占用率小于dla负载率一定范围时,可以通过超频来提高gpu算力,从而改善负载平衡,当pcie占用率大于dla负载率一定程度时,可以通过降频缓解数据传输的瓶颈压力,同时降低了功耗。这是从任务完成能效的角度来选取被控对象。因此,可以通过调整计算单元的工作参数(工作频率或工作电压)的方式调整计算单元的计算精度。
[0055]
在本说明书实施例中,所述调度策略为调整计算单元的计算精度时,所述pid控制器可以通过目标计算单元的本地软件对目标计算单元的计算精度进行调整。
[0056]
可以理解的是,本地软件可以是设置在目标计算单元中的平台软件,平台软件可以用于调控目标计算单元中计算数据的精度。即,当目标计算单元的传输占用率高低于负载率时,可以通过调整计算精度的方式,提升传输占用率,实现传输占用率与负载率的优化平衡。
[0057]
在本说明书实施例中,所述调度策略为调整计算单元的工作参数时,所述pid控制器可以通过驱动目标计算单元的硬件驱动模块对目标计算单元的工作参数进行调整。
[0058]
可以理解的是,硬件驱动模块可以设置在计算单元中,用于调整计算单元的工作参数,pid控制器可以通过硬件驱动模块与计算单元通信,在pid控制器确定的调度策略为调整计算单元的工作参数时,硬件驱动模块可以基于pid控制器确定的调度策略调整计算单元的工作参数,通过计算单元的工作参数的调整可以提升计算单元的负载率(算力),如调整工作参数前计算单元的负载率为50%,调整工作参数后计算单元的负载率为60%。
[0059]
在本说明书实施例中,所述系统还包括:云端管理平台;
[0060]
所述上行设备中设置有云端管理接口模块,所述上行设备通过所述云端管理接口模块与所述云端管理平台通信;
[0061]
所述上行设备用于通过所述云端管理接口模块将调整目标计算单元关联的计算子单元的数量上传至所述云端管理平台;
[0062]
所述云端管理平台用于根据接收到的目标计算单元关联的计算子单元的数量调整目标计算单元关联的计算子单元的数量。
[0063]
具体的,云端管理平台连接有多个上行设备,每个上行设备均通过云端管理接口
模块与云端管理平台通信。每个上行设备均可以与多个计算子单元通信,多个计算子单元共同构成计算单元。其中,当计算单元是gpu时,计算子单元可以是vgpu(virtualized gpu)。可以理解的是,上行设备可以将一块物理gpu虚拟成多块vgpu卡,每个vm都独占一块vgpu,每个vgpu直接跟物理gpu对接。
[0064]
示例地,如某数据中心有两个gpu集群(计算单元)i和ii,为每个gpu集群分配了100个vgpu(计算子单元),并为每个vgpu分配了100tops(tera operations per second,1tops代表处理器每秒钟可进行一万亿次(10^12)操作)的算力,两个gpu集群分别处理两个不同的应用场景,gpu集群运行状态如下表所示(vgpu数量单位是个,实时算力单位是tops,下同):
[0065]
集群i/场景ipcie传输占用率%dla负载率%频率精度vgpu数量实时算力负载较小50%25%1.0ghzint810025*100负载最大100%50%1.0ghzint810050*100
[0066]
集群ii/场景iipcie传输占用率%dla负载率%频率精度vgpu数量实时算力负载较小25%50%1.0ghzint810050*100负载最大50%100%1.0ghzint8100100*100
[0067]
可以理解的是,不同的应用场景具有不同的算法和模型,每个需要计算的数据历经的mac(multiplier and accumulation乘加器)数量也不同,因此,上述两个gpu集群的传输占用率与负载率呈现不同的规律:对于gpu集群i,存在传输瓶颈,当传输占用率100%时,负载率(计算能力)仅为50%,此时gpu集群i的实时最大算力是理论最大值的50%;对于gpu集群ii,存在计算瓶颈,当负载率为100%,即负载率最大时,计算能力可以达到理论最大值,而此时的pcie传输占用率仅为50%,gpu的吞吐能力没有充分利用。
[0068]
设置在上行设备中的pid控制器检测到gpu集群i的pcie传输占用率与dla负载率差值的正信号时,即,pcie传输占用率-dla负载率=100%-50%=50%,经过pid控制器的计算,可以确定出gpu集群i中存在50个vgpu为能够实现数据计算,pid控制器可以通过云端管理接口模块向云管理平台发出gpu集群i可以释放50个vgpu的请求。
[0069]
设置在上行设备中的pid控制器检测到gpu集群ii的pcie传输占用率与dla负载率差值的负信号,即,pcie传输占用率-dla负载率=50%-100%=-50%,经过pid控制器的计算,可以确定出gpu集群ii中仍需要100个vgpu用于数据传输,才能够实现pcie传输占用率和dla负载率最大,pid控制器可以通过云端管理接口模块向云管理平台发出增加100个vgpu的请求。
[0070]
经过云管理平台的调度,gpu集群i可以释放50个vgpu,并将释放50个vgpu给gpu集群ii使用,结果如下表所示:
[0071]
集群i/场景ipcie占用率%dla负载率%频率精度vgpu数量实时算力负载较小50%50%1.0ghzint85050*50负载最大100%100%1.0ghzint850100*50
[0072]
集群ii/场景iipcie占用率%dla负载率%频率精度vgpu数量实时算力负载较小25%33.3%1.0ghzint815033.3*150负载最大75%100%1.0ghzint8150100*150
[0073]
可以看出通过云端管理平台的调节后,gpu集群ii的pcie传输占用率与dla负载率的负载差值依然存在,此时可以通过调整计算单元的工作参数的方式调整gpu集群ii中各个vgpu的工作频率,如下表所示:
[0074]
集群ii/场景iipcie占用率%dla负载率%频率精度vgpu数量实时算力负载较小27.5%33.3%1.1ghzint815036.6*150负载最大82.5%100%1.1ghzint8150110*150
[0075]
超频10%理论上增加算力10%,在同样dla负载率下单位时间处理的数据量也增加10%,相应的,pcie占用率就会提高10%,能够进一步实现平衡传输与计算的目的。
[0076]
通过调整计算单元关联的计算子单元的数量及调整计算单元的工作参数后,gpu集群ii的pcie传输占用率与dla负载率的负载差值依然存在,p控制器和i控制器会持续有输出调控策略,在应用场景允许的情况下,pid控制器确定的控制策略可以是调整计算单元的计算精度,通过调整部分数据的计算精度进一步释放传输能力,使传输与计算能力进一步平衡。
[0077]
本说明书实施例通过pid控制器调整两个gpu集群中的各个计算子单元后,两个gpu集群最大负载时的状态变化与调控之前的数据对比如下表所示:
[0078]
集群i/场景i现有技术pid控制pcie占用率100%100%dla负载率50%100%vgpu规模100个50个实时算力5000tops5000tops
[0079]
集群ii/场景ii现有技术pid控制pcie占用率50%82.5%dla负载率100%100%vgpu规模100个150个实时算力10000tops16500tops
[0080]
当两个gpu集群构成一个数据中心时,可以看出,通过pid控制器调整两个gpu集群中的各个计算子单元后,与调控之前的数据对比如下表所示:
[0081][0082]
通过上表可以看出,通过本技术提供的计算单元传输与负载的调控系统,与现有技术相比,不仅将原有的算力由15000tops提升至21500tops,还将能效比提升约33%。本技术通过将计算单元与上行设备之间的传输资源占用率和负载率作为控制源,pid控制器可以基于控制源指定不同的控制策略,实现对gpu集群规模、gpu频率电压、gpu计算精度等精
准控制,使得空闲的传输资源和计算资源,智能有序地流向对应负载率较高的gpu集群应用中,提升了数据中心整体的运算速度,还能够在gpu保持计算速度的前提下提高计算质量,还能够在保持计算速度的前提下降低系统能耗,提高效能,实现了服务器中各个芯片实现优化和提升了系统性能。
[0083]
在上述提供的计算单元传输与负载的调控系统的基础上,本说明书实施例还提供一种计算单元传输与负载的调控方法,所述方法可以实现计算单元传输与负载的调控系统中各个计算单元进行调控。
[0084]
具体地,如图5所示,是本文实施例中计算单元传输与负载的调控方法的步骤示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图4所示,所述方法可以包括:
[0085]
s101:采集各个计算单元与上行设备之间的传输占用率和负载率;
[0086]
s102:根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略;
[0087]
在一个优选的实施例中,如图6所示,图6是本文实施例中计算单元传输与负载的调控系统方法的另一步骤示意图,所述根据接收到的各个计算单元传输的传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,包括:
[0088]
s201:根据接收到的各个计算单元传输的传输占用率和对应的负载率,确定各个计算单元的偏差值,所述偏差值为相同计算单元的所述传输占用率和所述负载率的差值;
[0089]
s202:将所述各个计算单元的偏差值输入至pid控制器中,确定出各个计算单元的调度策略,所述调度策略包括调整计算单元的计算精度、调整计算单元的工作参数和调整计算单元关联的计算子单元的数量。
[0090]
具体的,pid控制器可以实时采集各个计算单元的传输占用率和对应的负载率。
[0091]
其中,pid控制器可以包括比例控制单元(proportional)、积分控制单元(integral)和微分控制单元(derivative)。如图2所示,p控制器是比例控制器,用于按照比例控制系统的偏差值,偏差值反映pcie占用率和dla负载率之间的偏差,当偏差产生时,p控制器立即产生控制作用以减小误差。当偏差消失时,控制作用也随之消失。具体的,p控制器对被控对象(计算单元)可以通过下述公式进行调整:
[0092]
u(t)=k
p
e(t)
[0093]
其中,p
p
为pcie通道的占用率,pd为dla的负载率,被控对象的偏差值为e,e=p
p-pd,k
p
为p控制器的比例调节系数。
[0094]
可以理解的是,p控制器可用于消除gpu当前的传输(占用率)与计算的负载率差,当偏差值存在时,通过p控制器的调整,可到达占用率和负载率大致平衡,即占用率和负载率会有一个稳态误差的存在。
[0095]
i控制器是积分控制器,可用于消除计算单元在历史时间内由于资源利用不平衡产生的偏差值,即当计算单元存在偏差值时,可对计算单元的偏差值进行积分,使输出继续增大或减小,直至偏差值为零,积分停止,输出不再变化,其中,积分能体现一段时间内偏差的累计。具体的,i控制器对被控对象(计算单元)可以通过下述公式进行调整:
[0096][0097]
其中,ki为i控制器的积分调节系数。
[0098]
可以理解的是,偏差值可以表征数据积压,数据积压说明存在计算瓶颈,即计算资源利用率在历史预设周期时间内明显高于传输资源占用率,i控制器将根据数据积压的程度,调节被控对象,消除数据积压的现象。即i控制器可以消除静差,提高系统的控制精度。
[0099]
d控制器是微分控制器,d控制器可用于预判gpu传输与计算资源利用率偏差变化的趋势,能反映偏差值的变化速率,并能在偏差值变得太大之前,在系统中引入一个有效的修正值,从而加快系统的动作速度,减小调节时间,具体的,d控制器对被控对象(计算单元)可以通过下述公式进行调整:
[0100][0101]
其中,kd为d控制器的微分调节系数。
[0102]
在实际应用中,如果偏差值的加速度增加,表明偏差值有加大的趋势,即使当前的偏差值还很小,系统会提前增加调节指令,反之如果偏差值的加速度是负的,即使当前还有一定偏差,系统会提前减弱调节指令,d控制器用于减少控制过程中的震荡。
[0103]
可以理解的是,d控制器对计算单元的调控是有时间性的,比例控制器是针对系统当前偏差值的控制,是对“现在”的控制,积分控制器是针对系统偏差值的历史的控制,是对“过去”的控制,而微分控制器作用则反映系统偏差值的变化趋势,是对“未来”的控制。
[0104]
具体的,pid控制器对于被控对象(计算单元)可以通过下述公式进行调整:
[0105][0106]
其中,u(t)是随时间的连续函数,而gpu中的pcie的占用率和dla负载率是计算单元在采样周期上报或pid控制器主动读取的,因此,u实际是离散形式的,对于离散形式,pid控制器对于被控对象(计算单元)可以通过下述公式进行调整:
[0107][0108]
可以理解的是,对被控对象的调整可以是调整计算单元的计算精度、dla工作频率以及子计算单元的数量等,计算精度、dla工作频率以及子计算单元的数量可以单独用作被控对象,也可以组合用作被控对象。
[0109]
需要说明的是,pid控制器的输入可以是离散的,相应的,调节信号也可以是离散的,在实际应用时,可以根据被控对象的特性,用区间控制的方式,将不同区间内的u(k)对应到gpu被控对象的不同输入上。示例地,如下表所示,下表为u(k)与计算单元的计算精度、计算单元的频率电压以及子计算单元数量的调控策略对照表。
[0110]
u(k)dla计算精度dla频率电压子计算单元数量[-0.9,-0.7)降二档 300mhz 4[-0.7,-0.5)降一档 200mhz 3[-0.5,-0.3)保持不变 100mhz 2
[-0.3,-0.1)保持不变保持不变 1[-0.1,0.1]保持不变保持不变保持不变(0.1,0.3]保持不变保持不变-1(0.3,0.5]保持不变-100mhz-2(0.5,0.7]升一档-200mhz-3(0.7,0.9]升二档-300mhz-4
[0111]
可以理解的时,调节策略时预先设置的,当u(k)落在不同的取值范围内时,可以对被控对象采用单独调节或者组合调节,达到传输与处理平衡的目的。在实际使用时,可以根据gpu产品定位、功能特性、软件实现和应用场景等因素,综合考虑来设置调节组合。
[0112]
示例地,当对平衡精度要求不高,但对瞬时扰动较敏感的gpu系统,也可以采用pd控制,控制结构图可以参阅图3:
[0113]
pd控制器对于被控对象(计算单元)可以通过下述公式进行调整为:
[0114]
u(k)=k
p
e(k) kd(e(k)-e(k-1))
[0115]
示例地,当对瞬时扰动不敏感,但对控制精度要求较高的gpu系统,也可以采用pi控制,控制结构图可以参阅图4:
[0116]
pi控制器对于被控对象(计算单元)可以通过下述公式进行调整为:
[0117][0118]
具体的,pid控制器可以是预先训练好的算法,即在实际应用中,pid控制器可以预先设置有pid参数,pid参数可以与pcie带宽占用率和gpu的计算单元dla负载率相关。其中,
[0119]
其中,占用时间包括数据实际传输时间和空闲时间。
[0120]
其中,占用时间包括数据实际处理时间和空闲时间,mac表示乘加器。
[0121]
可以看出,pcie占用率和dla负载率都与数据量是线性关系,不考虑系统其他软硬件的损耗,pcie占用率和dla负载率之间理论上也是线性关系,即pid控制器中的pid参数可以根据偏差值选取,不同的偏差值可以对应有不同的pid参数。
[0122]
pid参数可以通过如下方式确定:利用模糊规则根据偏差值和偏差变化率对pid控制器的pid参数进行自适应调整,输出pid参数的变化量;利用专家知识库根据所述偏差值和偏差变化率得到pid参数的初始值。
[0123]
优选地,该pid参数包括:比例调节系数、积分调节系数和微分调节系数。例如,以偏差值e及偏差值的相关特征量作为输入信号,经过模糊化、模糊推理、解模糊化的过程得到一组pid参数的变化量,即比例调节系数的变化量δk
p
、积分调节系数的变化量δki和微分调节系数的变化量δkd。
[0124]
优选地,可以按照以下规则数学模型根据偏差值和偏差变化率生成对应的pid参数的初始值;
[0125]
|e|≥ε1时,kp0=kp
01
,ki0=ki
01
,kd0=kd
01

[0126]
ε2≤|e|《ε1时,kp0=kp
02
,ki0=ki
02
,kd0=kd
02
[0127]
|e|《ε2且|ec|≥δ1时,kp0=kp
03
,ki0=ki
03
,kd0=kd
03

[0128]
|e|《ε2且|ec|《δ1时,kp0=kp
03
,ki0=ki
03
,kd0=kd
04
[0129]
其中e为计算的偏差值,ec为计算的偏差变化率;ε1、ε2分别第一误差水平值和第二误差水平值,δ1为第一误差变化水平值,kp0、ki0、kd0分别为比例调节系数kp、积分调节系数ki和微分调节系数kd的初始值;kp01、kp02、kp03分别为预设的第一比例调节值、第二比例调节值和第三比例调节值;ki01、ki02、ki03分别为预设的第一积分调节值、第二积分调节值和第三积分调节值;kd01、kd02、kd03、kd04分别为预设的第一微分调节值、第二微分调节值、第三微分调节值和第四微分调节值;并且,kp
01
≈kp
03
》kp
02
,kd
01
≈kd
02
≈kd
04
《kd
03
,0=ki
01
《ki
02
《ki
03
,ε1》ε2》0,δ1》0。
[0130]
在实际应用中,pid控制器调控各个计算单元时,可以根据pid参数的初始值和变化量得到pid参数值,并根据pid参数值计算出各个计算单元的调度策略。
[0131]
具体的,所述各个计算单元的调度策略是通过如下公式确定的:
[0132][0133]
其中,u(t)为t时刻的目标计算单元的负载率,e(t)为t时刻计算的偏差值,k
p
为比例调节系数,ki为积分调节系数,kd为微分调节系数。
[0134]
可以理解的是,u(t)是持续输出的,直至负载率和传输占有率的差值满足预设阈值时停止输出。
[0135]
s103:根据各个计算单元的调度策略对各个计算单元进行调控。
[0136]
可以理解为,所述方法的执行主体为pid控制器,pid控制器可以通过计算单元中的本地软件采集计算单元与上行设备之间的传输占用率和负载率,并根据传输占用率、负载率以及预先配置的计算单元调度规则确定出各个计算单元的调度策略,其中,调度策略可以包括调整计算单元的计算精度、调整计算单元的工作参数和调整计算单元关联的计算子单元的数量,进而通过确定出的调控策略调控各个计算单元,实现传输占用率和负载率的平衡优化。
[0137]
需要说明的是,pid控制器可以根据pcie占用率与dla负载率的偏差值,调节被控对象的系统行为,来改善gpu传输资源和算力资源的平衡状态,使计算单元的系统性能得到优化。能够影响dla负载率的因素除了数据量之外,还有并发数量、计算精度、计算频率等。因此,调度策略可以是调控计算单元中各个子计算单元的并发数量、计算精度、计算频率以及子计算单元的数量。
[0138]
示例地,当调控的被控对象是gpu集群规模,可以通过调整vgpu数量(子计算单元)的方式提高数据中心的计算速度。如,pcie占用率与dla负载率的差值小于预设偏差阈值时,也就是说gpu接收到的数据可能在排队等待处理,可以动态增加vgpu(virtual gpu表示虚拟gpu)数量,从而更快的完成计算任务,避免可能的计算瓶颈出现。当pcie占用率与dla负载率的差值大于预设偏差阈值时,也就是说dla可能在空闲等待数据传输,可以考虑动态减少vgpu数量,避免传输瓶颈的出现,将释放的vgpu投放到有计算瓶颈的gpu集群中去,通过系统削峰填谷式的自动调节,可以有效提高整个数据中心的计算速度。这是从任务完成速度的角度来选取被控对象。
[0139]
进一步,如图7所示,为本文实施例提供的一种设备,所述设备可以包括上述提供的pid控制器,作为可选地,所述计算机设备802可以包括一个或多个处理器804,诸如一个或多个中央处理单元(cpu),每个处理单元可以实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
[0140]
计算机设备802还可以包括输入/输出模块810(i/o),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814))。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口(gui)818。在其他实施例中,还可以不包括输入/输出模块810(i/o)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
[0141]
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
[0142]
对应于图5-图6中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
[0143]
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图5至图6所示的方法。
[0144]
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
[0145]
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0146]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
[0147]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0148]
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0149]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
[0150]
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0151]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0152]
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献