本文主要是介绍综述翻译:Machine Learning-Based Cache Replacement Policies: A Survey 2021,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘要:
虽然在提高命中率方便有了广泛进展,设计一个模拟Belady‘s 算法的缓存替换策略依旧很有挑战。现存的标准静态替换策略并不适合动态的内存访问模式,而计算机程序的多样性加剧了这个问题。有几个因素影响缓存策略的设计,如硬件升级,内存开销,内存访问模式,模型延时等。
用机器学习的算法解决缓存替换的问题取得了令人惊讶的结果,并朝着具有成本效应的解决方案发展。在本文中,我们回顾了一些基于机器学习的缓存替换策略,它们优于静态启发式策略。
keywords:Belady’s algorithm, Cache Replacement, Machine Learning
1. Introduction
Ⅱ背景:
Ⅲ 基于ML的高速缓存替换策略
常用的增强缓存替换的机器学习技术是强化学习(RL)[13]和循环神经网络(RNNs),特别是长短期记忆(LSTMs)[14]。RL可以被视为一种典型的缓存替换解决方案,其中评估并学习服务于过去缓存访问的一系列操作,以生成新策略。在任何中间状态下,没有任何行动被认为是最好的;如果一个行动导致了一个好的政策,那么它就被认为是好的。lstm是一种能够学习的神经网络,它通过学习序列数据来预测下一个时间步的输出。
在缓存替换的上下文中,缓存访问的历史记录形成了顺序数据。对基于ml的缓存替换策略进行分类的一种方法是基于pc的(程序计数器)、非基于pc的和使用传统静态启发式作为专家训练的模型。下面将讨论其中的一些技术:
A. LeCAR
LeCAR是一种基于ML的缓存替换算法,设计用于较小的缓存大小(相对于工作负载),它利用了众所周知的静态启发式算法,LRU和LFU [15]所提供的好处。基于LRU和LFU权值的概率分布的策略提供每个缓存丢失。LeCAR框架被建模为一个具有遗憾最小化的强化学习问题。遗憾最小化的基本原则是“有时后悔是一种改进的好方法”。遗憾是指本应采取的行动方针。
LeCAR维护一个FIFO队列,该队列保存从高速缓存中最近的删除(历史记录)。队列中的每个条目都被导致其被驱逐的策略所标记,即LRU或LFU。如果在队列/历史中找到引用,与策略相关的遗憾将增加,并更新其他策略的权重,表明可以做出更好的决策。这是一个在线模型,模型在每次失误后学习,以减少遗憾。当对ARC进行评估时,LeCAR消耗的空间是工作集的3倍,但缓存大小是工作集(1/1000)的18倍。ref: GitHub - sylab/LeCaR: The design and algorithms used in LeCaR are described in this USENIX HotStorage'18 paper and talk slides: https://www.usenix.org/conference/hotstorage18/presentation/vietri
B. CACHEUS
CACHEUS是LeCAR的自适应版本,它采用了基于梯度的随机爬山方法来计算学习率。
虽然LeCAR被证明只对某些类型的工作负载(LRU和LFU友好)是有效的,但CACHEUS被设计用来适应其他工作集、扫描和干扰[16]。扫描是指一组只被访问一次的高速缓存条目。搅动是指一组以等概率重复访问的缓存条目。CACHEUS首先使用了最先进的缓存算法LFU、LIRS和ARC作为专家,类似于LeCAR如何选择两个策略,LRU和LFU,来做出驱逐决定。然而,通过设计一种新型自适应抗扫描的LRU(SR-LRU)和抗扰动的LFU(CR-LFU),在广泛的工作负载中提高了性能。
在测试网络邮件工作负载时,ARC、LIRS、LeCAR的缓存命中率分别为30.08%、40.71%和42.08%,而以SR-LRU和CR-LFU作为专家的缓存命中率为43.95%,被证明是最一致的算法[16]。
C. Hawkeye
霍凯将缓存替换定义为一个二进制分类问题,其中缓存行被归类为对缓存友好或厌恶缓存的[17]。霍凯由3个主要组成部分组成,即OPTgen,霍凯预测器和一个采样器。OPTgen可以看作是一个模拟器,它可以有效地模拟了Belady的算法来生成输入。输入基本上表示内存访问的历史。如果OPTgen将某个特定的行标识为缓存命中,那么任何访问这些行的PC都被认为是积极的例子,否则则是消极的例子。这些例子被用于训练基于Belady的最优策略的鹰眼预测器/二元分类器。如果分类器计算缓存友好,这些行被标记为高优先级,而厌恶缓存的行被标记为驱逐/替换候选行。这种方法最困难的方面是构建OPTgen,它使用一种称为活动间隔的新方法来解决。OPTgen提出的另一个挑战是计算最优决策的长期历史需求,使用集合决斗采样器通过采样缓存线的采样器来减少存储需求。对于SPEC 2006 CPU基准测试,鹰眼对2MB LLC比LRU降低了8.4%,对4个核心系统wi降低了15%
虽然鹰眼和滑翔机是两个最有效的基于pc的预测器,但有成本效益低的开销和硬件升级的替换策略是至关重要的。在RLR中,最初,通过训练强化学习(RL)代理和爬山分析[19]来推导出一组目标特征。根据神经网络权值选择预用距离、线最后访问类型、插入后的行命中和线近因性等特征。特征选择的过程是完全自动化的,并允许RL代理能够适应中的访问模式的动态变化。然后,通过为缓存行分配优先级级别,使用这些有限的特性设计了一个替换策略。PC被有意排除在特征集之外,因为它增加了硬件复杂性以及向PC数据传输到LLC所产生的通信开销。RLR优于现有的基于非pc的预测器DRRIP。通过可忽略的开销,RLR比LRU [19]的单核和四核系统性能分别提高了3.25%和4.86%。
F PARROT
PARROT是第一个使用近似于Belady的[20]的模仿学习来构建端到端缓存替换策略的方法。该算法首先将输入,即缓存访问(嵌入式内存地址和嵌入式PC)转换为状态。为了减少train和test期间状态分布差异造成的复合误差,转换采用了DAgger方法。在LSTM模型中,这些状态被采样和初始化为隐藏状态,随后使用BPTT算法进行训练。将初始化的替换策略应用于其余的状态,就会得到损失函数。损失函数由预测重用距离时发生的等级损失和损失之和给出。权重参数根据这个损失函数进行更新,允许学习替换策略。对于鹦鹉来说,之前被认为可以准确接近贝拉迪的访问次数被发现是80次,之后的改进达到饱和。与传统的网络搜索基准策略相比,鹦鹉的LRU策略将缓存命中率提高了61%。不幸的是,由于该模型的大尺寸和高延迟,其实际应用受到了限制。
这篇关于综述翻译:Machine Learning-Based Cache Replacement Policies: A Survey 2021的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!