本发明涉及计算,具体涉及一种面向推理任务qos的gpu实时调度方法及系统。
背景技术:
1、随着物联网 (iot) 的不断发展,智能个人助理,医疗保健监控和智能家居服务等远程智能服务将越来越复杂的机器学习推理工作负载转移到云数据中心。仅facebook一家每天就处理超过200万亿个推理查询,而亚马逊估计推理任务占据了生产级机器学习基础设施成本的90%。这些机器学习推理工作负载对延迟非常敏感,通常需要满足尾部延迟服务水平目标(slo),例如99%的推理查询必须在100毫秒内完成,这意味着必须满足99%的推理查询的延迟在100毫秒以内。gpu 已被广泛采用来加速这些机器学习推理工作负载的执行。
2、整个业界的趋势是越来越多的工作负载运行在kubernetes之上,促成kubernetes成为了云时代的基础设施。在 kubernetes 中,gpu 等异构资源的管理是通过 deviceplugin(设备插件)机制实现的。第三方设备厂商可以通过各自的device plugin满足用户在k8s上使用异构资源的需求。nvidia的容器层gpu方案仅支持将整块卡映射到容器,无法在容器之间共享同一张卡,而gpu卡作为专用芯片算力强大且价格昂贵,无法共享情况下往往造成大量资源浪费,因此提高gpu资源的利用效率是异构资源调度场景下的首要目标。目前在学术界和工业界主流的做法是将物理 gpu 分割成多个虚拟 gpu,并根据请求将虚拟gpu 分配给容器,支持同一张卡上容器间gpu算力和显存的使用隔离,通过这一容器层gpu虚拟化方案,有效提高了gpu资源的利用率。
3、主流的 gpu 共享调度方案旨在提高 gpu 资源的利用率和调度公平性。为了达到这个目的,这些方案通常采用资源隔离和调度算法等技术手段。
4、资源隔离是一种常见的技术手段,它将 gpu 设备分割成多个虚拟 gpu,每个虚拟gpu 可以被分配给一个容器使用。这样一来,不同容器中的任务就可以在独立的虚拟 gpu上执行,互相之间不会产生干扰,同时可以提高 gpu 资源的利用率。除了资源隔离,调度算法也是 gpu 共享调度的核心技术之一。调度算法可以根据任务的不同特征和优先级,合理地分配 gpu 资源,从而保证 gpu 调度的公平性和高效性。常见的调度算法包括基于权重的调度算法、基于队列的调度算法等。
5、尽管目前的 gpu 共享调度方案可以很好地提高 gpu 资源的利用率和调度的公平性,但是它们并不支持基于任务优先级的 gpu 的调度。一旦 cuda 内核在 gpu 设备上运行,这些内核就会由硬件调度程序调度。由于硬件调度器没有考虑任务优先级,因此无法保证高优先级内核的实时性要求。此外,由于gpu的异步和非抢占性质,高优先级应用程序可能会被低优先级应用程序阻塞。这种优先级倒置使得在多负载混跑时无法保障高优任务的qos。
技术实现思路
1、本发明的目的在于提供一种高效的面向推理任务qos的gpu实时调度方法及系统。
2、为解决上述技术问题,本发明提供一种面向推理任务qos的gpu实时调度方法,包括以下步骤:
3、获取推理任务;
4、将推理任务输入训练完成的任务性能预测模型中,得到预测结果;所述预测结果包括预测执行时间、全局内存带宽和每周期指令数;
5、根据推理任务、预测执行时间、全局内存带宽和每周期指令数进行资源分配,得到最优资源分配方案。
6、优选地,所述任务性能预测模型的训练方法具体包括以下步骤:
7、获取训练数据;所述训练数据包括训练推理任务和训练gpu计算资源配额;
8、从训练推理任务中提取任务特征;
9、将任务特征和训练gpu计算资源配额输入任务性能预测模型中进行训练,得到训练完成的任务性能预测模型。
10、优选地,所述任务性能预测模型的回归模型为决策树模型;所述决策树模型的预测误差的计算公式如下:
11、;
12、式中,为预测值;为实际值;为预测误差。
13、优选地,所述任务特征包括手写内核和库调用;
14、所述手写内核包括内核配置和输入数据大小;
15、所述库调用包括api。
16、优选地,根据推理任务、预测执行时间、全局内存带宽和每周期指令数进行资源分配,得到最优资源分配方案,具体包括以下步骤:
17、根据推理任务和预测执行时间,得到推理任务计算资源分配方案;
18、根据推理任务计算资源分配方案、全局内存带宽和每周期指令数,得到非qos任务计算资源分配方案;
19、根据推理任务计算资源分配方案和非qos任务计算资源分配方案,得到最优资源分配方案。
20、优选地,根据推理任务和预测执行时间,得到推理任务计算资源分配方案,具体包括以下步骤:
21、用、和分别表示推理任务的qos目标、数据传输时间和预测执行时间;
22、以满足的最小的计算资源,作为推理任务资源分配方案。
23、优选地,根据推理任务计算资源分配方案、全局内存带宽和每周期指令数,得到非qos任务计算资源分配方案,具体包括以下步骤:
24、通过离散化方法为非qos任务分配计算资源;
25、将散优化问题建模为完整的背包问题,以每周期指令数作为物品的价值,以非qos任务作为物品,背包问题的状态转移公式如下:
26、;
27、式中:表示背包内物品数量为i时且背包容量为j时,所有物品价值总和的最大值;m表示第i件物品;是第i个物品的价值;
28、非qos任务计算资源分配方案的计算公式如下:
29、;
30、式中:r为总体可用计算资源;bw为全局内存带宽;为的第i个非qos任务计算资源;为推理计算资源;n为非qos任务的资源分配方案总数;为第i个非qos任务的内存带宽使用量;为推理任务的内存带宽使用量。
31、优选地,还包括以下步骤:
32、计算平均gpu算力资源利用率;
33、根据平均gpu算力资源利用率和调整阈值th,判断是否存在qos违规;
34、若存在qos违规,则调整推理任务的计算资源和非qos任务计算资源,并重新调整各个非qos任务的算力分配。
35、优选地,调整推理任务的计算资源和非qos任务计算资源,计算公式如下:
36、;
37、式中:th为调整阈值;为平均gpu算力资源利用率;为中间临时值;为qos任务算力配额比例;为非qos任务算力配额比例总和。
38、本发明还提供一种面向推理任务qos的gpu实时调度系统,包括:
39、获取模块,用于获取推理任务;
40、任务性能预测模块,用于将推理任务输入训练完成的任务性能预测模型中,得到预测结果;所述预测结果包括预测执行时间、全局内存带宽和每周期指令数;
41、资源分配模块,用于根据推理任务、预测执行时间、全局内存带宽和每周期指令数进行资源分配,得到最优资源分配方案。
42、与现有技术相比,本发明的有益效果为:
43、(1)、本发明采用决策树(dt)等机器学习算法为在线推理任务训练一个任务性能预测模型,用于预测推理任务的执行时间、全局内存带宽和每周期指令数 (ipc)。为后续的竞争感知算力资源分配器分配算力提供数据预测。
44、(2)、本发明对分配计算资源任务进行数学建模,将连续优化问题转化为离散优化问题,采用背包动态规划思路来解决。
45、(3)、本发明设定计算资源配额利用率阈值,动态调整调整分配给每个 qos 任务的计算资源配额来减轻可能的qos违规。
46、(4)、本发明能够根据其输入数据和任务的可扩展性,预测面向用户的在线推理任务完成 qos 目标返回所需的最小计算资源百分比。
47、(5)、本发明能够将多余的空闲计算资源分配给低优先级离线训练任务,以最大化其吞吐量,同时最小化对在线推理任务的性能干扰。
48、(6)、本发明能够提高推理任务在gpu算力分配的比例,以加快任务的推理速度。