摘要
多核处理器的最后一级缓存(Last Level Cache,LLC)采用共享机制,当多个程序并行随机访问LLC时,可能引起访存冲突,进而导致系统整体性能的大幅下降.已有研究者试图通过引入缓存划分,合理安排不同程序对LLC的访问时机,解决访存冲突问题.然而,现有的缓存划分方法主要采用启发式算法,即通过不断“试错”寻找缓存划分最优方案,寻找过程具有不确定性.这种不确定性可能导致划分开销过大甚至出现无法收敛的问题.为此,我们提出了一种基于机器学习的跨平台缓存划分方法MLPart.该方法借助少量运行参数,利用决策树和序列到序列模型预测剩余各个划分方案的性能,直接找到最优的划分方案,从而保证划分开销相对稳定且有效避免了无法收敛的情况.此外,实验表明如果计算平台之间存在着微小配置差异,即使运行相同程序所产生的运行参数也存在较大差异,因此单一模型通常没有足够的泛化能力适应不同的平台.为解决该问题,我们分别利用迁移学习技术和微调技术优化决策树和序列到序列模型,使其能以较低的计算开销完成不同平台的模型快速迁移部署.我们以当前主流的Intel至强(Xeon)处理器平台展开实验,实验结果表明MLPart能够通过少量划分步骤找到性能最佳的缓存划分方案;并且,与采用启发式缓存划分方法KPart,采用基于贝叶斯优化的缓存划分方法CLITE以及采用机器学习的缓存划分方法C&A相比,MLPart对工作集的性能提升更高且更为稳定.
- 单位