HIART-MCS: High Resilience and Approximated Computing Architecture for Imprecise MCS 2020'RTSS 的期刊拓展版。
以下只讲拓展部分
一、文章核心
文章提出了一种新的IMCS框架,名为HIART-MCS,能够在运行时动态调整计算精度,从而减少由于不精确计算带来的计算错误,并在不牺牲系统性能的前提下,提升系统的吞吐量和灵活性。此外,文章还提供了该系统的理论分析和优化方法,并通过实验验证了该框架在不同配置下的效果。核心目标是通过改进的架构和硬件设计,既保证高关键性任务的实时性,又提升低关键性任务的存活率和系统整体的可用性。
二、MID-mode
HIART-MCS系统如何通过近似计算加速低关键性任务(LO-tasks)的执行,但代价是计算精度会降低。为此,系统需要为每个低关键性任务获取三个关键属性:
-
近似程度(Mi):这是任务执行时对操作数尾数部分的近似掩码值,取值范围为0到23。近似程度越高,任务的计算速度越快,但精度越低。
-
计算质量(Qi):表示任务在近似计算下的正确性水平,取值范围是0%到100%。随着近似程度的增加,计算质量可能下降。
-
在中模式下的最坏情况执行时间(WCET,Cap i):在“中模式”下,由于应用了近似计算,任务的执行时间相对于“低模式”(LO-mode)的最坏情况执行时间(Clo i)会有所缩短。
为了获得这些属性,文章提出了一种基于实验测量的方法。这个方法的具体步骤如下:
-
初始化和输入生成:首先初始化传统的MCS系统和HIART-MCS系统,并生成随机的输入数据集。
-
实验测量:通过不同的近似程度(从0到23)运行任务,并记录每次执行的输出结果和执行时间。
-
结果分析:将HIART-MCS的输出结果与参考结果进行比较,并判断是否在可接受的范围内。计算每种近似程度下的执行时间和计算质量,并得到一张评分表,用于记录不同近似程度下的“通过”情况,并用公式 Q(x)=通过的案例数/测试的案例数×100%计算每个近似程度下的计算质量。
这个方法的目标是找到能够在计算质量和实时性能之间取得最佳平衡的近似程度配置。每个应用领域可能会有不同的验证函数(atf)来判断计算结果是否可接受,例如,卷积神经网络(CNN)任务要求输出结果与参考结果完全匹配,而图像处理任务则可能根据信噪比来判断结果的接受度。
三、理论分析
表格2展示了在中模式下,卷积神经网络(CNN)任务的近似程度、计算质量(Qi)和最坏执行时间(Cap i)的关系。
- Mi(x): 表示近似程度。越高的值表示越多的位数被近似,从而导致计算速度更快,但精度降低。
- Qi(x): 表示计算质量,它反映了任务的计算正确性。随着近似程度增加,计算质量会逐渐下降,但通常保持在90%以上,以确保任务的计算结果仍然可以接受。
- Cap i(x): 表示在不同近似程度下的最坏执行时间。随着近似程度的增加,任务的执行时间会缩短,因为使用了较少的计算资源。
例如,当Mi为1时,计算质量为100%,最坏执行时间与低模式下的最坏执行时间(Clo i)相同。当Mi增加到19时,计算质量下降到91.3%,但最坏执行时间缩短为原来的62%。
1. 时间分析和优化的介绍
首先,文章引入了时间分析(RTA, Response Time Analysis)的概念,来确定给定任务集在约束的截止时间内是否可调度。随着中模式(MID-mode)的引入,模型和分析必须根据新的设计进行调整。这里,系统的可调度性分析基于双关键性分析(dual-criticality analysis),并且低关键性任务在中模式下的执行时间比在低模式下更短。
- 目的:在系统中引入中模式后,文章希望通过分析和优化,确保系统在执行不同任务时可以按时完成任务,并优化系统的整体效用。
2. 任务模型
为了进行分析,文章定义了任务模型,描述了任务在系统中的属性和行为。
- 任务的主要属性:
- 执行时间(Ci):任务的执行时间可能有多种值,例如低模式的执行时间(Clo i),中模式的执行时间(Cap i),和高模式的执行时间(Chi i)。
- 截止时间(Di):任务必须在此时间之前完成。
- 周期(Ti):任务触发的时间间隔。
- 近似度(Mi):低关键性任务在中模式下的近似计算程度,Mi越大,表示越多的计算位数被忽略,速度更快但精度下降。
文章进一步讨论了如何根据关键性的不同来管理任务的最坏执行时间(WCET, Worst Case Execution Time)。对于低关键性任务,WCET在中模式下会比低模式下小(Cap i < Clo i),因为低关键性任务在中模式下使用近似计算。
3. 响应时间分析(RTA)
为了确保系统的可调度性,文章介绍了系统在不同模式下如何进行响应时间分析(RTA)。具体来说,系统需要在三种模式下检查可调度性:
- 低模式(LO-mode):任务按照传统模式运行。
- 中模式(MID-mode):低关键性任务使用近似计算。
- 高模式(HI-mode):低关键性任务被完全丢弃,只剩下高关键性任务。
同时,还必须考虑模式切换时的可调度性,例如从低模式切换到中模式,或从中模式切换到高模式。
文章通过固定优先级抢占式调度策略(FPPS),讨论了任务的响应时间如何通过公式计算。在不同模式下,任务的响应时间受其他优先级更高的任务的干扰(interference)影响。
分析非常传统也不难理解,这里不再多赘述,有兴趣可留言或自行查看原文。
4. 优化高关键性任务的中模式最坏执行时间(Cmi i)
文章接下来讨论了优化的重点:如何优化高关键性任务的中模式最坏执行时间(Cmi i)和低关键性任务的近似度(Mi)。核心思想是,优化应确保任务在不影响可调度性的前提下,选择合适的近似计算程度和执行时间。
4.1 优化问题的两种解决方法:
-
基于优先级排序的优化:
- 通过从高优先级任务开始,逐一优化每个高关键性任务的中模式最坏执行时间(Cmi i)。
- 该方法优先确保高优先级任务的执行,但其缺点是任务的失败概率不一定与任务的优先级有关。
-
全局缩放优化:
- 引入了一个全局缩放因子γ,均匀地调整所有高关键性任务的中模式最坏执行时间。
- 该方法更公平,因为它不区分任务优先级,所有高关键性任务的执行时间通过相同的比例进行缩放。
文章还提出了动态调整近似度的可能性,通过对低关键性任务的近似度Mi进行优化,可以进一步提升系统的性能。
5. 优化与算法
为了找到最优的全局缩放因子γ,文章使用了二分搜索算法。通过逐步缩小γ的取值范围,找到一个既能保证系统可调度性,又能优化任务执行时间的缩放因子。
如何通过动态调整低关键性任务的降级程度(即计算精度)来优化系统的性能。换句话说,降级程度可以被看作一个可调节的参数,而不是固定值。通过优化这个参数,可以在不牺牲太多计算正确性的前提下,加快任务的执行,并提高系统整体的服务质量。
具体来说:
-
前提假设:在之前的部分中,降级程度(Mi)是通过经验分析预先确定的,意味着低关键性任务的最坏执行时间(Cap i)是固定的。然而,为了进一步提升系统性能,降级程度可以被视为一个设计参数,通过算法来寻找最优值。
-
优化目标:优化的目标是找到每个任务的最佳降级程度,使得系统的服务质量总和最大化。服务质量反映了任务在不同降级程度下的正确性与速度的平衡。例如,任务的计算精度可能稍有降低,但执行速度会更快。我们需要找到一个在这两者之间最优的平衡点。
-
约束条件:优化过程需要满足系统的可调度性,即所有任务在规定的截止时间内完成,确保系统不会因为过度降级导致任务超时。
-
解决方法:由于解空间较大,文章提到可以使用元启发式算法(如遗传算法)来寻找最佳的降级程度组合。每个任务可以有不同的降级程度,因为任务对近似计算的敏感性不同。通过动态调整每个任务的降级程度,可以灵活地在可调度性和系统性能之间进行权衡。