CN105955709A - 基于机器学习的预取能效优化自适应装置及方法 - Google Patents
基于机器学习的预取能效优化自适应装置及方法 Download PDFInfo
- Publication number
- CN105955709A CN105955709A CN201610236148.4A CN201610236148A CN105955709A CN 105955709 A CN105955709 A CN 105955709A CN 201610236148 A CN201610236148 A CN 201610236148A CN 105955709 A CN105955709 A CN 105955709A
- Authority
- CN
- China
- Prior art keywords
- prefetches
- program
- prefetch
- data
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Abstract
本发明公开了一种基于机器学习的预取能效优化自适应装置及方法,本发明的结合机器学习的动态调整预取配置的方法,能够根据应用的特征最大化预取能效。具体如下:a、提取程序特征:通过硬件计数器提取应用程序在运行时的存储访问行为及预取相关行为信息,作为程序特征观测量;b、构建训练数据集:根据程序特征提取的结果,选择与预取能效最相关的特征及达到最大能效时预取的配置,作为一个有效数据;c、训练学习模型:给定程序的特征观测量及对应的最优预取配置作为模型的输入,采用机器学习的算法训练学习模型;d、动态预测预取配置:学习模型根据新的应用程序运行时收集程序特征观测量对程序进行分类,预测预取的配置最大化能效。
Description
技术领域
本发明涉及计算机存储系统的性能优化领域,结合机器学习方法优化预取的能效。
背景技术
硬件数据预取是提升系统性能的有效方法之一。当前处理器系统多采用一种或多种数据预取的方法来优化存储系统。由于预取效果与应用程序及处理器结构密切相关,而且同一应用程序在运行时的不同阶段的运行特性表现不同,因此单一的预取引擎很难适合所有的应用程序。另外,激进的过度预取会污染高速缓存、增加带宽需求,从而导致性能降低与功耗增加。为了应对上述问题,很多研究人员采用多种预取方式,如多模式自调预取[1],能够识别流模式和链式模式数据流,提升不同应用运行时的性能。但是当存在多种预取配置时,如何选择合适的预取是存在的挑战之一。当前主要是通过经验来调整,预取的准确率并不是很高,而且实验发现很多预取配置性能接近,不需要激进的预取。如何设计中折中预取精度与硬件开销,提高预取能效是未来处理器系统亟需解决的核心技术。
机器学习系统自动地从数据中学习程序,挖掘出数据中的映射关系,能够很好的对目标预测分析,解决非线性问题,已经被广泛地应用于计算机科学等领域。在体系结构的研究中,很多研究人员借助机器学习的方法来加快设计空间的探索、资源分配、调度、负载平衡、分支预测,以及根据程序的特性预测预取配置和缩小预取引擎的设计空间。研究人员针对IBMPOWER8处理器[2](25比特配置表示)的大型预取配置空间结合线性判别分析的方法缩小预取搜索空间(从225缩小到5种),并实现动态预测预取的配置。主要考虑的问题是搜索空间的缩小,但是未考虑到功耗问题,实际上有很多种预取配置的性能接近但是功耗不一样,在性能优势接近时应优先选择功耗较低的配置。针对IntelCore2Quad Q6600中的多种预取配置,研究人员提出结合机器学习方法最大化预取效率的方法[3],主要对程序的特征详细分析,提取与预取性能最相关的特征,并量化表示不同程序间的特征,从而提高预测的准确性,分析三种不同的机器学习方法(决策树、logistic回归和欧氏距离)来预测预取的性能提升,离线分析,未实现动态调整,也未考虑能效问题。
上文中涉及的文献如下:
[1]、多模式数据预取装置及其管理方法。发明人:刘鹏,刘勇,辛愿,专利号ZL201310134803.1申请日:2013-04-18,授权公告日:2016-03-02。
[2]、Li Minghua,Chen Guancheng,Wang Qijun,Lin Yonghua,Peter Hofsee,Per Stenstrom,Dian Zhou,PATer:A Hardware Prefetching Automatic Tuner on IBM POWER8Processor.IEEEComputer Architecture Letters,2015:DOI 10.1109/LCA.2015.2442972(Li Minghua,ChenGuancheng,Wang Qijun,Lin Yonghua,Peter Hofsee,Per Stenstrom,Dian Zhou.PATer:IBMPOWER8处理器上的一种硬件预取自调,IEEE Computer Architecture Letters期刊,2015)。
[3]、Saami Rahmana,Martin Burtscher,Ziliang Zong,Apa Qasem.Maximizing HardwarePrefetch Effectiveness with Machine Learning.IEEE 17th International Conference on HighPerformance Computing and Communications(HPCC),2015(Saami Rahmana,Martin Burtscher,Ziliang Zong,Apa Qasem,基于机器学习的最大化硬件预取效率,第十七届IEEE高性能计算和通信国际会议,2015)。
发明内容
本发明要解决的技术问题是提供一种基于机器学习的预取能效优化自适应装置及相应的适应法,本发明处理器系统能够根据应用的特征,自动优化预取与结构的适应性,实现能效的优化。
为了解决上述技术问题,本发明提供一种基于机器学习的预取能效优化自适应装置,包括学习模块部分和基本处理器这两大组件;
所述基本处理器包括处理器核、一级高速缓存单元、二级高速缓存单元、下一级存储、一级数据预取装置、二级数据预取装置、硬件计数器统计模块、程序特征片段检测模块、特殊目的寄存器;
所述学习模块部分包括特征提取模块(9)、学习模型。
所述信号传递关系如下:
处理器核发起访问高速缓存请求信息给一级高速缓存单元,一级高速缓存单元将数据信息返回给处理器核;一级高速缓存单元将收到的访问地址信息传递给一级数据预取装置,一级数据预取装置返回预取数据给一级高速缓存单元;一级高速缓存单元将收到的访问地址信息在一级高速缓存缺失时传递给二级高速缓存单元,二级高速缓存单元将取到的数据返回给一级高速缓存单元;二级高速缓存单将收到的访问地址信息传递给二级数据预取装置,二级数据预取装置返回预取数据给二级高速缓存单元;二级高速缓存单元将收到的访问地址在二级高速缓存单元缺失时传递给下一级存储,下一级存储将取到的数据返回给二级高速缓存单元;处理器核、一级高速缓存单元、二级高速缓存单元、一级数据预取装置、二级数据预取装置将访问各单元的访存信息包括缺失次数、替换次数、写回次数、预取数、预取准确次数、预取污染次数等传递给硬件计数器统计模块;硬件计数器统计模块将缺失次数、预取数、预取准确数、预取污染次数传递给程序特征片段检测模块;
硬件计数器统计模块将获得的数据传递给学习模块部分中的特征提取模块;特征提取模块将提取的特征经过计算传递给学习模型;学习模型将经过已经学习好的算法处理得到的分类结果传递给特殊目的控制器;特殊目的控制器将分类结果传递给基本处理器中的一级和二级数据预取装置。
本发明还同时提供了一种基于机器学习的预取能效优化自适应方法;包括以下步骤:
1)、离线训练学习模型:通过收集不同应用程序在不同预取配置下运行收集到的硬件计数器信息及最佳的预取配置对机器学习算法实现的学习模型训练,该步骤又包括以下步骤:
1.1)提取程序特征:处理器核、一级高速缓存单元及二级高速缓存单元的访问信息传递给硬件计数器统计模块,特征提取模块从硬件计数器统计模块提取访问高速缓存信息作为应用程序在运行时的存储访问行为及预取相关行为信息,作为程序特征观测量;
1.2)构建训练数据集:根据程序特征提取的结果,选择与预取能效最相关的特征及达到最大能效时预取的配置,作为一个有效数据;
1.3)训练学习模型:给定程序的特征观测量及对应的最优预取配置作为模型的输入,采用机器学习的算法训练学习模型;
2)、动态预测预取配置:学习模型根据新的应用程序运行时处理器核、一级高速缓存单元及二级高速缓存单元传递给硬件计数器统计模块的访存信息经特征提取模块处理后传递给学习模型,学习模型处理后将分类结果传递给特殊目的寄存器,特殊目的寄存器控制一级数据预取装置和二级数据预取装置的预取距离和深度,从而实时预测预取的配置最大化能效。
作为对本发明的基于机器学习的预取能效优化自适应方法的进一步改进:所述步骤1.1)中程序的特征观测量通过特征提取模块从硬件计数器统计模块获取,硬件计数器统计模块从一级高速缓存单元、二级高速缓存单元、一级数据预取装置和二级数据预取装置获取;
统计结果包括处理器核中每周期执行指令数、一级高速缓存单元和二级高速缓存单元中的读写指令队列的占有数、读指令数目、读指令缺失数目、高速缓存的缺失次数、高速缓存的替换次数、高速缓存的写回次数、转换旁路缓冲器缺失次数、高速缓存数据预取次数、高速缓存数据预取准确数据次数、数据预取导致高速缓存污染次数、预取引起的高速缓存替换次数。
作为对本发明的基于机器学习的预取能效优化自适应方法的进一步改进:所述步骤1.2)中构建训练数据集包括以下步骤:
1.2.1程序特征片段模拟点采样:选择能代表程序访存行为的特征片段;
1.2.2对特征片段分别采用不同预取方式进行模拟,获取不同预取方式下的程序特征观测量;
1.2.3数据标记:对于每个特征片段标记类别即选择最优预取配置,每条有效数据由程序特征观测量及最优预取配置构成。
作为对本发明的基于机器学习的预取能效优化自适应方法的进一步改进:最大化能效依据是:(A)相近的性能下,选择功耗消耗最低的配置,功耗消耗最低的标准是引起高速缓存的数据污染、总线带宽增加最少,以及预取单元的硬件开销低;(B)性能提升不大,则关闭预取。
作为对本发明的基于机器学习的预取能效优化自适应方法的进一步改进:所述步骤1.3)中训练学习模型,学习模型采用机器学习的算法进行实现然后采用训练数据集对学习模型进行训练。该学习模型输入为各程序的特征观测量,输出为最优预取配置类别。预取配置的类别包括关闭预取、开启预取时不同的预取方式的深度和距离。
作为对本发明的基于机器学习的预取能效优化自适应方法的进一步改进:所述步骤2)中动态预测程序预取配置包括以下步骤:
2.1数据采集阶段:每运行一定数目的指令,实时硬件计数器模块传递访存信息给程序特征片段检测模块,程序特征片段检测模块计算当前程序特征与前一阶段的程序特征的欧式距离,判断程序是否进入另一阶段即访存行为发生变化;
2.2如果程序访存行为发生变化,特征提取模块根据实时硬件计数器模块传递过来的访存信息提取特征观测量,并传递给学习模型处理后输出预测的配置分类,传递给特殊目的寄存器;
2.3特殊目的寄存器传递配置结果给一级数据预取装置和二级数据预取装置,一级数据预取装置和二级数据预取装置相应调整硬件预取的配置,包括关闭预取、调整预取的深度和距离。
作为对本发明的基于机器学习的预取能效优化自调方法的进一步改进:预取单元的关闭、开启及预取的不同配置作为学习模型的分类结果。预取配置参数的调整可通过控制特殊目的寄存器来适应处理器参数。
本发明具有如下技术优势:
1、基于机器学习的算法预测应用程序的预取配置(或预取激进程度),根据程序的特性实时的调整预取的激进程度或及时关闭预取,从而提高预取的能效;
2、采用特征片段检测,通过定时检测程序的访问高速缓存缺失率及程序性能及预取的命中率等的变化来判断当前程序的访存行为是否发生变化及当前的预取配置是否有效,从而实现实时准确的调整;
3、不需要更改硬件实现,可在现有的硬件预取机制上采用软件实现选优。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1为基于机器学习的动态调整预取装置;
图2为离线训练学习模型过程;
图3为动态调整预取配置过程。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的说明。
如图1所示为本发明的实现框图,在一个基本的处理器13中,包含处理器核1和一个一级高速缓存单元2、一个二级高速缓存单元3与下一级存储4。预取单元实现对一级高速缓存单元2与二级高速缓存单元3的数据预取,包括一级数据预取装置5、二级数据预取装置6、硬件计数器统计模块7和程序特征片段检测模块8,其中一级数据预取装置5和二级数据预取装置6分别用来调整一级高速缓存单元2与二级高速缓存单元3的预取配置,硬件计数器统计模块7从一级高速缓存单元2、二级高速缓存单元3、一级数据预取装置5和二级数据预取装置6收集程序运行时的存储行为、预取效果信息。程序特征片段检测模块8从硬件计数器统计模块7提取信息分析是否进入新的访存行为阶段。特征提取模块9读取硬件计数器统计模块7中的存储行为信息输入学习模型10中预测对应的预取配置。预取配置的调整需要通过特殊目的寄存器11来调整。在学习模块部分12,通过从硬件计数器统计模块7提取程序特征,学习模型10根据特征提取模块8的信息实时预测一级高速缓存单元3和二级高速缓存单元4的最大化预取能效配置,写入特殊目的寄存器11中,通过这个寄存器的值更改一级数据预取装置5和二级数据预取装置6的硬件配置。图2和图3为本发明的具体实现过程。
通过上述系统可以实现本发明的基于机器学习的预取能效优化自适应方法,该方法是通过以下步骤实现:
1、离线训练学习模型:通过收集不同应用程序在不同预取配置下运行从硬件计数器统计模块7收集到的信息及最佳的预取配置对机器学习算法实现的学习模型10训练,如图2所示为离线训练学习模型框图,该步骤又具体包括以下步骤:
1.1、提取程序特征:硬件计数器统计模块7从处理器核1、一级高速缓存单元2、二级高速缓存单元3、一级数据预取装置5和二级数据预取装置6统计程序访存及预取相关行为信息,硬件计数器统计模块7统计的参数包括:程序平均每个周期执行的指令数,读写指令队列的占有数、读指令数目、读指令缺失数目、高速缓存的缺失次数、高速缓存的替换次数、高速缓存的写回次数、转换旁路缓冲器缺失次数、高速缓存数据预取次数、高速缓存数据预取准确数据次数、数据预取导致高速缓存污染次数、预取引起的高速缓存替换次数、数据预取引起的数据总线带宽增加。
1.2、根据步骤1.1的硬件计数器统计模块7的反馈信息,特征提取模块9计算程序的访存特性指标,包含平均每个周期执行的指令数(CPI),一级高速缓存每千条指令的缺失次数(MPKI_L1),一级高速缓存每千条指令的替换次数(RPKI_L1),一级高速缓存每千条指令的写回次数(WPKI_L1),二级高速缓存每千条指令的缺失次数(MPKI_L2),一级高速缓存每千条指令的替换次数(RPKI_L2),二级高速缓存每千条指令的写回次数(WPKI_L2),快速查找表每千条指令的缺失次数(MPKI_DTLB),读指令数占总指令数的比例(LOAD_RATE),读指令中发生缺失比例(LOAD_MISS),读写指令队列的占有率(LSQ_OCCUPANCY)。这些访存特性指标作为输出给学习模型10进行训练。上述访存特性的指标相应的计算公式如表1所示。
1.3、根据步骤1.2的访存特性指标,线下收集训练数据集。首先采用模拟仿真工具,将程序划分为固定指令片段,然后对指令片段中基本块的执行频率聚类分析得到程序的特征样本。对程序特征样本分别采用不同预取配置进行模拟,选择能使程序获得最佳能效的预取配置,标记为该程序样本的最佳配置。最大化能效依据:相近的性能下,选择功耗消耗最低的配置,功耗消耗最低的标准是引起高速缓存的数据污染和总线带宽增加最少,以及预取单元的硬件开销低;在获得系统性能提升小于2%时关闭预取单元。
在本实例中,对每个程序特征样本分别模拟一亿条指令,每一百万条指令收集访存特性指标及最佳配置,所以每个程序特征样本可以产生100个训练样本,平均每个程序有10个左右的特征样本,那么整个每个程序可以产生1000个样本。采用SPEC2006评测集及OLDEN评测集,20个应用程序则能产生20000的样本,每个样本表示为(X1,X2,X3,X4,…,Xn;Y),其中X1,X2,X3,…,Xn表示应用程序特征样本访存行为的n个特征,即为表1所示的指标,Y为获得最大能效时的预取配置分类,Y的取值为1至9。本实例的预取的分类Y取值如表2所示,根据保守预取、中等激进、激进预取三大类具体的预取距离(Dist)及预取深度(Degree)分为9类。
表1
表2
预取分类 | 预取配置 |
1 | 无预取 |
2 | Dist=2,Degree=1 |
3 | Dist=2,Degree=4 |
4 | Dist=4,Degree=4 |
5 | Dist=4,Degree=8 |
6 | Dist=8,Degree=1 |
7 | Dist=8,Degree=8 |
8 | Dist=16,Degree=8 |
9 | Dist=64,Degree=8 |
1.4、根据步骤1.3的训练数据的收集,建立学习模型进行训练如图2所示为整个建立学习模型的过程。从程序的访存特征中提取最相关的特征并归一化处理,采用监督学习的方法进行离线学习,建立程序访存特征与预取配置分类的关系Y=ML(X1,X2,X3,...,Xn)(ML:MachineLearning algorithm,X1,X2,X3...Xn为表1所示的访存特性的指标),使得预测的Y与实际的Y误差最小。本实例中采用决策树及k邻近距离的方法建立学习模型对预取配置分类,决策树采用信息熵来反映对象属性与对象间的关系,常用于数据分析及预测中,在数据不完整下也能有较好效果,k邻近距离的方法通过描述测试数据与训练数据间的距离或者相关性来分类。
2、根据步骤1.4训练好的学习模型进行线上调整预取的配置。调整过程如图3所示,设定采样间隔定时读取硬件计数器统计模块7的统计信息,检测程序是否进入新的阶段,有新的访存行为特性。
在本实例中设置采样间隔为一千万条指令,程序特征片段检测模块8根据从硬件计数器统计模块传递的访存信息包括预取的命中次数、高速缓存污染次数、缓存的缺失率、快速查找表的缺失次数及预取引起的高速缓存替换次数,计算预取的命中率、高数缓存污染率、高速缓存的缺失率和转换旁路缓冲器的缺失率的变化,采用归一化之后的欧氏距离(distance)来判断两个片段的相似程度从而检测是否到新的程序特征片段。
表3
其中Xi1,Xi2分别表示采样1和采样2的n个维度变量(表3所示)的变化率,本实例中为预取参数如预取准确率、预取导致高速缓存的污染率、一级缓存的缺失率、二级缓存的缺失率、转换旁路缓冲器的缺失率。
2)检测到新的程序特征片段,则关闭预取一段时间(1百万条指令),特征提取模块9从硬件计数器统计模块7中提取程序的特征变量(表1所示)进行计算,并将特征变量传递给已经训练好的学习模型10,学习模型10预测该阶段的预取配置,将分类结果传递给特殊目的寄存器11。
3)特殊目的寄存器11更改一级数据预取装置5和二级数据预取装置6的预取配置。程序在调整后的预取配置下运行,并保存当前配置下的预取准确率等(表3所示指标)直到检测到新的片段,重复1)至3)的过程。
3、处理器运行新的应用程序时即按照步骤2执行。
最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (10)
1.基于机器学习的预取能效优化自适应装置,其特征是:包括学习模块部分(12)和基本处理器(13)这两大组件;
所述基本处理器(13)包括处理器核(1)、一级高速缓存单元(2)、二级高速缓存单元(3)、下一级存储(4)、一级数据预取装置(5)、二级数据预取装置(6)、硬件计数器统计模块(7)、程序特征片段检测模块(8)、特殊目的寄存器(11);
所述学习模块部分(12)包括特征提取模块(9)、学习模型(10)。
2.根据权利要求1所述的基于机器学习的预取能效优化自适应装置,其特征是:
处理器核(1)发起访问高速缓存请求信息给一级高速缓存单元(2),一级高速缓存单元(2)将数据信息返回给处理器核(1);一级高速缓存单元(2)将收到的访问地址信息传递给一级数据预取装置(5),一级数据预取装置(5)返回预取数据给一级高速缓存单元(2);一级高速缓存单元(2)将收到的访问地址信息在一级高速缓存(2)缺失时传递给二级高速缓存单元(3),二级高速缓存单元(3)将取到的数据返回给一级高速缓存单元(2);二级高速缓存单元(3)将收到的访问地址信息传递给二级数据预取装置(6),二级数据预取装置(6)返回预取数据给二级高速缓存单元(3);二级高速缓存单元(3)将收到的访问地址在二级高速缓存单元缺失时传递给下一级存储(4),下一级存储将取到的数据返回给二级高速缓存单元(3);
处理器核(1)、一级高速缓存单元(2)、二级高速缓存单元(3)、一级数据预取装置(5)、二级数据预取装置(6)将访问各单元的访存信息传递给硬件计数器统计模块(7),所述访存信息包括缺失次数、替换次数、写回次数、预取数、预取准确次数、预取污染次数;硬件计数器统计模块(7)将缺失次数、预取数、预取准确数、预取污染次数传递给程序特征片段检测模块(8);
硬件计数器统计模块(7)将获得的数据传递给学习模块部分(12)中的特征提取模块(9);特征提取模块(9)将提取的特征经过计算传递给学习模型(10);学习模型(10)将经过已经学习好的算法处理得到的分类结果传递给特殊目的控制器(11);特殊目的控制器(11)将分类结果传递给基本处理器(13)中的一级数据预取装置(5)和二级数据预取装置(6)。
3.基于机器学习的预取能效优化自适应方法,其特征是包括以下步骤:
1)、离线训练学习模型:通过收集不同应用程序在不同预取配置下运行收集到的硬件计数器信息及最佳的预取配置对机器学习算法实现的学习模型训练,该步骤具体包括以下步骤:
1.1)提取程序特征:处理器核(1)、一级高速缓存单元(2)及二级高速缓存单元(3)的访问信息传递给硬件计数器统计模块(7),特征提取模块(9)从硬件计数器统计模块(7)提取访问高速缓存信息作为应用程序在运行时的存储访问行为及预取相关行为信息,作为程序特征观测量;
1.2)构建训练数据集:根据程序特征提取的结果,选择与预取能效最相关的特征及达到最大能效时预取的配置,作为一个有效数据;
1.3)训练学习模型:给定程序的特征观测量及对应的最优预取配置作为模型的输入,采用机器学习的算法训练学习模型(10);
2)、动态预测预取配置:学习模型(10)根据新的应用程序运行时处理器核(1)、一级高速缓存单元(2)及二级高速缓存单元(3)传递给硬件计数器统计模块(7)的访存信息经特征提取模块(9)处理后传递给学习模型(10),学习模型(10)处理后将分类结果传递给特殊目的寄存器(11),特殊目的寄存器(11)控制一级数据预取装置(5)和二级数据预取装置(6)的预取距离和深度,从而实时预测预取的配置最大化能效。
4.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:所述步骤1.1)中程序的特征观测量通过特征提取模块(9)从硬件计数器统计模块(7)获取,硬件计数器统计模块(7)从一级高速缓存单元(2)、二级高速缓存单元(3)、一级数据预取装置(5)和二级数据预取装置(6)获取;
统计结果包括处理器核(1)中每周期执行指令数、一级高速缓存单元(2)和二级高速缓存单元(3)中的读写指令队列的占有数、读指令数目、读指令缺失数目、高速缓存的缺失次数、高速缓存的替换次数、高速缓存的写回次数、转换旁路缓冲器缺失次数、高速缓存数据预取次数、高速缓存数据预取准确数据次数、数据预取导致高速缓存污染次数、预取引起的高速缓存替换次数。
5.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:
所述步骤1.2)中构建训练数据集包括以下步骤:
1.2.1、程序特征片段模拟点采样:选择能代表程序访存行为的特征片段;
1.2.2、对特征片段分别采用不同预取方式进行模拟,获取不同预取方式下的程序特征观测量;
1.2.3、数据标记:对于每个特征片段标记类别即选择最优预取配置,每条有效数据由程序特征观测量及最优预取配置构成。
6.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:
所述步骤1.2.3中最优预取配置即最大化能效依据,包括:
相近的性能下,选择功耗消耗最低的配置,功耗消耗最低的标准是引起高速缓存的数据污染、总线带宽增加最少以及预取单元的硬件开销少;
性能提升不大,则关闭预取。
7.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:
所述步骤1.3)中训练学习模型(10),学习模型(10)采用机器学习的算法进行实现然后采用训练数据集对学习模型(10)进行线下训练;该学习模型(10)输入为各程序的特征观测量,输出为最优预取配置类别;预取配置的类别包括关闭预取、开启预取时不同的预取方式的深度和距离。
8.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:
所述步骤2)中动态预测程序预取配置包括以下步骤:
2.1数据采集阶段:每运行一定数目的指令,实时硬件计数器模块(7)传递访存信息给程序特征片段检测模块(8),程序特征片段检测模块(8)计算当前程序特征与前一阶段的程序特征的欧式距离,判断程序是否进入另一阶段即访存行为发生变化;
2.2如果程序访存行为发生变化,特征提取模块(9)根据实时硬件计数器模块(7)传递过来的访存信息提取特征观测量,并传递给学习模型(10)处理后输出预测的配置分类,传递给特殊目的寄存器(11);
2.3特殊目的寄存器(11)传递配置结果给一级数据预取装置(5)和二级数据预取装置(6),一级数据预取装置(5)和二级数据预取装置(6)相应调整硬件预取的配置,包括关闭预取、调整预取的深度和距离。
9.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:
所述步骤1.3)中预取单元的关闭、开启及预取的不同激进程度作为学习模型的分类结果,即学习模型(10)传递给特殊目的寄存器(11)的信息;
所述步骤2)中机器学习的模型在外部实现,通过特殊目的寄存器(11)传递给一级数据预取装置(5)和二级数据预取装置(6)控制预取的配置。
10.根据权利要求3所述的基于机器学习的预取能效优化自适应方法,其特征是:当运行新的应用时,按照步骤2)开始调整相应预取配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610236148.4A CN105955709B (zh) | 2016-04-16 | 2016-04-16 | 基于机器学习的预取能效优化自适应装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610236148.4A CN105955709B (zh) | 2016-04-16 | 2016-04-16 | 基于机器学习的预取能效优化自适应装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955709A true CN105955709A (zh) | 2016-09-21 |
CN105955709B CN105955709B (zh) | 2018-02-27 |
Family
ID=56917541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610236148.4A Active CN105955709B (zh) | 2016-04-16 | 2016-04-16 | 基于机器学习的预取能效优化自适应装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955709B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844047A (zh) * | 2017-01-11 | 2017-06-13 | 上海传英信息技术有限公司 | 一种智能终端的应用程序优化方法 |
CN108345504A (zh) * | 2018-02-02 | 2018-07-31 | 曙光信息产业(北京)有限公司 | 一种资源映射方法和装置 |
WO2018158626A1 (en) * | 2017-02-28 | 2018-09-07 | International Business Machines Corporation | Adaptable processing components |
CN109657461A (zh) * | 2018-11-26 | 2019-04-19 | 浙江大学 | 基于梯度提升算法的rtl硬件木马检测方法 |
CN109800886A (zh) * | 2017-11-17 | 2019-05-24 | 松下知识产权经营株式会社 | 信息处理方法以及信息处理系统 |
CN110533054A (zh) * | 2018-05-25 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种多模态自适应机器学习方法及装置 |
CN110727437A (zh) * | 2019-09-10 | 2020-01-24 | 平安普惠企业管理有限公司 | 代码优化项获取方法、装置、存储介质及电子设备 |
CN111274118A (zh) * | 2018-12-05 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 一种应用优化处理方法、装置和系统 |
CN112527395A (zh) * | 2020-11-20 | 2021-03-19 | 海光信息技术股份有限公司 | 数据预取方法和数据处理装置 |
CN113435601A (zh) * | 2020-03-23 | 2021-09-24 | 华为技术有限公司 | 数据预取方法、装置以及存储设备 |
CN114638373A (zh) * | 2020-12-15 | 2022-06-17 | Aptiv技术有限公司 | 管理机器学习环境 |
US20230022190A1 (en) * | 2020-05-30 | 2023-01-26 | Huawei Technologies Co., Ltd. | Systems and methods for adaptive hybrid hardware pre-fetch |
CN109800886B (zh) * | 2017-11-17 | 2024-04-26 | 松下知识产权经营株式会社 | 信息处理方法以及信息处理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084433A1 (en) * | 2001-10-31 | 2003-05-01 | Chi-Keung Luk | Profile-guided stride prefetching |
US7062756B2 (en) * | 2001-11-30 | 2006-06-13 | Sun Microsystems, Inc. | Dynamic object usage pattern learning and efficient caching |
CN1961286A (zh) * | 2003-12-24 | 2007-05-09 | 英特尔公司 | 自适应高速缓存 |
CN101751246A (zh) * | 2008-12-15 | 2010-06-23 | 国际商业机器公司 | 预取数据的系统和方法 |
CN103235764A (zh) * | 2013-04-11 | 2013-08-07 | 浙江大学 | 线程感知多核数据预取自调方法 |
CN104320448A (zh) * | 2014-10-17 | 2015-01-28 | 张维加 | 一种基于大数据的计算设备的缓存与预取加速方法和装置 |
-
2016
- 2016-04-16 CN CN201610236148.4A patent/CN105955709B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084433A1 (en) * | 2001-10-31 | 2003-05-01 | Chi-Keung Luk | Profile-guided stride prefetching |
US7062756B2 (en) * | 2001-11-30 | 2006-06-13 | Sun Microsystems, Inc. | Dynamic object usage pattern learning and efficient caching |
CN1961286A (zh) * | 2003-12-24 | 2007-05-09 | 英特尔公司 | 自适应高速缓存 |
CN101751246A (zh) * | 2008-12-15 | 2010-06-23 | 国际商业机器公司 | 预取数据的系统和方法 |
CN103235764A (zh) * | 2013-04-11 | 2013-08-07 | 浙江大学 | 线程感知多核数据预取自调方法 |
CN104320448A (zh) * | 2014-10-17 | 2015-01-28 | 张维加 | 一种基于大数据的计算设备的缓存与预取加速方法和装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844047A (zh) * | 2017-01-11 | 2017-06-13 | 上海传英信息技术有限公司 | 一种智能终端的应用程序优化方法 |
CN106844047B (zh) * | 2017-01-11 | 2021-06-04 | 上海传英信息技术有限公司 | 一种智能终端的应用程序优化方法 |
US11144718B2 (en) | 2017-02-28 | 2021-10-12 | International Business Machines Corporation | Adaptable processing components |
WO2018158626A1 (en) * | 2017-02-28 | 2018-09-07 | International Business Machines Corporation | Adaptable processing components |
GB2574555A (en) * | 2017-02-28 | 2019-12-11 | Ibm | Adaptable processing components |
CN109800886A (zh) * | 2017-11-17 | 2019-05-24 | 松下知识产权经营株式会社 | 信息处理方法以及信息处理系统 |
CN109800886B (zh) * | 2017-11-17 | 2024-04-26 | 松下知识产权经营株式会社 | 信息处理方法以及信息处理系统 |
CN108345504A (zh) * | 2018-02-02 | 2018-07-31 | 曙光信息产业(北京)有限公司 | 一种资源映射方法和装置 |
CN110533054A (zh) * | 2018-05-25 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种多模态自适应机器学习方法及装置 |
CN110533054B (zh) * | 2018-05-25 | 2024-02-06 | 中国电力科学研究院有限公司 | 一种多模态自适应机器学习方法及装置 |
CN109657461A (zh) * | 2018-11-26 | 2019-04-19 | 浙江大学 | 基于梯度提升算法的rtl硬件木马检测方法 |
CN111274118A (zh) * | 2018-12-05 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 一种应用优化处理方法、装置和系统 |
CN110727437B (zh) * | 2019-09-10 | 2024-04-09 | 平安普惠企业管理有限公司 | 代码优化项获取方法、装置、存储介质及电子设备 |
CN110727437A (zh) * | 2019-09-10 | 2020-01-24 | 平安普惠企业管理有限公司 | 代码优化项获取方法、装置、存储介质及电子设备 |
WO2021190501A1 (zh) * | 2020-03-23 | 2021-09-30 | 华为技术有限公司 | 数据预取方法、装置以及存储设备 |
CN113435601A (zh) * | 2020-03-23 | 2021-09-24 | 华为技术有限公司 | 数据预取方法、装置以及存储设备 |
US20230022190A1 (en) * | 2020-05-30 | 2023-01-26 | Huawei Technologies Co., Ltd. | Systems and methods for adaptive hybrid hardware pre-fetch |
CN112527395A (zh) * | 2020-11-20 | 2021-03-19 | 海光信息技术股份有限公司 | 数据预取方法和数据处理装置 |
CN114638373A (zh) * | 2020-12-15 | 2022-06-17 | Aptiv技术有限公司 | 管理机器学习环境 |
Also Published As
Publication number | Publication date |
---|---|
CN105955709B (zh) | 2018-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955709A (zh) | 基于机器学习的预取能效优化自适应装置及方法 | |
CN103853106B (zh) | 一种建筑能源供应设备的能耗预测参数优化方法 | |
CN103218435B (zh) | 一种中文文本数据聚类方法及系统 | |
CN104657496B (zh) | 一种计算信息热度值的方法和设备 | |
CN109636591A (zh) | 一种基于机器学习的信用评分卡开发方法 | |
Ding et al. | Research on using genetic algorithms to optimize Elman neural networks | |
CN110376457A (zh) | 基于半监督学习算法的非侵入式负荷监测方法及装置 | |
CN104657791B (zh) | 一种基于相关性分析的风电场群风速分布预测方法 | |
CN104239233B (zh) | 缓存管理方法、缓存管理装置和缓存管理设备 | |
CN102176698A (zh) | 一种基于迁移学习的用户异常行为检测方法 | |
CN103218405A (zh) | 基于维数约简的集成迁移文本分类方法 | |
CN103310235B (zh) | 一种基于参数识别与估计的隐写分析方法 | |
Kang | Financial risk assessment model based on big data | |
CN109961030A (zh) | 路面修补信息检测方法、装置、设备及存储介质 | |
CN107766500A (zh) | 固定资产卡片的审计方法 | |
CN106251241A (zh) | 一种基于特征选择改进的LR‑Bagging算法 | |
CN114048436A (zh) | 一种预测企业财务数据模型构建方法及构建装置 | |
Chu et al. | Co-training based on semi-supervised ensemble classification approach for multi-label data stream | |
CN112491891A (zh) | 物联网环境下基于混合深度学习的网络攻击检测方法 | |
CN116524712A (zh) | 融合时空关联数据的高速公路拥堵预测方法、系统及装置 | |
CN107220115A (zh) | 一种基于云平台的任务瓶颈确定方法及装置 | |
CN108287928A (zh) | 一种基于局部加权线性回归的空间属性预测方法 | |
CN116150191A (zh) | 一种用于云端数据架构的数据运算加速方法及系统 | |
CN113434989A (zh) | 一种基于注意力机制和lstm的管网漏损量预测方法及系统 | |
Chen-xu et al. | Auto regressive moving average (ARMA) prediction method of bank cash flow time series |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |