关键词:
异构多核处理器
混合任务集
能耗
常带宽服务器
Linux内核
摘要:
随着人工智能(Artificial Intelligence,AI)技术的发展,AI应用逐渐融入人们的日常生活。手机和平板等移动终端设备中将会涌现更多AI应用,更多软实时任务与非实时任务,这对于电池供电的手机和平板提出了更高的能耗挑战。当前,处理器是设备能耗的主要来源之一,单指令集异构丛集多核处理器是手机和平板的主流处理器类型。低功耗任务调度是一种通过任务调度优化处理器使用情况,以降低处理器能耗的方法。
对于单指令集异构丛集多核处理器,以及软实时任务与非实时任务混合的场景,Linux内核的任务调度算法是当前最具代表性的算法。Linux内核采用一种层级组合式混合任务低功耗调度算法实现低功耗混合任务调度,主要表现出两点问题:(1)实时任务的低功耗调度由G-EDF(Global Earliest-Deadline-First)算法叠加GRUB-PA(Greedy Reclamation of Unused Bandwidth-Power Aware)算法实现,任务在核心间的分布由全局调度算法G-EDF决定,不利于GRUB-PA的能耗优化策略,也不利于任务在核心间的能耗最优分布;(2)非实时任务的调度优先级总是低于实时任务,在低功耗任务调度会降低处理器时钟频率的基础上,这可能导致非实时任务长时间无法获得处理器。
针对这两点问题,提出了一种适用于多核半划分调度的服务器调度算法;基于该算法,构建层级组合式混合任务调度算法,提出了一种软实时周期任务与非实时任务混合的低功耗多核半划分调度算法;为非实时任务分配服务器,提高非实时任务的调度优先级。本文主要工作如下:
1.针对层级组合式任务调度中运行时间服务器的基础调度问题,在CBS(Constant Bandwidth Server)服务器调度算法的基础上提出RM-CBS(Reconfigurable Multicore CBS)算法。添加服务器参数与变量的部分备份,以支持服务器迁移。添加特定的剩余预算和截止时刻更新算法,以支持服务器参数重配置功能。相较于传统方法,RM-CBS在不改变服务器带宽预留要求的前提下,在CBS基础上集成和改进了服务器带宽回收、参数重配置、核心间迁移等算法,更适用于多核半划分调度。修改经典任务模型的工作量密度定义,在此基础上给出了RM-CBS算法对周期性实时任务的调度可行性条件及证明。修改后的模型较传统模型具有更好的一般性,相应的EDF(Earliest-Deadline-First)调度可行性条件也具有更好的一般性,更加适用于单指令集异构丛集多核处理器。
2.针对软实时周期任务和非实时任务混合的低功耗任务调度问题,构建适用于混合任务集和单指令集异构丛集多核处理器的能耗预测模型。采用BL-CBS(Big-LITTLE CBS)和EAS(Energy Aware Scheduling)算法的低功耗调度策略,选择预测能耗最优的核心放置或拉取任务,给出软实时周期任务和非实时任务混合的,单指令集异构丛集多核处理器上的低功耗任务半划分算法。采用RM-CBS调度实时任务,采用最小可行速率的DVFS(Dynamic Voltage and Frequency Scaling)调度策略降低核心能耗。针对软实时周期任务和非实时任务之间的调度公平性问题,在每个核心上分配一个RM-CBS服务器,在核心可用带宽充足时使用该服务器调度运行非实时任务。在软实时周期任务由于动态启动、参数重配置以及非实时任务服务器带宽占用等问题导致当前调度不可行时,将相关实时任务放入待定队列,禁用非实时任务服务器。采用本地待定任务检查与可行性优先的任务推送和拉取算法,使待定任务加入运行队列。使用Gem5和rt-app进行了相关实验。实验结果表明,相较于传统算法,本文所提算法在EPI(Energy per Instruction)方面平均降低16.18%~36.89%,能够有效保证软实时周期任务作业按时完成,非实时任务作业平均响应比增量小于0.8。
3.在Linux主线内核5.15.36中,修改deadline、fair和real-time调度类及其他相关部分的相关代码,实现本文所提单指令集异构丛集多核处理器混合任务低功耗调度算法。相较于Linux主线内核5.15.36,本文在Linux内核中实现了基于服务器的实时任务多核半划分调度算法,实现了一种有效的服务器重配置算法,实现了一种实时任务与非实时任务之间的动态调度优先级机制。本文实现的内核在任务运行能耗和任务运行性能方面也有更好的综合表现。