CN110347487B - 一种面向数据库应用的数据搬移的能耗特征化方法及系统 - Google Patents
一种面向数据库应用的数据搬移的能耗特征化方法及系统 Download PDFInfo
- Publication number
- CN110347487B CN110347487B CN201910602391.7A CN201910602391A CN110347487B CN 110347487 B CN110347487 B CN 110347487B CN 201910602391 A CN201910602391 A CN 201910602391A CN 110347487 B CN110347487 B CN 110347487B
- Authority
- CN
- China
- Prior art keywords
- energy consumption
- data
- cache
- test set
- benchmark test
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种面向数据库应用的数据搬移的能耗特征化方法及系统,其特征在于,包括以下内容:1)特征化数据库的总能耗,得到数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系;2)根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗;3)根据测量的基础能耗,量化数据库不同部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化,本发明可以广泛应用于数据库领域中。
Description
技术领域
本发明是关于一种面向数据库应用的数据搬移的能耗特征化方法及系统,属于数据库领域。
背景技术
能耗特征化是设计高能效系统的基础工作,已有工作从两方面进行研究:1)数据库的能耗评估,针对数据库的能耗评估,目前仅集中在主部件的能耗分析,即CPU、主存和硬盘。已有工作分析了不同CPU和硬盘类型对数据库能耗的影响,并没有考虑主存的影响,结论显示CPU是主要的能耗瓶颈。进一步的工作分析了内存数据库在更为细粒度部件上的能耗,考虑了主存、缓存和ALU(算术逻辑单元)等部件,结论显示主存是主要的能耗瓶颈,然而该分析的结论是建立在混合数据计算所消耗的能量和硬件部件固有的能耗上。事实上,数据计算所消耗的能量才是一个数据库应用真实的能耗,硬件部件固有的能耗即便不运行任何数据库应用也是要消耗的。然而上述方法均不能分析数据计算过程中数据在微部件搬移的能耗特点。2)数据搬移的能耗评估,量化数据在不同缓存层频繁移动的能耗。已有工作针对移动平台评估手机应用的不同缓存层的能耗,移动平台ARM的缓存层设计与x86平台完全不同,因此其量化和分析方法应用于标准的数据库应用不同。此外,针对科学计算任务在x86平台下的能耗特征化方法,使用外置电表测量基本的能耗数据,外置电表的测量极易引入很大的能耗误差,例如CPU风扇能耗和主板能耗等。另外,科学计算任务与数据库应用有本质差别,因此用于科学计算任务的能耗特征化方法不能准确地描述数据库应用的能耗特点。上述方法均不能用于准确分析数据库应用的能耗特点。
数据库作为一种需要长期运行的计算机软件服务,其能耗特征化对快速分析数据库应用的能耗瓶颈是非常必要的,有助于整个计算机系统的节能。然而,上述提出的方法均不能特征化数据库应用中计算能耗在不同微部件的能量消耗。
发明内容
针对上述问题,本发明的目的是提供一种能够特征化数据库应用中计算能耗在不同微部件的能量消耗的面向数据库应用的数据搬移的能耗特征化方法及系统。
为实现上述目的,本发明采取以下技术方案:一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,包括以下内容:1)特征化数据库的总能耗,得到数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系;2)根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗;3)根据测量的基础能耗,量化数据库不同部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化。
进一步地,所述步骤1)的具体过程为:1.1)对于任意部件上的计算任务t,定义计算任务t的能耗特征向量E(t):
E(t)=(EL1D,EReg→L1D,EL2,EL3,Emem,Epf,Estall,Eother)
其中,EL1D为L1D缓存向寄存器搬移数据的能耗;EL2为L2缓存向寄存器搬移数据的能耗;EL3为L3缓存向寄存器搬移数据的能耗;Emem为主存向寄存器搬移数据的能耗;EReg→L1D为store指令执行导致的数据从寄存器向L1D缓存搬移的能耗;Epf为数据预取的能耗;Estall为CPU因数据搬移而停顿产生的能耗;Eother为除上述因数据搬移产生能耗的剩余能耗;1.2)对于任意部件上的计算任务t,定义计算任务t的性能特征向量P(t):
P(t)=(NL1D,NReg→L1D,NL2,NL3,Nmem,Npf,Nstall)
其中,NL1D、NL2、NL3和Nmem分别为各级缓存和主存load指令的命中次数;NReg→L1D为store指令访问次数;Npf包括和为单位数据行从L2缓存预取L1D缓存的访问次数,为单位数据行从L3缓存预取到L2缓存的访问次数;Nstall为停顿周期数;1.3)假设集合components={L1D,L2,L3,mem},对于若x部件的速度大于y部件的速度,则记为x>y,满足如下关系:
其中,Ex为x部件发生数据搬移的能耗;Ei为数据从i部件仅向更上一层移动的单位能耗;Nx为x部件上发生数据搬移的次数;1.4)假设集合events={Reg→L1D,pf,stall}为一个事件集合,包括三种类型的事件,若则:
Ee=ΔEeNe
其中,Ee为e事件发生的总能耗;ΔEe为一个事件发生后的单位能耗;Ne为e事件的发生次数。
进一步地,所述步骤2)的具体过程为:2.1)建立基准测试集;2.2)根据建立的基准测试集以及得到的数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系,测量得到单位数据从L1D缓存向寄存器搬移的基础能耗EL1D、CPU因数据搬移而停顿产生的基础能耗Estall、数据从L2缓存、L3缓存和主存向寄存器搬移的基础能耗EL2、EL3、Emem以及数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D。
进一步地,所述基准测试集包括B_L1D基准测试集、B_L2基准测试集、B_L3基准测试集、B_Mem基准测试集和B_Reg2L1D基准测试集,其中,所述B_L1D基准测试集包括B_L1D_list基准测试集和B_L1D_array基准测试集。
进一步地,所述步骤2.1)的具体过程为:2.1.1)针对每一基准测试集,分别申请一块大小为s的内存空间,并设定对应的重复访问次数t;2.1.2)将每一内存空间均通过随机顺序采用链表进行连接;2.1.3)遍历链表,每次循环均利用指针追踪读取链表数据t次。
进一步地,所述B_L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小;所述B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集中初始化的s值大于L1D缓存容量而小于相应的L2缓存、L3缓存和主存容量;B_Reg2L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小。
进一步地,所述步骤2.2)的具体过程为:2.2.1)对于B_L1D_array基准测试集,每一数组元素的地址均为已知的且仅访问L1D缓存,CPU以超标量流水线方式执行,每周期发射两条load指令,因此,B_L1D_array基准测试集的能耗全部为EL1D;2.2.2)对于B_L1D_list基准测试集,采用链表遍历数组,能耗为EL1D和Estall;使用运行平均功率监控,观察核心域级别的能耗;2.2.3)对于B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集,均采用链表随机遍历数组,通过调整内存空间的大小,使得B_L2基准测试集的能耗为EL2和Estall,B_L3基准测试集的能耗为EL3和Estall,B_Mem基准测试集的能耗为Emem和Estall;对于B_L2基准测试集,使用运行平均功率监控观察核心域级别的能耗;对于B_L3基准测试集,使用运行平均功率监控观察处理器域级别的能耗;对于B_Mem基准测试集,使用运行平均功率监控同时观察处理器域和主存域级别的能耗;2.2.4)对于B_Reg2L1D基准测试集,在B_L1D_list基准测试集的基础上加入L1缓存的写操作,使得B_Reg2L1D基准测试集的能耗为EReg→L1D、EL1D和Estall;使用运行平均功率监控观察核心域级别的能耗。
进一步地,所述步骤3)的具体过程为:3.1)根据测量的数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化数据从L1D缓存向寄存器搬移的单位能耗EL1D为:
其中,E(B_L1D_array)为B_L1D_array基准测试程序的总能耗;3.2)根据测量的CPU因数据搬移而停顿产生的基础能耗Estall以及数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化CPU因数据搬移而停顿产生的单位能耗Estall为:
其中,E(B_L1D_list)为B_L1D_list基准测试程序的总能耗;3.3)根据测量的数据从L2缓存、L3缓存和主存向寄存器搬移的基础能耗EL2、EL3、Emem以及CPU因数据搬移而停顿产生的基础能耗Estall,当且x≠L1D时,量化x部件的单位能耗ΔEx为:
其中,E(B_x)为B_L2基准测试程序、B_L3基准测试程序和B_Mem基准测试程序的总能耗;3.4)根据测量的数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D,量化数据从寄存器向L1D缓存搬移的单位能耗ΔEReg→L1D为:
其中,E(B_Reg2L1D)为B_Reg2L1D基准测试程序的总能耗。
一种面向数据库应用的数据搬移的能耗特征化系统,其特征在于,包括:线性关系确定模块,用于特征化数据库的总能耗,得到数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系;基础能耗测量模块,用于根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗;单位能耗量化模块,用于根据测量的基础能耗,量化数据库不同部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化。
本发明由于采取以上技术方案,其具有以下优点:1、本发明针对数据库中查询操作能耗的完整特征向量表示和量化模型,将实际能耗转化为在不同微部件上的数据搬移事件发生次数与单位能耗的线性关系,进而能够特征化数据库应用中计算能耗在不同微部件的能量消耗。2、现有的处理器为提高执行效率,降低不必要的等待,引入流水线执行、指令和数据预取方法,线程切换、动态频率以及编译器的优化方法,然而,这些均给测量单一load操作能耗带来困难,本发明通过建立若干个基准测试集,每一基准测试集均具备特定且单一的访存模式,通过建立的基准测试集可以测量访问特定缓存层的基础能耗,并将测量的基础能耗转化为不同数据搬移事件的单位能耗,实现能够最小化预取、流水线执行影响的一系列基准测试集,以消除任务调度、动态频率和编译所造成的影响,可以广泛应用于数据库领域中。
附图说明
图1是本发明中内存层级间的数据搬移能耗关系示意图;
图2是本发明中数组与链表遍历下的CPU停顿对比示意图。
具体实施方式
以下结合附图来对本发明进行详细的描绘。然而应当理解,附图的提供仅为了更好地理解本发明,它们不应该理解成对本发明的限制。
本发明提供的面向数据库应用的数据搬移的能耗特征化方法,包括以下步骤:
1)特征化数据库的总能耗,将实际能耗转化为在数据库不同微部件上的数据搬移事件发生次数与单位能耗之间的线性关系,具体为:
1.1)对于任意微部件上的计算任务t,将E(t)定义为计算任务t的能耗特征向量:
E(t)=(EL1D,EReg→L1D,EL2,EL3,Emem,Epf,Estall,Eother) (1)
其中,EL1D、EL2、EL3和Emem分别为load指令执行导致的数据从指定存储部件向寄存器搬移的能耗,例如EL1D为L1D缓存向寄存器搬移数据的能耗,EL2为L2缓存向寄存器搬移数据的能耗,EL3为L3缓存向寄存器搬移数据的能耗,Emem为主存向寄存器搬移数据的能耗;EReg→L1D为store(写操作)指令执行导致的数据从寄存器向L1D缓存搬移的能耗;Epf为数据预取的能耗,主要量化L1D缓存和L2缓存的数据预取能耗分别为和Estall为CPU因数据搬移而停顿产生的能耗;Eother为除上述因数据搬移产生能耗的剩余能耗,例如数据计算能耗、取指令能耗和测量误差等。
1.2)对于任意微部件上的计算任务t,将P(t)定义为计算任务t的性能特征向量:
P(t)=(NL1D,NReg→L1D,NL2,NL3,Nmem,Npf,Nstall) (2)
其中,NL1D、NL2、NL3和Nmem分别为各级缓存和主存load(取数)指令的命中次数;NReg→L1D为store指令访问次数;Npf同样分为两部分,为单位数据行从L2缓存预取L1D的访问次数,为单位数据行从L3缓存预取到L2缓存的访问次数;Nstall为停顿周期数。
其中,Ex为x部件发生数据搬移的能耗;Ei为数据从i部件仅向更上一层移动的单位能耗;Nx为x部件上发生数据搬移的次数。
Ee=ΔEeNe (4)
其中,Ee为e事件发生的总能耗;ΔEe为一个事件发生后的单位能耗;Ne为e事件的发生次数。
综上分析,能耗特征向量E(t)中的每一维均可以转化为单位能耗ΔE与事件发生次数N之间的线性函数关系,因此,量化单位能耗极其必要。
2)根据基准测试集以及数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系,测量load指令仅访问单一缓存层的基础能耗,具体为:
2.1)建立基准测试集,包括B_L1D基准测试集、B_L2基准测试集、B_L3基准测试集、B_Mem基准测试集和B_Reg2L1D基准测试集,其中,B_L1D基准测试集包括B_L1D_list基准测试集和B_L1D_array基准测试集,B_L1D基准测试集为链表遍历模式,B_L1D_array基准测试集为数组遍历模式。B_L1D基准测试集用于测量L1D缓存取数据和CPU停顿的单位能耗,B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集分别用于测量EL2、EL3和Emem,B_Reg2L1D基准测试集用于测量EReg→L1D。
2.1.1)针对每一基准测试集,分别申请一块内存空间,其大小为s,并设定对应的重复访问次数t。
B_L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小,以保证所有数据仅能被加载到L1D缓存。
B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集中初始化的s值大于L1D缓存容量而小于相应的L2缓存、L3缓存和主存容量。
B_Reg2L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小。
2.1.2)将每一内存空间均通过随机顺序采用链表进行连接,链表项数据为单位大小(64bytes),以保证一次load操作能够处理,避免预取能耗误差。采用链表能够使数据访问保持前后依赖,即下一次读取数据必须要等上一次数据读取完毕才能进行,而随机访问(例如数组)使处理器能够流水线式重叠执行程序,给CPU停顿测量带来误差。随机链表能最大化地使流水线执行失效。
2.1.3)遍历链表,每次循环均利用指针追踪读取链表数据t次,其中,链表长度N为s/128bytes,128bytes为单个链表项的大小,其中的64bytes用于存储数据,另外64bytes用于存储地址。值得注意的是,可以通过调节s值,保证数据仅在单一缓存层找到。
2.2)根据建立的基准测试集以及得到的数据库不同微部件上的数据搬移事件发生次数与单位能耗之间的线性关系,测量得到单位数据从L1D缓存向寄存器搬移的基础能耗EL1D、CPU因数据搬移而停顿产生的基础能耗Estall、数据从L2缓存、L3缓存和主存向寄存器搬移的基础能耗EL2、EL3、Emem以及数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D。
2.2.1)如图2所示,对于B_L1D_array基准测试集,每一数组元素的地址均为已知的且仅访问L1D缓存,访问模式简单,因此除开始阶段外,CPU能够以超标量流水线方式执行,引起几乎每个周期均不会停顿,每周期发射两条load指令。因此,B_L1D_array基准测试集的能耗全部为EL1D。
2.2.2)对于B_L1D_list基准测试集,采用链表遍历数组,下个数据地址未知,因此CPU无法以流水线方式执行,产生停顿(如图2所示,一个L1D访问,CPU停顿三个周期),因此,B_L1D_list基准测试集的能耗EL1D和Estall。使用RAPL(运行平均功率监控),可以观察pp0(核心域)级别的能耗。
2.2.3)对于B_L2基准测试集,利用链表随机遍历数组,通过调整内存空间的大小达到几乎所有的数据不能在L1缓存中找到,但能在L2缓存中找到,最终能耗包括EL2和Estall。使用RAPL,可以观察pp0级别的能耗。对于B_L3基准测试集和B_Mem基准测试集的操作方法与B_L2基准测试集类似,B_L3基准测试集的能耗为EL3和Estall,B_Mem基准测试集的能耗为Emem和Estall。然而,对于B_L3基准测试集,使用RAPL观察Package级别的能耗;对于B_Mem基准测试集,使用RAPL同时观察Package(处理器域)和DRAM(主存域)级别的能耗。
2.2.4)对于B_Reg2L1D基准测试集,在B_L1D_list基准测试集的基础上加入L1缓存的store操作(写操作),使得B_Reg2L1D基准测试集的能耗为EReg→L1D、EL1D和Estall,使用RAPL观察pp0级别的能耗。值得注意的是,此时的CPU停顿全部是由向L1D缓存取数据产生的。
3)根据测量的基础能耗,量化不同部件上的数据搬移事件的单位能耗,完成数据搬移的能耗特征化,具体为:
3.1)根据测量的数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化数据从L1D缓存向寄存器搬移的单位能耗EL1D为:
其中,E(B_L1D_array)为B_L1D_array基准测试程序的总能耗。
3.2)根据测量的CPU因数据搬移而停顿产生的基础能耗Estall以及数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化CPU因数据搬移而停顿产生的单位能耗Estall为:
其中,E(B_L1D_list)为B_L1D_list基准测试程序的总能耗。
3.3)根据测量的数据从L2缓存、L3缓存和主存向寄存器搬移的基础能耗EL2、EL3、Emem以及CPU因数据搬移而停顿产生的基础能耗Estall,当且x≠L1D时,可以量化x部件的单位能耗ΔEx为:
其中,E(B_x)为B_L2基准测试程序、B_L3基准测试程序和B_Mem基准测试程序的总能耗。
通过公式(7),可以依次求出L2缓存向寄存器搬移数据的单位能耗ΔEL2、L3缓存向寄存器搬移数据的单位能耗ΔEL3和主存向寄存器搬移数据的单位能耗ΔEmem。
3.4)根据测量的数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D,量化数据从寄存器向L1D缓存搬移的单位能耗ΔEReg→L1D为:
其中,E(B_Reg2L1D)为B_Reg2L1D基准测试程序的总能耗。
通过本发明的方法,可以通过基础能耗计算求得单位能耗。当测量得到一个数据库的总能耗后,可以根据单位能耗和数据搬移事件的发生次数将总能耗分解为不同数据搬移事件能耗的和。通过观察不同数据搬移事件能耗,能够容易的发现数据库应用的能耗瓶颈,为数据应用的能耗优化指明方向。
基于上述面向数据库应用的数据搬移的能耗特征化方法,本发明还提供一种面向数据库应用的数据搬移的能耗特征化系统,包括:
线性关系确定模块,用于特征化数据库的总能耗,得到数据库不同部件上的数据搬移事件发生次数与单位能耗之间的线性关系;基础能耗测量模块,用于根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗;单位能耗量化模块,用于根据测量的基础能耗,量化数据库不同部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化。
上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。
Claims (7)
1.一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,包括以下内容:
1)特征化数据库的总能耗,得到数据库不同微部件上的数据搬移事件发生次数与单位能耗之间的线性关系,具体过程为:
1.1)对于任意微部件上的计算任务t,定义计算任务t的能耗特征向量E(t):
E(t)=(EL1D,EReg→L1D,EL2,EL3,Emem,Epf,Estall,Eother)
其中,EL1D为L1D缓存向寄存器搬移数据的能耗;EL2为L2缓存向寄存器搬移数据的能耗;EL3为L3缓存向寄存器搬移数据的能耗;Emem为主存向寄存器搬移数据的能耗;EReg→L1D为store指令执行导致的数据从寄存器向L1D缓存搬移的能耗;Epf为数据预取的能耗;Estall为CPU因数据搬移而停顿产生的能耗;Eother为除上述因数据搬移产生能耗的剩余能耗;
1.2)对于任意微部件上的计算任务t,定义计算任务t的性能特征向量P(t):
P(t)=(NL1D,NReg→L1D,NL2,NL3,Nmem,Npf,Nstall)
其中,NL1D、NL2、NL3和Nmem分别为各级缓存和主存load指令的命中次数;NReg→L1D为store指令访问次数;Npf包括和 为单位数据行从L2缓存预取L1D缓存的访问次数,为单位数据行从L3缓存预取到L2缓存的访问次数;Nstall为停顿周期数;
其中,Ex为x部件发生数据搬移的能耗;VEi为数据从i部件仅向更上一层移动的单位能耗;Nx为x部件上发生数据搬移的次数;
Ee=ΔEeNe
其中,Ee为e事件发生的总能耗;ΔEe为一个事件发生后的单位能耗;Ne为e事件的发生次数;
2)根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗,所述基准测试集包括B_L1D基准测试集、B_L2基准测试集、B_L3基准测试集、B_Mem基准测试集和B_Reg2L1D基准测试集,其中,所述B_L1D基准测试集包括B_L1D_list基准测试集和B_L1D_array基准测试集;
3)根据测量的基础能耗,量化数据库不同微部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化。
2.如权利要求1所述的一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,所述步骤2)的具体过程为:
2.1)建立基准测试集;
2.2)根据建立的基准测试集以及得到的数据库不同微部件上的数据搬移事件发生次数与单位能耗之间的线性关系,测量得到单位数据从L1D缓存向寄存器搬移的基础能耗EL1D、CPU因数据搬移而停顿产生的基础能耗Estall、数据从L2缓存、L3缓存和主存向寄存器搬移的基础能耗EL2、EL3、Emem以及数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D。
3.如权利要求2 所述的一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,所述步骤2.1)的具体过程为:
2.1.1)针对每一基准测试集,分别申请一块大小为s的内存空间,并设定对应的重复访问次数t;
2.1.2)将每一内存空间均通过随机顺序采用链表进行连接;
2.1.3)遍历链表,每次循环均利用指针追踪读取链表数据t次。
4.如权利要求3所述的一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,所述B_L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小;
所述B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集中初始化的s值大于L1D缓存容量而小于相应的L2缓存、L3缓存和主存容量;
B_Reg2L1D基准测试集中初始化的s值小于单个逻辑核心的L1D缓存大小。
5.如权利要求4所述的一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,所述步骤2.2)的具体过程为:
2.2.1)对于B_L1D_array基准测试集,每一数组元素的地址均为已知的且仅访问L1D缓存,CPU以超标量流水线方式执行,每周期发射两条load指令,因此,B_L1D_array基准测试集的能耗全部为EL1D;
2.2.2)对于B_L1D_list基准测试集,采用链表遍历数组,能耗为EL1D和Estall;使用运行平均功率监控,观察核心域级别的能耗;
2.2.3)对于B_L2基准测试集、B_L3基准测试集和B_Mem基准测试集,均采用链表随机遍历数组,通过调整内存空间的大小,使得B_L2基准测试集的能耗为EL2和Estall,B_L3基准测试集的能耗为EL3和Estall,B_Mem基准测试集的能耗为Emem和Estall;对于B_L2基准测试集,使用运行平均功率监控观察核心域级别的能耗;对于B_L3基准测试集,使用运行平均功率监控观察处理器域级别的能耗;对于B_Mem基准测试集,使用运行平均功率监控同时观察处理器域和主存域级别的能耗;
2.2.4)对于B_Reg2L1D基准测试集,在B_L1D_list基准测试集的基础上加入L1缓存的写操作,使得B_Reg2L1D基准测试集的能耗为EReg→L1D、EL1D和Estall;使用运行平均功率监控观察核心域级别的能耗。
6.如权利要求1所述的一种面向数据库应用的数据搬移的能耗特征化方法,其特征在于,所述步骤3)的具体过程为:
3.1)根据测量的数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化数据从L1D缓存向寄存器搬移的单位能耗VEL1D为:
其中,E(B_L1D_array)为B_L1D_array基准测试程序的总能耗;
3.2)根据测量的CPU因数据搬移而停顿产生的基础能耗Estall以及数据从L1D缓存向寄存器搬移的基础能耗EL1D,量化CPU因数据搬移而停顿产生的单位能耗VEstall为:
其中,E(B_L1D_list)为B_L1D_list基准测试程序的总能耗;
其中,E(B_x)为B_L2基准测试程序、B_L3基准测试程序和B_Mem基准测试程序的总能耗;
3.4)根据测量的数据从寄存器向L1D缓存搬移的基础能耗EReg→L1D,量化数据从寄存器向L1D缓存搬移的单位能耗ΔEReg→L1D为:
其中,E(B_Reg2L1D)为B_Reg2L1D基准测试程序的总能耗。
7.一种面向数据库应用的数据搬移的能耗特征化系统,其特征在于,包括:
线性关系确定模块,用于特征化数据库的总能耗,得到数据库不同微部件上的数据搬移事件发生次数与单位能耗之间的线性关系,具体过程为:
1.1)对于任意微部件上的计算任务t,定义计算任务t的能耗特征向量E(t):
E(t)=(EL1D,EReg→L1D,EL2,EL3,Emem,Epf,Estall,Eother)
其中,EL1D为L1D缓存向寄存器搬移数据的能耗;EL2为L2缓存向寄存器搬移数据的能耗;EL3为L3缓存向寄存器搬移数据的能耗;Emem为主存向寄存器搬移数据的能耗;EReg→L1D为store指令执行导致的数据从寄存器向L1D缓存搬移的能耗;Epf为数据预取的能耗;Estall为CPU因数据搬移而停顿产生的能耗;Eother为除上述因数据搬移产生能耗的剩余能耗;
1.2)对于任意微部件上的计算任务t,定义计算任务t的性能特征向量P(t):
P(t)=(NL1D,NReg→L1D,NL2,NL3,Nmem,Npf,Nstall)
其中,NL1D、NL2、NL3和Nmem分别为各级缓存和主存load指令的命中次数;NReg→L1D为store指令访问次数;Npf包括和 为单位数据行从L2缓存预取L1D缓存的访问次数,为单位数据行从L3缓存预取到L2缓存的访问次数;Nstall为停顿周期数;
其中,Ex为x部件发生数据搬移的能耗;VEi为数据从i部件仅向更上一层移动的单位能耗;Nx为x部件上发生数据搬移的次数;
Ee=ΔEeNe
其中,Ee为e事件发生的总能耗;ΔEe为一个事件发生后的单位能耗;Ne为e事件的发生次数;
基础能耗测量模块,用于根据基准测试集以及得到的线性关系,测量load指令仅访问单一缓存层的基础能耗,所述基准测试集包括B_L1D基准测试集、B_L2基准测试集、B_L3基准测试集、B_Mem基准测试集和B_Reg2L1D基准测试集,其中,所述B_L1D基准测试集包括B_L1D_list基准测试集和B_L1D_array基准测试集;
单位能耗量化模块,用于根据测量的基础能耗,量化数据库不同微部件上的数据搬移事件的单位能耗,完成数据库数据搬移的能耗特征化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910602391.7A CN110347487B (zh) | 2019-07-05 | 2019-07-05 | 一种面向数据库应用的数据搬移的能耗特征化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910602391.7A CN110347487B (zh) | 2019-07-05 | 2019-07-05 | 一种面向数据库应用的数据搬移的能耗特征化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347487A CN110347487A (zh) | 2019-10-18 |
CN110347487B true CN110347487B (zh) | 2021-03-23 |
Family
ID=68178264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910602391.7A Active CN110347487B (zh) | 2019-07-05 | 2019-07-05 | 一种面向数据库应用的数据搬移的能耗特征化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347487B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105676995A (zh) * | 2015-12-31 | 2016-06-15 | 南京华捷艾米软件科技有限公司 | 一种实现三维测量芯片低功耗的方法 |
CN109933473A (zh) * | 2019-03-14 | 2019-06-25 | 中国科学院微电子研究所 | 芯片内存功耗测量方法、装置、设备及介质 |
CN109951572A (zh) * | 2019-04-18 | 2019-06-28 | 西安米特电子科技有限公司 | 一种能耗监测管理系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167460A1 (en) * | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
CN103593304B (zh) * | 2012-08-14 | 2016-08-03 | 吉林师范大学 | 基于并行设备模型的高效使用缓存的量化方法 |
CN105260372B (zh) * | 2014-07-18 | 2019-03-26 | 上海宝信软件股份有限公司 | 基于实时数据库统计任意时间段能耗的方法 |
US10498177B2 (en) * | 2015-06-30 | 2019-12-03 | Ossia Inc. | Techniques for wireless power transmission system handoff and load balancing |
CN109472355B (zh) * | 2018-11-06 | 2021-01-01 | 地平线(上海)人工智能技术有限公司 | 卷积处理引擎及控制方法和相应的卷积神经网络加速器 |
-
2019
- 2019-07-05 CN CN201910602391.7A patent/CN110347487B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105676995A (zh) * | 2015-12-31 | 2016-06-15 | 南京华捷艾米软件科技有限公司 | 一种实现三维测量芯片低功耗的方法 |
CN109933473A (zh) * | 2019-03-14 | 2019-06-25 | 中国科学院微电子研究所 | 芯片内存功耗测量方法、装置、设备及介质 |
CN109951572A (zh) * | 2019-04-18 | 2019-06-28 | 西安米特电子科技有限公司 | 一种能耗监测管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110347487A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Collange et al. | Power consumption of GPUs from a software perspective | |
Ma et al. | A memory access model for highly-threaded many-core architectures | |
WO2020073641A1 (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
Shahid et al. | Additivity: A selection criterion for performance events for reliable energy predictive modeling | |
Seshadri et al. | The processing using memory paradigm: In-DRAM bulk copy, initialization, bitwise AND and OR | |
Picchi et al. | Impact of L2 cache locking on GPU performance | |
CN110347487B (zh) | 一种面向数据库应用的数据搬移的能耗特征化方法及系统 | |
León et al. | Program optimizations: The interplay between power, performance, and energy | |
Xie et al. | Merchandiser: Data Placement on Heterogeneous Memory for Task-Parallel HPC Applications with Load-Balance Awareness | |
Beard et al. | Eliminating Dark Bandwidth: a data-centric view of scalable, efficient performance, post-Moore | |
Yoon et al. | Design of DRAM-NAND flash hybrid main memory and Q-learning-based prefetching method | |
Hua et al. | Data similarity-aware computation infrastructure for the cloud | |
Trotter et al. | Cache simulation for irregular memory traffic on multi-core CPUs: Case study on performance models for sparse matrix–vector multiplication | |
Amato et al. | Predicting performance on SMPs. a case study: The SGI Power Challenge | |
Kiani et al. | SDAM: a combined stack distance-analytical modeling approach to estimate memory performance in GPUs | |
Huangfu et al. | Profiling-based L1 data cache bypassing to improve GPU performance and energy efficiency | |
Masola et al. | Machine Learning Techniques for Understanding and Predicting Memory Interference in CPU-GPU Embedded Systems | |
Hasib et al. | Performance and energy efficiency analysis of data reuse transformation methodology on multicore processor | |
Grannæs | Reducing Memory Latency by Improving Resource Utilization | |
Breiter et al. | Modelling Data Locality of Sparse Matrix-Vector Multiplication on the A64FX | |
SeyyedAghaei et al. | GPU Scale-Model Simulation | |
Qiu et al. | Performance Error Evaluation of gem5 Simulator for ARM Server | |
Marandola et al. | Pattern based cache coherency architecture for embedded manycores | |
Hussain | Analyzing The Performance of Processor Architecture on Heterogeneous Memory Systems for Linear Programming | |
Puzak et al. | Measuring the cost of a cache miss |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |