摘要:
研究背景 缓存管理的核心是缓存替换策略,目前已有的基于机器学习的缓存替换策略是在没有硬件预取的情况下进行评估的,在存在预取的情况下,目前的替换策略会提供较小的性能改进甚至降低性能。因为这些替换策略没有区分预取和需求请求,导致对预取和需求请求做出了相同的插入和驱逐决策。然而,预取请求与需求请求具有不同的属性,通常,由需求请求插入的缓存行比预取请求插入的缓存行对性能更重要。与此同时,缓存冗余的预取数据将造成缓存污染,导致替换策略表现的性能增益下降。
目的 通过设计一个预取感知的智能缓存替换策略,提高预取干扰下缓存行重用预测的准确度。预取感知的智能缓存替换策略的目标是:(1)区分预取和需求请求,并针对两种请求设计不同的硬件友好的整数支持向量机(Integer Support Vector Machine,ISVM)预测器,提高缓存块重用预测的准确性,更好地融合硬件预取和缓存替换带来的性能优势;(2)避免有害预取造成的缓存污染,保留对缓存有价值的预取缓存行,从而提高缓存管理的效率。
方法 为了设计适应硬件预取的智能缓存替换策略,我们提出了一种新的设计方法,将机器学习用于设计预取感知的智能缓存替换策略(Prefetch-Aware Intelligent Cache Replacement Policy,PAIC)。PAIC将缓存替换描述为一个有监督的学习问题,基于整数支持向量机为需求请求和预取请求设计单独的预测器,提高对不同请求加载的缓存行重用预测的准确度。通过学习在开启预取的情况下历史缓存访问需求访问缺失数最少的缓存决策,产生训练预测器的输入标签;当插入新的缓存行时,选择对应请求类型的预测器预测缓存行的重用性,该预测结果用于缓存插入和驱逐决策,从而提高缓存管理的效率。通过为不同类型请求设计单独的基于ISVM的缓存重用预测器,改善预取干扰下缓存行重用预测的准确度,减少预取引起的缓存污染,并结合了硬件预取和智能缓存替换带来的性能优势。
结果 通过区分预取和需求请求的重用预测,PAIC可以更好地结合预取和替换策略带来的性能优势。我们在SPEC 2006和SPEC 2017中的27个访存密集型benchmark上评估PAIC,在单核配置下,PAIC比LRU的性能提高了37.22%,相比之下,SRRIP、DRRIP、SHiP、Hawkeye和Glider的性能分别提高了32.35%、31.96%、32.93%、34.56%和34.43%;在四核配置下,PAIC比LRU的性能提高了20.99%,相比之下,SRRIP、DRRIP、SHiP、Hawkeye和Glider的性能分别提高了13.83%、12.74%、13.23%、17.89%和15.50%。
结论 我们提出了一种适应预取的智能缓存替换策略,以缓解开启预取下替换策略性能增益下降的问题。PAIC对预取和需求请求使用不同的预测器,并将历史PC序列输入到基于ISVM的预测器中,这显著提高了对不同请求加载的缓存行重用预测的准确度。在单核配置下,PAIC比基线(不开启预取的LRU)的性能提高了37.22%,比Glider提高了2.79%。在四核配置下,PAIC的性能比基线提高了20.99%,比Glider提高了5.49%。总体而言,本文提出的适应预取的智能替换策略为应用机器学习结合硬件预取和缓存替换策略的性能优势提供了指导。在多核处理器中,缓存一致性是一个重要的问题,在预取方面基本上没有得到研究,我们未来的工作将侧重于开启预取下的缓存一致性问题研究。