面向多阶段AI云服务的高吞吐异构资源管理方法及器件

文档序号:28857352发布日期:2022-02-11 21:50阅读:91来源:国知局
面向多阶段AI云服务的高吞吐异构资源管理方法及器件
面向多阶段ai云服务的高吞吐异构资源管理方法及器件
技术领域
1.本发明涉及gpu技术领域,特别是涉及一种面向多阶段ai云服务的高吞吐异构资源管 理方法及器件。


背景技术:

2.现代数据中心常常托管一些面向用户的应用服务,比如网页搜索、社交网络、人脸识别 等等。这类应用通常以低响应时间和高精度来吸引用户,因此都有着严格的延迟要求。这类 应用也被称为lc(latency-critical)应用。保证这些lc应用的服务质量(qos)是目前数据 中心相关研究的重点。
3.随着云计算平台以及深度学习的快速发展,最近的深度神经网络(dnn)已经在各类应 用场景下达到了人类级别的准确性,比如图像识别、语音识别等。相应地,深度神经网络也 被用来支持各种数据中心的lc应用。新的硬件如gpu等加速器也被云计算服务商采用并广 泛部署在计算机集群中,以支持新兴深度学习任务的高算力需求。相比传统的在线服务,基 于深度学习的在线服务不仅有严格的服务质量要求而且在计算上要求很高,会使用多种异构 资源。
4.这类基于dnn支持的lc应用,主要有两个阶段:数据预处理和在线推理(inference)。 异构加速器(如gpu)通常会用于推理阶段,而主机cpu则用于数据预处理阶段(包括解 码和数据大小调整等)。主机和加速器之间的交互阶段(memcpy)由pci-e总线支持。数据 中心存在着一些不可避免的问题,其中很重要的一个问题就是资源的过度配置。根据之前的 一些研究可知,这些lc服务经常会遇到用户访问的昼夜模式(在白天的某些时刻,用户请 求数量高且集中;而到了夜晚,用户请求负载会迅速降低)。这种模式会导致除了高峰时间 外,大量时间下cpu/gpu资源并没有得到充分利用,由此便会导致资源的浪费。
5.为了提高数据中心异构资源的利用率,通常的做法是将有qos要求的lc服务和没有qos 要求的尽力而为型(best-effort)be应用同时运行。加速器的制造商们现在也正在生产这种 支持空分共享的多任务加速器,以便在同一个加速器上实现更高的吞吐量。例如,mps(多 进程服务)是cuda应用程序接口(api)的实现。最新的nvidia volta和turing架 构下,volta mps技术允许不同的应用程序在同一gpu上以特定资源百分比同时执行,从 而提高整体的gpu利用率。
6.但是混合部署多个应用程序可能会给lc服务带来性能损失并增加用户请求的端到端 延迟,出现违反服务质量的风险。这主要是因为混合部署的多个应用程序会争夺共享的异构 资源。除此之外,对于这种新型的多阶段ai云服务,它们同时具有主机阶段(cpu)和加速 器阶段(gpu)。如何为这类新兴的异构混合部署场景设计合适的调度策略存在着新的挑战。 在保证lc应用服务质量的同时,使得整体资源的利用更加高效和经济是本发明需要解决的 重要问题。
7.对于cpu混合部署的qos保证技术,现有技术分为两类:基于性能分析的方法和基于 反馈调节的方法。基于性能分析的方法,如bubble-up,可以分析面向用户的服务和批处
理应 用程序,以预测由于共享缓存和内存带宽争用导致的性能下降,并确定不会导致qos违反的
ꢀ“
安全”的调度方式。基于反馈调节的方法,如heracles,它们根据当前时段中面向用户服 务的qos反馈,构建决策树以确定下一时段中的资源分配情况,从而定期调整共享资源的分 配。
8.现有的cpu上多任务调度算法并不适用于目前新型的多阶段ai云服务,因为它们无法 感知gpu等加速器可空分复用的特性,无法有效利用gpu的高并行度,充分发挥硬件资源。 同时,它们也忽略了gpu上不同共享资源之间的复杂干扰。
9.对于gpu混合部署的qos保证技术,现有技术分为两类:基于时分共享加速器和基于 空分共享加速器。在时分共享加速器上,基于队列的方法(例如grandslam和baymax) 预测kernel的持续时间,从而对gpu内核重新排序。在空间多任务加速器上,基于分析的方 法(例如laius)在lc服务和be应用程序之间划分计算资源。
10.先前的研究仅局限于调度gpu加速器上的混合部署,它们不够通用,无法管理这些新的 应用场景。lc服务同时具有主机阶段和加速器阶段,分开管理gpu阶段和cpu阶段会造 成严重的qos违反。如果主机阶段的时延预测不准确或者反馈机制不够及时,lc服务将遭 受qos违反,且延迟无法弥补。


技术实现要素:

11.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种面向多阶段ai云服务的高吞 吐异构资源管理方法及器件,用于满足lc服务的qos目标,并最大限度地提高cpu和gpu 上所有be应用的性能。
12.为实现上述目的及其他相关目的,本发明提供一种面向多阶段ai云服务的高吞吐异构资 源管理方法,包括:利用一服务质量目标分配器基于接收到的lc服务的请求将服务质量目 标拆分为cpu侧服务质量目标和gpu侧服务质量目标;利用一异构资源管理器以cpu侧服 务质量目标和gpu侧服务质量目标作为初始样本搜索最佳资源分配;利用一服务质量补偿器 实时监测cpu阶段的进度,并在用户请求在cpu阶段花费的时间超过其cpu的服务质量目 标,加速其在加速器端的执行。
13.于本发明的一实施例中,所述基于接收到的lc服务的请求将服务质量目标拆分为cpu 侧服务质量目标和gpu侧服务质量目标包括:将lc任务的每种资源配额设置为其最小资 源单位,同时将其余资源分配给be任务;根据共享资源的性能曲面调整cpu-gpu阶段的 服务质量分配;记录lc任务的服务质量增加值和be任务性能下降值;选择最佳资源分配, 将最佳资源分配从be任务调整到lc任务并执行下一次循环,实现将服务质量目标拆分为 cpu侧服务质量目标和gpu侧服务质量目标。
14.于本发明的一实施例中,所述异构资源管理器基于随机森林的贝叶斯优化算法搜索最佳 资源分配。
15.于本发明的一实施例中,所述初始样本采用以下策略中的任一种进行采样:所有cpu阶 段任务分配相等的计算资源的相同优先级策略、从服务质量目标分配器中获取资源分配初始 点的初始资源分配策略、为be作业分配最小资源配额,剩余给lc任务的服务质量保证策略。
16.于本发明的一实施例中,为异构资源管理器配置评分函数,以引导资源管理器在
利用更加高效和经济。
29.本实施例在设计、实现一个面向多阶段ai云服务的高吞吐异构资源管理方法,该异构运 行时方法有两个目标:满足lc服务的qos目标,并最大限度地提高cpu和gpu上所有be 应用的性能。
30.本实施例提供be感知的qos目标分配器、统一化的异构资源管理器以及加速器端qos 补偿器,用于实现面向多阶段ai云服务的高吞吐异构资源管理方法。本实施例解决了针对异 构混合部署的资源管理的诸多挑战,保证了lc服务混合运行时的服务质量保,同时提高了 cpu和gpu上整体资源利用效率。
31.以下将详细阐述本实施例的一种面向多阶段ai云服务的高吞吐异构资源管理方法及服 务器的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种面向 多阶段ai云服务的高吞吐异构资源管理方法及服务器。
32.如图1所示,本实施例提供一种面向多阶段ai云服务的高吞吐异构资源管理方法,所述 面向多阶段ai云服务的高吞吐异构资源管理方法包括:
33.步骤s100,利用一服务质量目标分配器基于接收到的lc服务的请求将服务质量目标拆 分为cpu侧服务质量目标和gpu侧服务质量目标;
34.步骤s200,利用一异构资源管理器以cpu侧服务质量目标和gpu侧服务质量目标作为 初始样本搜索最佳资源分配;
35.步骤s300,利用一服务质量补偿器实时监测cpu阶段的进度,并在用户请求在cpu阶 段花费的时间超过其cpu的服务质量目标,加速其在加速器端的执行。
36.本实施例提供be感知的qos目标分配器、统一化的异构资源管理器以及加速器端qos 补偿器,用于实现面向多阶段ai云服务的高吞吐异构资源管理方法。本实施例中的面向多阶 段ai云服务的高吞吐异构资源管理方法以不同的方式处理lc服务和be应用程序。一旦提 交了lc服务的请求,qos目标分配器就会启发式地将其qos目标拆分为cpu侧qos目标 和gpu侧qos目标。然后将这些划分作为初始样本点传递给统一资源分配器,以搜索最佳 资源分配。资源分配器确定最佳资源分配,在保证lc服务的qos的同时,最大化be作业 的吞吐量(考虑经济效益)。此外,协同补偿器实时监测cpu阶段的进度,如果用户请求在 cpu阶段花费的时间超过其cpu的qos目标,则加速其加速器端的执行。
37.以下对本实施例的上述步骤s100至步骤s300进行详细说明。
38.步骤s100,利用一服务质量目标分配器基于接收到的lc服务的请求将服务质量目标拆 分为cpu侧服务质量目标和gpu侧服务质量目标。
39.于本实施例中,所述基于接收到的lc服务的请求将服务质量目标拆分为cpu侧服务质 量目标和gpu侧服务质量目标包括:将lc任务的每种资源配额设置为其最小资源单位, 同时将其余资源分配给be任务;根据共享资源的性能曲面调整cpu-gpu阶段的服务质量 分配;记录lc任务的服务质量增加值和be任务性能下降值;选择最佳资源分配,将最佳资 源分配从be任务调整到lc任务并执行下一次循环,实现将服务质量目标拆分为cpu侧 服务质量目标和gpu侧服务质量目标。
40.步骤s100的目标在于如何在有限的采样范围内准确解决qos划分问题。在本实施例的 初步评估中,增加be任务的资源配额可以有效提高be任务的性能。但是,不同的be任 务对共享资源(cpu中的内核、llc、内存带宽和gpu中的sm)具有不同的敏感性。为 了最大限
度地利用计算资源,lc任务的共享资源使用应该对be任务的性能影响尽可能小。
41.因此,本实施例设计了一种启发式搜索算法来为lc服务执行qos划分,具体来说,本 实施例最初将lc任务的每种资源(cpu core、llc、cpu中的内存带宽和gpu中的sm) 配额设置为其最小资源单位,同时将其余资源分配给be任务。为了保证lc任务的qos, 需要增加分配给lc任务的共享资源配额。每次迭代,qos目标分配器会根据共享资源的性 能曲面调整cpu-gpu阶段的qos分配。本实施例分别记录搜索步骤中lc任务的qos增 加值δqosd和be任务性能下降δperfd。本实施例使用以下公式来选择最佳资源分配d
*
,然后 将资源d
*
从be任务调整到lc任务并执行下一次循环。
[0042][0043]
这种方法下可以得到接近最优的结果,不仅能满足lc任务的qos,而且还尝试确保be 任务的最小性能下降。cpu阶段和gpu阶段的最终时间按比例放大到qos目标并用作qos 划分结果。qos划分结果作为初始样本传递给统一化的异构资源管理器。
[0044]
步骤s200,利用一异构资源管理器以cpu侧服务质量目标和gpu侧服务质量目标作为 初始样本搜索最佳资源分配。
[0045]
一旦qos目标分配器获得qos目标划分,本实施例需要对各个设备上(cpu/gpu)的 共享资源进行管理。鉴于异构混合部署场景下的巨大的资源配置样本空间,资源管理器必须 以最少的采样时间快速识别最佳资源分配。
[0046]
于本实施例中,所述异构资源管理器基于随机森林的贝叶斯优化算法搜索最佳资源分配。
[0047]
该发明使用了基于随机森林的贝叶斯优化算法(smac)来实现资源的分配管理,然而, 将smac算法直接用于异构混合部署是不合适的。首先,smac算法会随机选择初始采样点。 虽然该方法适用于一些简单的服务,但它们在异构情况下容易发生协变转移,这会导致采样 过程中频繁发生qos违反。同时传统smac中目标函数只返回一个最大化的值(例如系统的 吞吐量或执行时间),而本实施例有多个优化目标(lc服务的qos和be任务的性能最大化)。
[0048]
于本实施例中,所述初始样本采用以下策略中的任一种进行采样:所有cpu阶段任务分 配相等的计算资源的相同优先级策略、从服务质量目标分配器中获取资源分配初始点的初始 资源分配策略、为be作业分配最小资源配额,剩余给lc任务的服务质量保证策略。
[0049]
本实施例对smac算法进行了两次自适应修正。对于初始采样点,该发明根据不同的 策略仔细选择它们:1)相同优先级策略(所有cpu阶段任务分配相等的计算资源);2)从qos目标分配器中获取资源分配初始点;3)qos保证策略(给be作业分配最小资源配额, 剩余给lc任务)。以上三种资源配置作为初始点可以更好地发现潜在的资源配额并加快采 样过程。至于如何确定下一个采样点,本实施例仔细设计了目标函数,以便smac优化可 以应用于异构协同定位。
[0050]
此外,于本实施例中,为异构资源管理器配置评分函数,以引导资源管理器在配置空间 中朝着正确的方向进行搜索。
[0051]
即本实施例为资源管理器设计了一个评分函数:
[0052][0053]
评分函数的分数会传递给目标函数(即,当系统在给定的资源配置下运行时,每个周期 末分配目标分数)。这个评分函数会引导资源管理器在巨大的配置空间中朝着正确的方向进 行搜索。
[0054]
此外,于本实施例中,构建基于lc任务的服务质量和be任务的综合吞吐量的分段的 目标函数;所述分段的目标函数的第一个目标是在cpu和gpu上满足服务质量目标,第二 个目标是最大化be任务的整体系统吞吐量。
[0055]
即本实施例构建了一个分段的目标函数,它考虑了lc任务的qos和be任务的综合吞 吐量(考虑经济效益)。函数值介于0(最坏情况,没有lc任务满足其qos)到1(理想 情况下,所有lc任务都满足qos且be任务性能和其单独运行时一致)之间。第一个目标 是在cpu和gpu上满足qos目标。上式中qos
target
是lc任务的qos目标,qos
eval
是当前 资源配置下lc任务的时延。只要lc任务在任何设备上出现qos违反,不管be任务性能如 何,该分数都将获得小于0.5。只有当得分大于0.5时,才考虑第二个目标函数。
[0056]
上述公式中的第二个目标是最大化be任务的整体系统吞吐量,其中perfr是采样期间be 作业的吞吐量,perfs是单独运行时be任务的吞吐量。又考虑到租用cpu和gpu的价格差 异很大,本实施例对cpu和gpu的吞吐量进行加权求和,其中a和β分别和cpu/gpu的 租用价格相关。
[0057]
于本实施例中,还包括配置搜索最佳资源分配的优化约束条件;所述优化约束条件包括: 每个任务的最大配额不超过资源总量;对于每种资源,所有任务的配额总和不能大于总量。
[0058]
为了加快smac优化的搜索过程,该发明使用基于如下公式优化问题的剪枝策略来约束 搜索空间:
[0059]
object=max(a(score(r)))
[0060][0061]
这可以去除大多数“不需要”的资源分配。假设n个任务需要部署m种资源,搜索过程 如公式(3)所示。r是一个具有n行,m列的矩阵,其中r
ij
表示第i个任务拥有的第j个资 源的份额。rj代表资源j的总量。优化问题包含两种约束条件。首先,每个任务的最大配额 不超过资源总量。其次,对于每种资源,所有任务的配额总和不能大于总量。同时,为了找 到全局最优资源分区,本实施例使用acquisition函数计算资源分区的最终分数。
[0062]
步骤s300,利用一服务质量补偿器实时监测cpu阶段的进度,并在用户请求在cpu阶 段花费的时间超过其cpu的服务质量目标,加速其在加速器端的执行。
[0063]
于本实施例中,所述实时监测cpu阶段的进度包括:计算执行cpu阶段所增加的时长, 如果执行cpu阶段所增加的时长大于使用新的资源配额下减少的gpu阶段执行时间,则确 定用户请求在cpu阶段花费的时间未超过其cpu的服务质量目标。
[0064]
具体地,于本实施例中,所述服务质量补偿器为lc服务的请求确认新的资源配额,
在 确定新的资源配额时,分配给be任务的计算资源配额同时更新;若lc服务的请求的cpu 阶段进度满足新配额的服务质量,则分配给lc服务的请求的资源配额回滚到其原始配额。
[0065]
在lc请求(用q表示)的执行过程中,该发明提供了一个加速器端qos补偿器在cpu 阶段实时监控q的执行进度。如果cpu阶段q的运行速度比预期慢(即工作负载或其他无 法明确管理的争用突然激增),则该补偿器会通过为其分配更多加速器端的计算资源来加速 q的gpu阶段。这一步的难点是快速确定gpu端的新计算资源配额,且不会严重降低gpu 上be应用程序的吞吐量。
[0066]
具体来说,补偿器会定期检查它在cpu阶段的运行速度是否比预期的要慢。t
cpu
和t

gpu
分别代表lc服务的请求在当前资源配额下实际的cpu阶段执行时间和lc服务的请求在 gpu阶段新确定的计算资源配额下gpu阶段的执行时间。计算了执行 cpu阶段所增加的时长。如果t
save
大于使用新的资源配额下减少的gpu阶段执行时间,则 lc服务的请求能够满足它的qos目标。
[0067][0068]
根据上述公式该补偿器能够为lc服务的请求确认新的“刚好足够”的gpu端计算资源 配额。在公式中,t

gpu
可以从性能模型中获得,和从be感知的qos目标分 配器中获得。t
cpu
在运行过程中直接测量。一旦确定了新的资源配额,分配给be作业的计 算资源配额也会同时更新。如果lc服务的请求的cpu阶段进度满足新配额的qos,则分 配给lc服务的请求的资源配额回滚到其原始配额。以这种方式,本实施例确保了lc服务的 请求满足其qos,并最大限度地减少它使用的资源。
[0069]
为使本领域技术人员进一步理解本实施例的面向多阶段ai云服务的高吞吐异构资源管 理方法,以下对本实施例的面向多阶段ai云服务的高吞吐异构资源管理方法的实施过程进行 说明:
[0070]
具体来说,本发明将通过以下步骤管理和分配异构混合部署场景下的资源,q代表lc 请求:
[0071]
1、qos目标分配器根据当前在cpu和gpu上运行的be作业的特点,为q构建性能模 型。基于该模型,该发明以一种启发式方法,将q的qos目标拆分为cpu阶段和gpu阶段。 之后,将qos目标划分结果作为初始样本点传递给统一的异构资源管理器。此步骤会显着影 响后面确定最佳资源分配所需的尝试次数。
[0072]
2、一旦q的qos目标被拆分完成,资源管理器就会根据优化后的smac算法,为q以 及cpu和gpu侧的共置be应用分配各种资源配置(cpu core、内存带宽、llc、sm)。 在执行分配时,本实施例会最大化be作业的综合吞吐量(考虑经济效益),同时减轻由于 资源争用所导致的qos违反。具有挑战性的部分是最大限度地减少确定最佳分配以适应动态 负载所需的时间。
[0073]
3、加速器端qos补偿器会实时监测q的cpu阶段进度。如果q的cpu阶段运行得比 预期慢,补偿器会通过分配更多gpu计算资源来加速q的加速器阶段。这里的难点是快速 确定gpu上q的新计算资源配额,而不会严重降低gpu上be应用程序的吞吐量。
[0074]
本发明的实施例还提供一种gpu,所述gpu应用如上所述的面向多阶段ai云服务的高 吞吐异构资源管理方法。上述已经对所述面向多阶段ai云服务的高吞吐异构资源管理方法进 行了详细说明,在此不再赘述。
[0075]
综上所述,本发明可以在真实的数据中心机器且无需修改硬件设备的前提下,既保证lc 服务的服务质量,又极大地提高了异构设备上所有be应用的综合性能;本发明的成果可以 为数据中心新兴的异构混合部署问题提供调度技术的落地提供支持。同时,本发明的成果具 有商业意义的、可以面向多阶段ai云服务提供高吞吐的动态任务调度服务、在最大化数据中 心异构设备利用率的情况下保证云服务质量。所以,本发明有效克服了现有技术中的种种缺 点而具高度产业利用价值。
[0076]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切 等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1