一种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法
【技术领域】
[0001] 本发明设及一种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法, 属于软硬件协同设计技术。
【背景技术】
[0002] 基于硬件行为建模的娃前架构评估及设计空间探索可提供忍片设计指导意见,降 低忍片设计迭代周期。在特定处理器和指定程序运行的情况下,乱序处理器稳态下的平均 吞吐率表征了没有缺失事件发生的情况下,处理器性能的极限,同时也在一定程度上反映 了应用程序的设计与硬件是否适配。同时,乱序处理器稳态下的平均吞吐率有助于后续的 乱序处理器整体性能的分析建模。
[0003] 目前对乱序处理器稳态下平均吞吐率的认识经历过两个阶段,第一个阶段是直接 将前端指令发射级的宽度作为乱序处理器稳态下的平均吞吐率,该方法假设:当乱序处理 器没有缺失事件发生时,处理器每个时钟内能够处理与前端指令发射级宽度等量的指令。 运种方法忽略了对指令依赖、功能单元数量和种类、指令延迟、串行指令分布等因素的考 虑,是一种很粗粒度的假设;第二个阶段认为乱序处理器稳态下平均吞吐率与前端指令发 射级宽度、关键路径长度、功能单元数目和种类相关,并认为平均吞吐率只受限于影响最大 的一个因素。该方法相比于第一种方法,考虑了更多影响平均吞吐率的因素,但局限于单一 的影响因素,没有能够考虑到各个要素之间的禪合关系。
[0004] 乱序处理器稳态下的平均吞吐率是指在没有缺失事件发生的情况下,平均每个时 钟发射的指令数目。在指令并行度高且处理器后端功能单元充足的条件下,稳态下平均吞 吐率等于前端指令发射级的宽度D,该参数也是理想状态下的平均吞吐率。但当指令间存在 较强的依赖关系时,比如,后一条指令的执行所需要的数据由前一条指令的执行结果提供, 则平均每个时钟能够发射的指令数目减少,且随着依赖链越长,越多,稳态下平均吞吐率就 会越低。当处理器后端功能单元数目及种类不充足时,即使指令流本身有较高的并行度,硬 件单元受限于数目、种类W及执行延迟的影响,也无法保证最高的平均吞吐率D。另外值得 注意的是,安卓系统中引入的串行指令058、018、158,也限制了稳态下平均吞吐率,串行指 令要求在该指令之前的指令或者数据访问必须全部完成,才能继续执行后续的指令,那么 即使在指令流本身并行度高且处理器后端功能单元充足的条件下,串行指令的分布也很大 程度上影响了稳态下平均吞吐率。
[0005] 最后值得注意的是,稳态下平均吞吐率的大小与各个影响因素之间并不是简单的 单一作用关系,即各个因素之间的禪合效应也在影响着稳态下平均吞吐率的大小,运无疑 加大了机理角度分析的难度。同时由于全仿真时间开销过大,所W本发明针对上述问题提 出了一种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法,用于快速准确地 预测稳态下平均吞吐率
【发明内容】
[0006] 发明目的:为了克服现有技术中存在的不足,本发明提供一种基于人工神经网络 的乱序处理器稳态下平均吞吐率的预测方法,能够根据微架构无关参数快速准确地预测乱 序处理器稳态下平均吞吐率,且预测方法精度高、速度快。
[0007] 技术方案:为实现上述目的,本发明采用的技术方案为:
[0008] 一种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法,包括如下步 骤:
[0009] (1)将指令集模拟器仿真时线程号切换的时间点作为片段分割的间断点,从而将 整个目标程序划分为若干片段,对所有片段按线程号进行划分并排序,统计每个片段包含 的时钟数,删除时钟数小于阔值(比如1000)的片段;
[0010] (2)对目标线程中保留下来的片段,利用指令集模拟器获取每个片段的相关微架 构无关参数,所述微架构无关参数包括动态指令流混合比(浮点、定点、SIMD、Load/Store指 令的数目等)、关键路径长度(针对处理器后端设计的不同,统计相应的关键路径长度分布, 本专利统计关键路径长度为1到40的数目分布)、串行化指令、前端发射指令速率(针对处理 器前端设计的不同,统计相应的发射指令数目分布,本专利统计发射指令数目为0到4的数 目分布)和目标线程的运行总时间;
[0011] (3)首先,考虑BP神经网络对输入数据的要求(动态指令流混合比、关键路径长度 分布、串行化指令),对每个片段的相关微架构无关参数进行预处理,形成对应片段的相关 微架构无关参数向量;然后,通过主成分分析(PCA)对每个相关微架构无关参数向量进行降 维、去噪处理,形成对应片段的Mica化化数据集(微结构无关数据集)。
[0012] (4)对目标线程中保留下来的片段,首先,通过S0M(SelfO;rganizi^Fea1:ureMaps, 自组织映射网络)将所有Mica化ta数据集分成N个大类(比如200个大类);然后,通过k-均值 聚类化means聚类)算法将第η个大类分成Μη个小类(一般每个小类的数目是大类里面片断 数目的15% ),1含η含Ν;选取每个小类中离中屯、点距离最近的点作为该小类的特征点;步骤 (3)和步骤(4)的处理,使得在保留原始数据主要信息的前提下减少了 ΒΡ神经网络模型训练 的输入数据并降低了 ΒΡ神经网络模型训练所需的时间;
[0013] (5)对目标线程中保留下来的片段,将所有特征点作为ΒΡ神经网络的输入,Β巧申经 网络的输出为目标线程的稳态平均吞吐率,对ΒΡ神经网络的输入和输出进行拟合,通过调 节ΒΡ神经网络的迭代次数和训练精度,训练得到目标线程的ΒΡ神经网络模型;
[0014] (6)ΒΡ神经网络模型训练完成后,通过指令集模拟器获得其他待预测线程的微架 构无关参数信息,导入到训练好的ΒΡ神经网络模型中,即可快速准确地预测实际稳态平均 吞吐率值;其他待预测线程包括目标程序中的线程,或者其他应用程序中的线程。
[0015] 具体的,所述步骤(5)中,Β巧巾经网络有Ξ个隐含层,第一隐含层采用30个神经元, 第二隐含层采用15个神经元,第Ξ隐含层采用15个神经元;输入层和第一隐含层之间、第一 隐含层和第二隐含层之间采用logsig传递函数,第二隐含层和第Ξ隐含层之间、第Ξ隐含 层和输出层之间采用purelin传递函数,各层结点之间的权重值均使用trainscg(量化共辆 梯度法)进行调节,训练方法采用LM化e venbergMarquard)算法。
[0016] 有益效果:与现有的稳态平均吞吐率的预测方法相比,本发明提供的基于人工神 经网络的乱序处理器稳态下平均吞吐率的预测方法,覆盖了影响稳态平均吞吐率的多个微 架构无关参数,其中包括:动态指令混合比,关键路径长度分布,串行指令分布;此外,本发 明采用神经网络对稳态平均吞吐率进行预测,能够充分地考虑到微架构无关参数之间的禪 合性,并且通过训练好的模型能够准确快速地预测到稳态平均吞吐率的值。
【附图说明】
[0017]图巧采用本发明训练Ann模型的具体流程图;
[0018] 图2为神经网络模型训练、测试的输入与目标输出框图;
[0019] 图3为神经网络层级图。
【具体实施方式】
[0020] 下面结合附图对本发明作更进一步的说明。
[0021] -种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法,包括如下步 骤: