目录
一、Article:文献出处(方便再次搜索)
(1)作者
(2)文献题目
(3)文献时间
(4)引用
二、Data:文献数据(总结归纳,方便理解)
(1)背景介绍
(2)目的
(3)预置知识
(4)主要实现手段
4.1 overview
4.2 MPGraph的工作流程
4.3 阶段转换检测器 Phase Transition Detector
4.4 多模态访存预测器Phase-Specific Multi-Modality Predictors
4.5 链式时空预取策略
(5)实验结果
5.1 实验设置
5.2 Phase Transition Detection评估
5.3 Multi-Modality Predictors 评估
5.4 预取评估
5.5 实际应用
(6)问题记录
三、Comments对文献的想法 (强迫自己思考,结合自己的学科)
四、Why:为什么看这篇文献 (方便再次搜索)
五、Summary:文献方向归纳 (方便分类管理)
预取的特定领域特征:
Context of architecture
Contex of Computation
在体系结构的上下文中,目标平台是一个多核共享内存体系结构,如图1所示,它可以作为HPC的一个节点。内存层次结构由私有L1缓存(包括数据缓存L1D和指令缓存L1I)、私有L2缓存、共享末级缓存(LLC)和共享主存组成。这导致了来自于来自不同核心的交错指令的LLC数据请求。作者考虑了系统的内存地址配置,预取在块级别,虚实地址转换在页面级别。在此基础上,训练了数据预取的页面和块索引预测模型。
在计算的上下文中,文中提到了使用各种计算范式的图处理框架,如MapReduce、Scatter-Gather和GAS(Gather-Apply-Scatter),作者的目标是针对具有迭代屏障同步阶段的图分析框架进行优化。作者以GPOP框架为例,展示了如何将领域特定的特征应用于领域特定的ML模型。GPOP是一个基于Scatter-Gather范式的图分析框架,该框架由两个阶段组成:Scatter和Gather。其中,Scatter阶段将当前顶点的值沿边传播到其邻居顶点,而Gather阶段则累积来自邻居顶点的值来更新顶点的值。作者在模型开发中特别考虑了领域特定的特征,如阶段、模态和局部性(phase, modality, and locality)。简单来说:
阶段的纳入:
模态的纳入:
局部性的纳入:
MPGraph的整体设计和工作流程如下图所示:
预取过程从一个阶段转换检测器开始,该检测器读取PC序列并检测阶段转换(详见第4.3节,阶段转换检测器)。对于每个阶段,都有特定于该阶段的多模态预测器,用于空间增量预测和时间页预测,这两者都使用地址序列和PC序列作为输入的两种模态(详见第4.4节,多模态访存预测器)。为了选择特定于阶段的预测器并管理增量和页预测,作者开发了一个预取控制器,该控制器采用一种新颖的链式时空预取策略并生成预取请求(详见第4.5节,链式时空预取策略)。这些模型将用于执行内存访问预测和预取,以改进每个周期的指令(IPC)。
阶段是由软件定义的,提取阶段标签需要访问源代码和软件接口。基于这一考虑,作者根据阶段标签的可访问性,为两种情况开发了阶段转换检测器。
4.3.1 Phase label Inaccessible.
在无法访问到阶段标签的情况下,使用无监督学习模型来检测阶段转换。
这里将阶段转换描述为机器学习环境中的概念漂移(concept drift),当模型学到的模式不再成立时,就会发生概念漂移,如果要对概念漂移下定义的话,概念漂移是一种现象,即目标领域的统计属性随着时间的推移以一种任意的方式变化。
Kolmogorov–Smirnov Windowing (KSWIN) 是一种最先进的数据流概念漂移检测模型。它是基于两个样本柯尔莫戈罗夫-Smirnov(K-S)检验,它估计了从相同的分布中抽取两组样本的概率。KSWIN通过比较两个窗口的分布来检测概念漂移:一个包含ℎ历史样本,另一个包含最近的样本。显著性水平决定了KSWIN模型中漂移检测的阈值,其选择也至关重要。该模型对的选择非常敏感。值越大可能会增加假阳性检测率,而值越小可能会导致模型检测漂移失败。
Kolmogorov-Smirnov检验(KS检验):
1.基本原理: KS检验的基本原理是比较观察到的数据分布(经验分布函数)与理论分布(通常是正态分布或其他特定分布)的累积分布函数(CDF)之间的最大差异。KS检验使用了样本中的最大绝对偏差(最大的绝对差异),该偏差被称为KS统计量。
2. 用途:主要用途是检验一个样本的分布是否与一个已知的理论分布相符。它通常用于整体拟合度检验,即确定样本是否来自某个特定的分布。Eg:你可以使用KS检验来检查一个数据集是否符合正态分布。如果KS检验的p值低于显著性水平,那么我们不能拒绝样本与理论分布相符的原假设。
计算方法参考链接:Kolmogorov-Smirnov test (K-S 检验) - 知乎 (zhihu.com)
需要注意的是,这种“硬”检测过程忽略了阶段内部脉冲模式的变化,可能导致误报检测。(这个没明白,如下图所示)
Soft-KSWIN,它是KSWIN的一个特定领域变体,专门用于检测图处理阶段转换。它利用领域知识,即phase在数百万条指令内是稳定的,以避免误报。Soft-KSWIN算法通过使用从动态历史数据点集中采样的软历史窗口'来设计软检测过程,如图5(b)所示,算法流程如下。
4.3.2 Phase label Accessible.
处理阶段可以使用源代码、程序员注释和Intel Pin]等仪器工具进行离线标记。然后,可以使用PC trace和phase标签来训练一个有监督的模型。常用的2种方法:
为了预测图处理的每个阶段,作者训练了特定于阶段的预测器。为了充分利用空间和时间的局部性,作者设计了两个领域特定的模型:空间增量预测器和时间页预测器。为了实现这些预测器,我们开发了一个名为AMMA的基于注意力机制的网络,用于提取特征。注意力机制在预测中具有高适应性,并且在实现中具有高并行性。
4.4.1 预测器训练和推理的工作流程
MPGraph中的预测器被离线训练,然后部署起来进行在线推理。简而言之,MPGraph预测器的训练和推断的工作流程如下:首先,通过监视应用程序对共享最后一级缓存的访问来提取内存访问trace。然后,使用提取的trace数据,设置扫描窗口来获取过去的访问和未来的访问标签。接下来,使用这些标签和内存访问trace数据,离线训练特定于阶段的模型。最后,将训练好的模型部署到MPGraph预取器中,以加速应用程序的未来执行。
4.4.2 AMMA
由三种基于注意的层组成:自注意层、多模态注意融合层和变压器层。(简单来说,其实就是Transformer的流程)
空间增量预测器:图7(a) 展示了空间增量预测器的模型。它使用地址序列和PC序列作为输入,其中AMMA作为backbone特征提取器,而多层感知器(MLP)作为分类头部,使用Sigmoid函数。输入预处理使用地址分段方法将输入内存地址划分为一系列段,以便ML模型能够处理,并避免对地址空间(数百万级别)进行标记化处理。PC被哈希和归一化以供模型处理。模型预测空间范围内(即1页大小)的多个未来增量,当前地址与预测增量之和是未来访问的预测值。模型使用未来增量的标签进行训练,以多标签分类的形式表示,使用二元交叉熵作为损失函数。
时间页预测器:图7(b)展示了时间页预测器的模型。它以内存地址的页面部分作为一个模态,并使用PC作为另一个模态。AMMA作为特征提取器,MLP使用Softmax激活函数作为分类头部。输入的页面序列被标记化,因为其词汇表较小(数千个),可以被ML模型处理。模型输出下一个未来页的概率,由Softmax函数确定。模型使用未来页标记作为标签进行训练,使用分类交叉熵作为损失函数。
这两个预测器都使用AMMA作为特征提取器,并使用MLP作为分类头部,训练过程分别使用未来增量和未来页作为标签。
预取控制器的两个功能:切换特定阶段的预测器(Phase-Specific Multi-Modality Predictors)和指定预取请求。同时,介绍了一种称为Chain Spatio-Temporal Prefetching (CSTP)的新策略来确定预取内容。
benchmark:使用三种流行的图形处理框架来评估MPGraph: GPOP、XPStream 和 PowerGraph 。使用该框架的内置应用程序进行评估,包括:Breadth-First Search (BFS), Connected Components (CC), PageRank (PR), Single Source Shortest Path (SSSP), and Triangle Counting (TC),见表1。
dataset:使用6个真实世界的图数据集和一个基于R-MAT的随机生成的合成图来评估MPGraph和baseline,如表2所示。
simulator:使用ChampSim 行物理地址的trace生成和预取器评估。模拟器参数详见表3。需要注意的是,虽然实验中的图形数据集可以存储在DRAM中,但它们不适合LLC。
trace generation:使用Intel Pin工具从运行在4个核心上的基准应用程序中提取指令trace。然后,使用ChampSim工具从共享的最后一级缓存(LLC)中提取内存访问trace。对于模型的训练,使用来自框架计算的第一次迭代的追踪trace。对于模型的测试和预取仿真,使用接下来的10次迭代的追踪trace。
表6和表7展示了空间增量预测和时间页面预测性能。在空间增量预测方面,AMMA-PS在所有应用程序中展现出最高的F1分数,相比于LSTM,性能提升了11.15%到24.01%,相比于Attention,性能提升了4.52%到11.83%,相比于AMMA,性能提升了2.46%到5.9%,相比于AMMA-PI,性能提升了1.79%到5.2%。
在时间页面预测方面,AMMA-PS同样展现出最佳的accuracy@10性能,相比于LSTM,性能提升了8.23%到25.5%,相比于Attention,性能提升了4.67%到22.6%,相比于AMMA,性能提升了2.03%到21.15%,相比于AMMA-PI,性能提升了1.36%到21.24%。
由于每个阶段中存在独特的时间模式,相较于其他模型,针对具体阶段的模型在页面预测方面表现得更加优越。
1. 二进制编码(Binary Encoding):使用二进制编码压缩来减少时间页面预测器的词汇表和输出维度。通过用一个16维的二进制向量表示2^16个类(页面标记),可以将模型的输出维度减少到16,输入标记的词汇表减少到2。这样,在表5中具有2^16个类的模型中,可以将参数从13M减少到397K,达到高达33倍的压缩比。可以进一步使用知识蒸馏(Knowledge Distillation)进行模型的压缩。
2. 知识蒸馏(Knowledge Distillation):知识蒸馏是指将大型教师模型的知识传递给较小的学生模型。通过调整表5中描述的AMMA配置并将其作为学生模型进行训练,可以将空间预测器的大小从419.6K减少到7.5K参数,将时间预测器的大小从397K减少到1.9K参数,实现了总体上的87倍压缩。当压缩模型时,图13显示知识蒸馏显著提高了模型性能。通过使用个特定阶段的教师模型训练单个学生模型,可以进一步将预测器压缩倍(每次迭代的阶段数)。虽然压缩会导致性能下降,但与最佳的非机器学习预取器BO相比,MPGraph仍然显示出比其更高的IPC改进(5.47%)。
3. 量化(Quantization):通过使用8位表示模型中的权重,并应用上述优化方法,可以将空间模型的存储成本减少到7.5KB,将时间模型的存储成本减少到1.9KB。通过执行此优化,我们的模型的需求与基准规则型预取器(如BO的4KB存储)和ISB(8KB存储)相似。
1. 并行实现(Parallel Implementation):神经网络的硬件加速已经得到广泛研究。MPGraph基于注意力机制,该机制可以高度并行化。通过完全并行化AMMA模型的实现,可以使用基于图7的关键路径估算延迟。
公式(12)中的各项表示不同部分的计算时间,包括嵌入层、自注意力层、多模态注意力融合层、Transformer层、输入处理和输出层等。假设完全并行,可以估计整体延迟。对于原始模型(=128),整体延迟估计约为123个处理器周期,对于压缩模型(=8),整体延迟估计约为79个处理器周期。
2. 查找表近似(Approximation as a Look-Up Table):通过使用查找表(Look-Up Tables,LUT)来加速模型推理过程,避免复杂的计算。最近的研究已经探索了使用查找表来近似矩阵乘法和激活函数,以及使用基于查找表的内存中处理方法来加速神经网络推理。通过实现基于层的查找表,对于图7中具有融合层和Transformer层内的两个子层的模型,模型推理延迟可以减少到约8个周期,而不考虑模型的维度。
3. 距离预取(Distance Prefetching):除了减少内存访问预测模型的推理延迟外,距离预取提供了一种通过跳过推理槽位并预测未来的内存访问来隐藏或抵消延迟的替代方法。图14显示,距离预取(DP)有效地避免了由于模型推理延迟引起的性能损失。在模拟过程中引入200个周期的延迟后,未压缩的和87倍压缩的MPGraph相对于BO分别提高了8.77%和3.58%的IPC改进。
基于机器学习的模型,没有说明超参数是如何设置的?
特定领域的特征是如何选取的?文中提到包括:compuation和architecture的上下文特征。
作者的目标是针对具有迭代屏障同步阶段的图分析框架进行优化,但是没有说为啥,conclusion中又提到文中的方法可以拓展到异步框架的每个线程?(菜菜懵懵)
简而言之,这篇论文提出了一种基于机器学习的图分析预取器MPGraph,它利用领域特定的模型和策略来提高性能。该方法可以应用于异步框架和图机器学习等领域,并具有扩展到其他场景的潜力。行文流畅,逻辑严密,让我这个小白也能较快的读下来。但是读下来脑子里只有一个大概模糊的轮廓,这篇论文的工作量还是很大的,有大量的实验评估。
任务需要
数据预取 ML Prefetcher