CN102750219A - 基于cpu硬件性能监控计数器的cpi精确测量方法 - Google Patents
基于cpu硬件性能监控计数器的cpi精确测量方法 Download PDFInfo
- Publication number
- CN102750219A CN102750219A CN2011101020795A CN201110102079A CN102750219A CN 102750219 A CN102750219 A CN 102750219A CN 2011101020795 A CN2011101020795 A CN 2011101020795A CN 201110102079 A CN201110102079 A CN 201110102079A CN 102750219 A CN102750219 A CN 102750219A
- Authority
- CN
- China
- Prior art keywords
- instruction
- cpi
- frequency
- sampling
- fine granularity
- 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
Images
Abstract
本发明公开了一种基于CPU硬件性能监控计数器的CPI精确测量方法,包括:S1:对跳转历史记录进行采样,获取跳转频率,并根据跳转频率获得细粒度指令频率;S2:使用随机采样时钟周期的方式得到时钟周期;S3:所述细粒度指令频率除以细粒度时钟周期,得到细粒度CPI。本发明通过对存储跳转历史记录得到寄存器进行采样,获得精确的细粒度指令频率,并且采样方法的资源开销低;通过使用随机采样方法,获得精确的细粒度时钟周期。结合细粒度指令频率和细粒度时钟周期,可以得到精确的细粒度CPI。
Description
技术领域
本发明涉及计算机软件性能分析技术领域,特别涉及一种基于CPU硬件性能监控计数器的CPI精确测量方法。
背景技术
每条指令所耗费的时钟周期数(Cycle Per Instruction,CPI)是程序性能分析过程中一个重要的观测指标。这个指标能直观的展示程序中每条指令平均所需的时钟周期数。如果这个指标较大,则表明程序中存在性能问题。这同时也意味着该程序有较大的性能优化机会。
在传统的程序优化流程中,CPI往往是程序员进行性能调优时观测的第一个指标。当程序员得到了具体CPI数值后,他们会通过程序性能计数器,将其划分成CPI堆栈,具体标定出构成执行一条指令时各个事件所消耗的平均时钟周期数。之后,程序员根据具体的事件来推测导致程序性能低下的原因,并对代码进行优化。
CPI根据其针对的对象不同,可以进一步分成粗粒度CPI和细粒度CPI。粗粒度CPI一般是针对整个程序而言的。具体来说,对于一个特定的程序,粗粒度CPI就是一个数值,其大小取决于程序花费的总时钟周期数和动态执行的指令次数的比值。细粒度CPI是针对具体的单位而言的。例如,函数级CPI指的是每个函数花费的总时钟周期数和动态执行的指令次数的比值。因此,对于一个程序而言,每个函数都有一个独立的函数级CPI。而粗粒度CPI可以认为是这些细粒度CPI的加权平均。
正是因为CPI在程序性能分析和优化中起了非常重要的作用,因此,很多性能分析工具,如Intel的Vtune,都能直接向用户展示各种粒度的CPI。
传统的CPI获取方法都基于程序性能计数器技术。
现代处理器厂商都在处理器中设计了独立的性能计数器模块。通过这个模块,用户可以在程序开始的时候配置某个特定事件,对执行的程序进行计数和采样。不同的处理器所提供的事件集往往不同,但是有一些基础的事件是大多数处理器都具备的。例如计算CPI所需要的两个事件:时钟周期事件以和指令执行事件,在大多数处理器上都可以直接获取。于是,要计算程序的CPI值,就将性能计数器对应的事件设置成以上两个事件分别进行计数、采样。然后将得到的数据相除,就可以得到CPI数据。如果程序性能计数器仅是用来计数(没有中断),那么整个程序执行结束的时候可以得到总的时钟周期数和指令执行次数,从而得到整个程序的CPI。通过这种方式,可以相对精确的得到粗粒度的CPI。
从细粒度角度来看,每条指令都有其对应的时钟周期频率和指令执行频率。传统方法使用程序性能计数器对时钟周期事件和指令执行事件进行采样,从而对每条指令都计算其CPI值。要获得函数级CPI,可以将该函数内的所有时钟周期采样和指令执行采样累加,并将两个采样的累加值相除获得函数级CPI。
通过采样得到CPI的好处在于:由于采样周期可调,程序员可以根据需求将采样所带来的开销控制在一个合理范围。实验证明,当采样周期在一百万的数量级时,采样所带来的性能损失已经可以忽略不计。
然而,上述采样方法获得的细粒度CPI的精确性难以保证。这主要是因为决定细粒度CPI的两个单独剖析(指令频率剖析和时钟周期剖析)过程的不精确性导致的。对于CPI剖析中的指令频率,其细粒度精确性是相当差的。对于CPI剖析中的时钟周期,其精确性在很多情况下也难以得到保证。因此,CPI的精确性在细粒度范围内难以得到保证。
CPI的精确性很大程度上决定了程序员优化程序的效率。尤其对于细粒度CPI而言,它能帮助程序员快速定位到程序中有性能问题的部位。例如,根据函数级CPI信息,程序员能够首先选择那些具有较大CPI的函数作为突破口进行调优,因为这些函数往往优化空间很大;而对于那些本身CPI已经很小的函数,程序员就不需要花费太多的精力,因为这些函数的实现已经相当优化。因此,精确的细粒度CPI能使程序员的性能优化工作事半功倍,而不精确的细粒度CPI甚至会降低程序员的效率,因为错误的信息会给性能优化工作造成误导。
在Intel Vtune等性能分析工具中,都使用了上述方法来获取程序CPI。它们获得的粗粒度CPI具有较好的精确性。然而细粒度CPI的精确性却很差。即使是函数级别的CPI,其误差已足以给程序员的调优工作造成误导。而对于更细粒度的CPI(例如基本块(所述基本块是指一个连续的程序语句序列,控制流从它的开始进入,并从它的末尾离开,中间没有中断或者分支)级CPI和指令级CPI),由于其精确性太差,在实际调优过程中已经完全无法使用。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提高对程序进行细粒度CPI的精确性。
(二)技术方案
为解决上述技术问题,本发明提供了一种基于CPU硬件性能监控计数器的CPI精确测量方法,包括以下步骤:
S1:对跳转历史记录进行采样,获取跳转频率,并根据跳转频率获得细粒度指令频率;
S2:使用随机采样时钟周期的方式得到细粒度时钟周期;
S3:所述细粒度指令频率除以细粒度时钟周期,得到细粒度CPI。
其中,所述步骤S1具体包括:
选择采样事件发生在跳转指令执行并完成执行的时刻对历史跳转寄存器进行采样;
构建每个函数的控制流图,采样中记录的每一条跳转,都在控制流图中有一条边与之对应,遍历每个控制流图,计算出每个函数中所有基本块的频率和边的频率,所述基本块的频率为其中每条指令的指令频率。
其中,所述步骤S1具体包括:
记录着若干个连续的跳转指令,两条连续跳转指令中间的所有指令的频率都加1,则每条指令最后获得的频率即为该指令的指令频率。
其中,所述步骤S2中随机采样时钟周期的方式为:
在时钟周期采样时,在采样周期常数P上加上一个随机数R,使得等效的采样周期为:P+R+S-A,其中,S表示从硬件计数器溢出到真正进入中断需要若干个周期的中断偏移;当硬件计数器在中断处理程序中复位之后,中断处理程序返回到用户程序,在这个过程中,处理器需要A个周期去填充指令流水线使其达到完全开放的状态。
其中,所述R为255。
(三)有益效果
本发明通过对存储跳转历史记录得到寄存器进行采样,获得精确的细粒度指令频率,并且采样方法的资源开销低;通过使用随机采样方法,获得精确的细粒度时钟周期。结合细粒度指令频率和细粒度时钟周期,可以得到精确的细粒度CPI。
附图说明
图1是本发明实施例的一种基于CPU硬件性能监控计数器的CPI精确测量方法流程图;
图2是本发明的方法和传统方法实验对比图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
细粒度CPI由细粒度指令频率和细粒度时钟周期共同获得。本发明使用的方法仍然是对细粒度指令频率和细粒度时钟周期分别进行采样,然后结合两个采样,获得细粒度CPI。但在获取细粒度指令频率时,本发明对跳转历史记录进行采样,并通过一定的变换获得精确的细粒度指令频率。在获取细粒度时钟周期时,本发明使用随机采样的方式,克服采样过程中可能引起的系统误差,从而得到精确的时钟周期。最后将两种精确的相结合,得到精确的细粒度CPI。具体步骤如图1所示,包括:
步骤S101,对跳转历史记录进行采样,获取跳转频率,并根据跳转频率获得细粒度指令频率。
很多处理器上都提供一种记录跳转历史记录的寄存器。例如在最新的Intel x86处理器上,有若干个LBR(Last Branch Register,历史跳转寄存器)寄存器,这些寄存器的作用,是记录系统中前几个跳转的指令。在Intel Core2处理器中,共有4条最新的跳转指令被记录;而在最新的Intel Core i7处理器中,共有16条最新的跳转指令被记录。这些记录不仅包含了每条跳转指令的地址,也包含了跳转指令的目的地址。这些寄存器的值可以被系统程序读出,同时,硬件支持在系统进入中断时将这些寄存器的值冻结,从而实现控制被记录的程序范围。
基于程序性能计数器的采样技术,同样可以实现对LBR寄存器进行采样:在程序开始时配置硬件,让其在进入中断时对LBR寄存器进行冻结;同时,在中断处理程序中记录下LBR寄存器的值,从而实现了对LBR寄存器的采样。
在对LBR进行采样的过程中,通过设置特定的采样事件,可以实现跳转频率的采样。直观上,选择的采样事件发生在跳转指令执行并完成执行的时刻。也就是说,每当跳转指令执行完成执行的时候,性能计数器的值就会自增。要验证选择这个事件进行采样的正确性,首先假定采样周期为Q;整个程序执行过程中总共有N条指令执行完成执行,而实际采样得到的跳转指令个数为M;同时,每次计数器溢出,中断处理函数中总共记录最后的$L$条跳转指令。如果某条指令b实际执行了B次,而在采样中实际被采到了T次。于是,实际就是要验证B/N与T/M相等。
首先,可以直观的将M表示为(N×L)/Q。其次,不难推出以下两个事件是等价的:Ii出现在LBR记录的第k个位置,和Ii-k触发了寄存器溢出。因为每当一次跳转发生时计数器都加一,每一条跳转都有均等的概率触发溢出,这个概率可以表示成1/Q。因此可以得到:pik=1/Q,pi=L/Q,因此可推出,T=B×pi=(B×L)/Q,于是可以推导出:B/N=T/M。
在Intel Core2处理器中,有一个事件叫做BR_INST_RETIRED:TAKEN,正好可以达到以上目的。然而,在IntelCore i7上,这个事件被取消了。但是,可以通过另外一个事件BR_INST_EXEC:TAKEN来代替。这个事件还记录了那些因跳转预测错误而误执行的跳转指令。为了去除这些指令的干扰,同时使用了BR_MISP_EXEC:TAKEN事件来滤除这些误操作的跳转。通过这两个事件,可以达到与BR_INST_RETIRED:TAKEN相同的效果。
通过以上的采样方法,已经通过LBR采样计算出了跳转频率。CPI无法直接使用跳转频率获得,而必须使用指令频率。使用采样到的跳转频率,计算出指令频率。为了实现这个目标,首先构建每个函数的控制流图。值得注意的是,采样中记录的每一条跳转,都在控制流图中有一条边与之对应。然而,并不是控制流图中的每一条边都会有一个跳转记录与之对应。因为连续执行的边是没有被采样的。使用表1所示算法来获取连续执行的边的执行频率。也使用这个算法来计算各个基本块执行的频率,从而计算出指令频率。
表1使用间接方法从LBR获取指令频率的算法
在此算法中,首先将基本块按照其拓扑顺序排序,然后依照这个顺序,依次对每个基本块都分别进行以下操作:根据所有入边的频率之和算出基本块频率,然后将基本块频率减去所有出边频率,算出未知出边频率。
为了证明该算法的正确性,将每一个基本块按其出现的逻辑顺序进行编号。值得注意的是,因为每个基本块至多只有一条连续执行入边和一条连续执行出边,所以每个基本块至多只有一条入边和一条出边的频率是未知的。假定基本块BBi所有入边的频率已知,则BBi的频率可以通过其所有入边的频率求和得到;同时,由于其最多有一条出边的频率未知,这条出边(如果存在的话)即为BBi到BBi+1的连续执行边。这条边的频率可以通过BBi的频率减去所有已知出边的频率获得。因此,BBi的频率以及BBi+1的所有入边频率都可以计算获得。同时,由于所有函数的第一个基本块BB0是属于被调用基本块,其所有入边均通过函数调用语句来代表。因此BB0所有入边频率都已知。由此可以推得,通过以上算法,只需要遍历一次函数的控制流图,就可以计算出所有基本块的频率和边的频率。基本块的频率为其中每条指令的指令频率,从而获得精确的指令频率。
以上使用的方法通过构建程序二进制控制流图,间接获取指令频率。同时,也可以直接从LBR数据中获取指令频率。
在LBR寄存器中,记录着若干个连续跳转的指令。由于这些指令跳转是连续发生的,所以可以认为,在同一次记录的所有跳转地址中,任意相邻的两条跳转指令之间的所有指令都在这段周期中执行过。因此,无需借助函数控制流图,也可以直接计算出指令的执行频率:在中断处理程序中,将两条连续跳转语句中间的所有指令的频率都加一,则每条指令最后获得的频率即为该指令的执行频率。具体的算法描述表2所示。
表2使用直接方法从LBR获取指令频率的算法
在这个算法中,对于采样得到的每一条LBR记录,其中每一对相邻的两条跳转指令i1->i1′,i2->i2′,将i1′与i2之间所有指令的执行频率都加一。最终每条指令的频率数即为其执行频率。
要证明本算法的正确性,首先根据指令的逻辑地址对指令进行排序和标注。定义最大无跳转路径Pij为从指令Ii$到指令Ij的一条执行路径,其中Ii是一个跳转指令的目的地址所对应的指令,Ij是一个跳转指令;在Ii到Ij的路径中,没有进行一次跳转。也就是说,在Pij中,所有的指令,包括条件跳转指令都是连续执行而非跳转执行的。不难推断,在LBR寄存器中记录的各条相邻指令之间的所有指令构成一条最大无跳转路径。
对于每一条指令,其真实执行次数等于其所有经过它的最大非跳转路径的执行次数之和。根据此算法,每条指令被采样到的次数等于所有经过该指令的最大非跳转路径被采样到的次数之和。假定每条跳转被采样到的概率都相等,于是每条最大非跳转路径被采样到的概率都相等。因此,最大非跳转路径采样到的次数,即指令被采样的次数与该指令的执行次数成正比。也就是说,本算法能够得到精确的指令频率。
步骤S102,使用随机采样时钟周期的方式得到细粒度时钟周期。
要得到CPI中的时钟周期采样,传统的方法是采用设置CPU_CYCLE事件为采样事件,采用基于程序性能计数器的采样方法。程序性能计数器的值每个时钟周期都自增。当计数器溢时,中断处理程序记录下引起中断的指令地址。程序结束时,统计每条指令被采样到的次数,从而得到每条指令对应的时钟周期采样。
使用程序性能计数器进行采样时,从硬件计数器溢出到真正进入中断需要若干个周期的中断偏移。这个值的特性很大程度上决定了时钟周期采样的精确性,在此将其记作S。除此以外,与指令频率采样不同,时钟周期采样的特殊性在于,当硬件计数器在中断处理程序中复位之后,中断处理程序返回到用户程序。在这个过程中,处理器需要若干个周期去填充指令流水线使其达到完全开放的状态,在此将这个过程所需要的时钟周期数记录为A。由此,当采样周期设置为P时,真实的时钟周期等效采样周期为P+S-A。因此,时钟周期采样的精确性很大程度上取决于这两个偏移延迟的分布特征。
从统计意义上来看,当P为常数时,如果S和A为常数或者完全随机分布,则等效采样周期的期望为确定常数。实验观测表明,S的分布近似常数;A的分布却和处理器运行指令的上下文密切相关。具体来说,就是对于指令序列I1,I2,…In,当I1和I2分别产生中断时,当系统从中断处理程序返回后,可能这两个位置都需要相同的时钟周期到达系统稳定状态(流水线完全充满状态)。正是因此,对于这两条指令来说,下一次中断溢出时的位置将完全相同,从而引起了采样的不精确。
表3时钟周期采样中的伪同步现象示例
在一个封闭的循环里,A的确定性分布会引起采样同步现象。其具体表现为,在循环体内,对于耗费相同时钟周期的指令来说,某些指令会被采样捕捉到,而某些指令却无法得到采样。为了更好的说明这种现象,设计了一个微型测试函数,如表3所示。在这个函数中,构建了一个循环体。循环体中的每条加法指令平均耗费1个周期。按照统计分布,每条指令应该采集到10000次采样。然而,当采用常数采样周期时,得到的采样分布如表3第二列所示,它与真实的时钟周期的分布有较大差距。产生这种现象的一个可能原因是采样周期和单次循环的时钟周期之间存在非1的公因数,从而导致循环体中被采样到的指令构成一个同步闭环。为了排除这种可能,采用质数作为采样周期。然而,类似的现象依然出现,如表3的第三列所示。因为这种现象与同步所造成的采样分布不均不同,将其称为伪同步现象。而这种现象,用以上A的确定性分布现象可以得到很好的解释。
为了克服伪同步现象,将P进行随机化。也就是说,两次计数器溢出之间的事件个数是一个常数加上一个随机数R。因此,等效的采样周期可以表示为P+R+S-A。通过随机数R的引入,可以确保即使不同的指令在同一时刻进入稳态(流水线充满),其下一次引起溢出的时间都是随机的,从而确保每条指令引起溢出的概率与其花费的周期总数成正比。
通过随机数的引入,上图中所示测试函数得到了预期的采样分布。值得注意的是,R如果太小,其随机性依然无法克服指令上下文依赖所造成的影响。因此,需要选择足够大的随机数以确保采样的公平性,优选为255。同时,这也从侧面证明了S的值不存在确定性偏差分布。S代表的是从程序性能计数器溢出到进入中断处理程序之间的间隔。如果S存在确定性偏差,即使采用了随机化的采样周期,真正被记录的指令地址也应产生确定性偏差。为了解释S不存在确定性偏差的原因,进一步回顾S的成因:从程序性能计数器发生溢出到真正进入中断,系统需要一定的时钟周期将溢出信号传递给中断控制器。从逻辑上分析,传递这些信号所需要的时序逻辑应该是固定的,即延迟的时钟周期数固定,因此,S的值也应是一个常数。在实验观测中,S值的大小对于Intel x86处理器来说是30个时钟周期。
S3:所述细粒度指令频率除以细粒度时钟周期,得到细粒度CPI。图2对比了使用本发明中的方法与传统方法(如Intel Vtune中使用的方法)获得的函数级CPI的误差分布图。从图2中可见,本发明的方法有50以上的函数,CPI的误差都在10%以内。而传统方法有接近20%的函数CPI误差在100%以上。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (5)
1.一种基于CPU硬件性能监控计数器的CPI精确测量方法,其特征在于,包括以下步骤:
S1:对跳转历史记录进行采样,获取跳转频率,并根据跳转频率获得细粒度指令频率;
S2:使用随机采样时钟周期的方式得到细粒度时钟周期;
S3:所述细粒度指令频率除以细粒度时钟周期,得到细粒度CPI。
2.如权利要求1所述的基于CPU硬件性能监控计数器的CPI精确测量方法,其特征在于,所述步骤S1具体包括:
选择采样事件发生在跳转指令执行并完成执行的时刻对历史跳转寄存器进行采样;
构建每个函数的控制流图,采样中记录的每一条跳转,都在控制流图中有一条边与之对应,遍历每个控制流图,计算出每个函数中所有基本块的频率和边的频率,所述基本块的频率为其中每条指令的指令频率。
3.如权利要求1所述的基于CPU硬件性能监控计数器的CPI精确测量方法,其特征在于,所述步骤S1具体包括:
记录着若干个连续的跳转指令,两条连续跳转指令中间的所有指令的频率都加1,则每条指令最后获得的频率即为该指令的指令频率。
4.如权利要求1所述的基于CPU硬件性能监控计数器的CPI精确测量方法,其特征在于,所述步骤S2中随机采样时钟周期的方式为:
在时钟周期采样时,在采样周期常数P上加上一个随机数R,使得等效的采样周期为:P+R+S-A,其中,S表示从硬件计数器溢出到真正进入中断需要若干个周期的中断偏移;当硬件计数器在中断处理程序中复位之后,中断处理程序返回到用户程序,在这个过程中,处理器需要A个周期去填充指令流水线使其达到完全开放的状态。
5.如权利要求4所述的基于CPU硬件性能监控计数器的CPI精确测量方法,其特征在于,所述R为255。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110102079.5A CN102750219B (zh) | 2011-04-22 | 2011-04-22 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110102079.5A CN102750219B (zh) | 2011-04-22 | 2011-04-22 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750219A true CN102750219A (zh) | 2012-10-24 |
CN102750219B CN102750219B (zh) | 2015-05-20 |
Family
ID=47030429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110102079.5A Active CN102750219B (zh) | 2011-04-22 | 2011-04-22 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750219B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104952032A (zh) * | 2015-06-19 | 2015-09-30 | 清华大学 | 图的处理方法、装置以及栅格化表示及存储方法 |
CN104216812B (zh) * | 2014-08-29 | 2017-04-05 | 杭州华为数字技术有限公司 | 一种性能监控单元多事件统计的方法和装置 |
CN106649067A (zh) * | 2016-12-28 | 2017-05-10 | 深圳先进技术研究院 | 一种性能和能耗预测方法及装置 |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
US10540251B2 (en) | 2017-05-22 | 2020-01-21 | International Business Machines Corporation | Accuracy sensitive performance counters |
CN111176729A (zh) * | 2018-11-13 | 2020-05-19 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、装置及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156133A (zh) * | 2005-04-04 | 2008-04-02 | 先进微装置公司 | 用于臆测分支预测优化的系统及其方法 |
US20080301437A1 (en) * | 2005-12-13 | 2008-12-04 | Vaccess | Method of Controlling Access to a Scrambled Content |
-
2011
- 2011-04-22 CN CN201110102079.5A patent/CN102750219B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156133A (zh) * | 2005-04-04 | 2008-04-02 | 先进微装置公司 | 用于臆测分支预测优化的系统及其方法 |
US20080301437A1 (en) * | 2005-12-13 | 2008-12-04 | Vaccess | Method of Controlling Access to a Scrambled Content |
Non-Patent Citations (2)
Title |
---|
王莉: "类数据流驱动的分片式处理器上的编译及优化技术", 《万方学位论文》, 29 December 2010 (2010-12-29) * |
马可: "微处理器性能分析模型的建立和研究", 《中国优秀博士学位论文全文数据库》, 15 September 2007 (2007-09-15) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216812B (zh) * | 2014-08-29 | 2017-04-05 | 杭州华为数字技术有限公司 | 一种性能监控单元多事件统计的方法和装置 |
CN104952032A (zh) * | 2015-06-19 | 2015-09-30 | 清华大学 | 图的处理方法、装置以及栅格化表示及存储方法 |
CN104952032B (zh) * | 2015-06-19 | 2018-03-23 | 清华大学 | 图的处理方法、装置以及栅格化表示及存储方法 |
CN106649067A (zh) * | 2016-12-28 | 2017-05-10 | 深圳先进技术研究院 | 一种性能和能耗预测方法及装置 |
CN106649067B (zh) * | 2016-12-28 | 2019-07-02 | 深圳先进技术研究院 | 一种性能和能耗预测方法及装置 |
US10540251B2 (en) | 2017-05-22 | 2020-01-21 | International Business Machines Corporation | Accuracy sensitive performance counters |
US10884890B2 (en) | 2017-05-22 | 2021-01-05 | International Business Machines Corporation | Accuracy sensitive performance counters |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
CN111176729A (zh) * | 2018-11-13 | 2020-05-19 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102750219B (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750219A (zh) | 基于cpu硬件性能监控计数器的cpi精确测量方法 | |
Vicario et al. | Using stochastic state classes in quantitative evaluation of dense-time reactive systems | |
CN103988171B (zh) | 在数据处理系统中用于执行浮点算术运算的方法和装置 | |
CN101344865B (zh) | 一种cpu占用率测量方法及装置 | |
CN103176974A (zh) | 优化数据库中访问路径的方法和装置 | |
Li et al. | Supporting scalable analytics with latency constraints | |
CN105446885A (zh) | 一种基于需求的回归测试用例优先级排序技术 | |
Li et al. | Xuanyuan: An ai-native database. | |
CN103116599A (zh) | 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法 | |
CN104216948A (zh) | 一种数据模型的差异控制方法 | |
Anwar et al. | On the use of microservers in supporting hadoop applications | |
CN103164321A (zh) | 中央处理器占用率测量方法及装置 | |
CN104778185A (zh) | 异常结构化查询语言sql语句确定方法及服务器 | |
CN110134517A (zh) | 一种基于公式解析的并行计算方法及装置 | |
CN102375721A (zh) | 一种矩阵乘法运算方法、图形处理器和电子设备 | |
CN102968491A (zh) | 一种数据分配方法和装置 | |
CN105868026A (zh) | 一种计算序列平均值的方法和装置 | |
CN103077080B (zh) | 基于高性能平台的并行程序性能数据采集方法及装置 | |
CN103218219A (zh) | 紧凑函数跟踪 | |
CN103678425A (zh) | 多系统的集成分析 | |
CN101021721A (zh) | 基于三总线结构的智能监控单元专用集成电路 | |
CN106597095B (zh) | 一种双cpu等间隔采样的频率跟踪实现方法 | |
CN102646060B (zh) | 高性能计算机系统中不满足计算精度要求的结点检测方法 | |
CN103869156B (zh) | 一种双混频时差测量方法及测量系统 | |
CN102944778A (zh) | 一种便携式电力系统低频振荡检测装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |