PMU性能分析系列1 - 相关概念

原创 2012年03月22日 20:52:09

类似文章:

http://blog.sina.com.cn/s/blog_6cfddec10100mck9.html

http://bbs.lmtw.com/dispbbs.asp?boardid=20&id=113723

http://topic.csdn.net/u/20080527/17/44d9ebf9-959d-4495-8456-62e4b2d40f05.html

http://www.cnblogs.com/konlil/archive/2011/05/17/2048976.html

http://software.intel.com/zh-cn/blogs/2009/03/18/intelr-coretm-i7-intelr-vtunetm-performance-analyzer/

http://software.intel.com/zh-cn/blogs/2010/07/01/intelr-coretm-2-duo/

http://www.sokerspace.com/modules/planet/view.article.php/30561


1. 什么是PMU

Performance Monitor Unit,性能监视单元,其实CPU提供的一个单元,属于硬件的范畴。通过访问相关的寄存器能读取到CPU的一些性能数据,目前大部分CPU都会提供相应的PMU,下面主要学习Intel系列CPU的PMU。


2. 主要参考资料:

要了解PMU,对于系统编程人员,参考《Intel® 64 and IA-32 Architectures Software Developer Manuals》里面有相关的介绍(Volumn3, chapter18 && chapter19)。

对于使用VTune等性能工具,只需要了解相关的PMU事件就参考其工具文档了。


3. PMU事件分类

architectural performance events: compatible among processor families,即在不同的处理器之间是兼容的。
non-architectural performance eventsmodel-specific,即型号相关的,不同型号的处理器有不同的一些事件。

很古老的一些处理器没有architectural事件。

当然,architectural类别的事件又提供了版本的概念,不同的处理器能支持的版本也会不一样,所以并不是说所有的支持architectural事件的处理器都支持同样数量的architectural事件。

说明:architectural事件是在Intel Core Solo and Intel Core Duo processors中开始引入的。


4. PMU事件计数的获取

对于系统编程人员,可能需要获取CPU的PMU事件计数,这就需要利用CPUID、CR(control register)、MSR(model specific registers)等寄存器来读取即可。一般的性能分析工具,其实就是通过分析CPU事件来提供性能数据的。


5. 关于fix counter和programmable counter

固定计数器和可编程计数器。在相关文档中经常看到这两个词,有些事件是通过固定计数器获取的,有些(大部分)是通过可编程计数器获取。参考18.4.1 Fixed-function Performance Counters了解固定功能计数器,其硬件上的区别不太清楚,也没有找到什么文档介绍。)一般来说:

上面提到过,事件分类为architectural events和non-architectural events,其中architectural事件数量相对较少,因为是各个处理器都会支持的事件,architectural事件可以通过general-purpose performance counters(普通功能性能计数器)或fixed-function performance counters(固定功能性能计数器)来收集;non-architectural事件数量相对较多,不同的处理器不一样,non-architectural事件一般是通过普通功能性能计数器收集。可见,fixed counter的数量整体比例更少了。

PS:fixed counter对应的事件基本上目前就三个:Unhalted core cycles, unhalted core reference cycles, instructions retired。即时钟周期数、参考时钟周期数和有效执行的指令计数。


6. Hyper-threading对性能事件计数的影响

在性能计数中,最好不要开启HT,这是由于某些事件是基于核的,有些事件是基于thread的,开启了HT就会使得技术结果更加复杂。这也是为什么某些处理器有CPU_CLK_UNHALTED.CORE事件,而有些处理器为CPU_CLK_UNHALTED.THREAD。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PMU性能分析系列1 - 相关事件的理解 - Basic Performance Tuning Events

以Intel(R) Microarchitecture Code Name Nehalem系列的CPU为例,以VTune工具作为测试手段来理解(因为我的CPU是这个系列的。) 基本的性能调优...

英特尔® Performance Counter Monitor(PCM)--测量 CPU 利用率的更好方法

http://software.intel.com/zh-cn/articles/intel-performance-counter-monitor 下载代码示例 IntelPerformance...

Intel 性能监视器

转自:http://lenky.info/?p=2207 全文来自Intel开发者手册:Intel? 64 and IA-32 Architectures Software Developer’...

intel 性能监控计数器PMC寄存器详解

所有内容来自intel官方手册,章节号已给出。。。 一  以下内容来自(P279):30.1 PERFORMANCE MONITORING OVERVIEW 从Pe...

breakpoint和watchpoint/data breakpoint

breakpoint很容易理解,是程序的断点。在程序某一个地方设置断点,那么程序运行到此处就会暂停。 那么,watchpoint呢? watchpoint是一种特殊的断点(所以,首先它还是断点)。...

Linux下的系统性能调优工具——Perf

参考以下链接文章整理: Perf -- Linux下的系统性能调优工具,第 1 部分 Perf -- Linux下的系统性能调优工具,第 2 部分 感谢原作者,让我知道了性能调优也是如此有趣,L...

VTune Basic Notes 1

1. VTune文档: Getting Started Tutorial:http://software.intel.com/sites/products/documentation/hpc/amp...

Intel处理器MSR学习

Intel IA32软件开发者手册第3卷第35章中介绍了MSR。但是,该章节并没有十分详细地描述,基本上就给出一个地址并作简单说明。而网络上能搜索到文章,也是点到即止。本文结合IA32开发手册,以及c...

PMU性能分析系列1 - 相关概念

http://blog.csdn.net/gengshenghong/article/details/7383438?1345050035   类似文章: http://blog.sin...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)