vtune的使用的心得精品PPT课件
- 格式:pptx
- 大小:1.14 MB
- 文档页数:25
VTune使用文档1. Vtune功能介绍:Intel VTune性能分析器通过采集、分析程序的源代码,结合系统相关的性能数据,帮助程序员查找软件程序上的性能瓶颈。
VTune的主要功能:z采样(Sampling):VTune能够寻找程序中的热点区域——最耗时间的模块、函数、代码行和汇编指令,并提供进程、线程、模块、函数以及代码等各种性能分析视图,并以图像化界面具体的显示出来。
z调用关系图(Call Graph):通过程序的调用关系图,可以看到:(1) 程序函数级的框架结构(2) 某个函数被特定区域调用的次数(3) 每个函数消耗的时间(4) 处于关键路径上的函数z计数器监控器(Counter Monitor):利用计数器监控器,用户可以在运行期间轻松的跟踪系统活动和资源消耗,帮助检测和发现系统级的性能问题。
z调优助手(Tuning Assistant):Intel调优助手利用丰富的知识库分辨性能问题,自动推荐代码的改进办法,帮助提高开发者的工作效率。
主要体现在以下几个方面:(1) 算法改进(2) 处理器瓶颈以及改进(3) 采样向导的增强(4) 超线程2. VTune使用说明2.1 VTune采样实验(1)启动Intel VTune性能分析器,运行界面如图2-1所示。
图2-1(2)选择New Project按钮,建立新的工程,执行界面如图2-2所示。
图2-2(3)选择Sampling Wizard按钮,选择采样向导,出现如图2-3所示界面。
图2-3(4)选择文件类型,在我们的系统环境下选择第一项“Window/Window CE/Linux Profiling ”,出现如图2-4所示界面。
图2-4(5)在Application To Launch 对话框中选择待分析的文件(我们以C:\Program Files(x86)\Intel\VTune\Examples\ VTuneDemo.exe 为例),点击Finish按钮,可以看到VTune分析器对程序的分析结果,如图2-5所示为对系统中各个Module的分析结果,从中可以看到各个Module的Clocktick,Instructions Reyired和CPI性能。
1.VTune工具的作用VTune是INTEL一个比较强大的性能分析软件包含三个工具:1.Performance Analyzer:性能分析找到软件性能的热点部分,一般也就是性能瓶颈的关键点。
2.Intel Threading Checker:用于查找线程错误,能够监测资源竞争、线程死锁等问题。
3.Inter Threading Profiler: 线程性能监测工具,多线程可能存在负载比平衡,同步开销过大等线程相关的性能问题,该工具可以帮你发现每一个线程每一时刻的状态。
2.读懂串行的Pi和Matrix的程序.//PI#include <windows.h>#include <stdio.h>static long num_steps=100000;double step, pi;void main(){ int i;double x, sum = 0.0;step = 1.0/(double) num_steps;for (i=0; i< num_steps; i++){x = (i+0.5)*step;sum = sum + 4.0/(1.0 + x*x);}pi = step * sum;printf("Pi = %12.9f\n",pi);}// Matrix.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>//#include <advisor-annotate.h>//#include <cilk/cilk.h>//#include <cilk/reducer_opadd.h>#define N 1000int a[N][N],b[N][N],c[N][N];void computmatrix(){int i,j,k;int sum = 0;//cilk::reducer_opadd<int> sum;//ANNOTATE_SITE_BEGIN(MySite1);//cilk_for(i=0;i<N;i++)for(i=0;i<N;i++){//cilk_for(j=0;j<N;j++)for(j=0;j<N;j++){c[i][j]=0;//cilk_for(k=0;k<N;k++)for(k=0;k<N;k++) //先给矩阵C赋初始值0,然后循环计算A矩阵的行和B矩{//ANNOTATE_TASK_BEGIN(MyTask1);sum+=a[i][k]*b[k][j];//c[i][j]=a[i][k]*b[k][j];;//ANNOTATE_TASK_END(MyTask1);}//c[i][j]=sum.get_value();//c[i][j]=sum;}printf("sum = %d\n",sum);}//printf("sum = %d\n",sum);//ANNOTATE_SITE_END(MySite1);}int main(){clock_t start,end;double timepast;//int i,j,k,m;int o,p,m;for(o=0;o<N;o++){for(p=0;p<N;p++){srand((unsigned int)time(NULL)); //产生随机数种子m=( rand() % 100);a[o][p]=b[o][p]=m; //产生0-100的随机数,给矩阵A,B赋初始值}}start=clock();computmatrix();end=clock();timepast=((double)(end-start))/1000;printf("the time is %12.5f seconds\n",timepast);system("pause");}3.Win32关于多线程编程几个重点地函数。
v t u n e使用文档VTune工具使用0.概述VTune是Intel一个比较强大的性能分析软件。
主要包括三个小工具:(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点,帮助我们收集数据发现问题,至于Analyzer这个功能,有点大言不惭了,还得靠各位大家自己分析了,当然个人认为这一点会是Intel下一步强化该工具的重点。
(2)Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题. 大家程序在并行化后,可以通过Threading Checker 检测一下有没有多线程相关的错误。
(3)Intel Threading Profiler:线程性能检测工具,多线程化有可能会有负载比平衡, 同步开销过大等等线程相关的性能问题。
该工具可以帮你发现每一个线程每一时刻的状态。
可以简单认为该工具是如下的使用顺序:(发现可以多线程的代码瓶颈)---进行并行等编码阶段---(发现多线程中错误部分)---改正代码bug阶段---(发现多线程中有待提高的瓶颈部分)---优化代码性能阶段。
可以看出这套软件针对代码并行的实现有点服务到家的感觉,核心思想就是:”找茬”。
另外推荐一个配套的工具,就是Intel C++ 编译器,可以集成到VS2005或者命令行下,配套使用应该会一些更好的效果,传说中对Intel 的C++ 编译器好像都是赞不绝口的,而且都是自家的东西,Intel肯定不会亏待它的。
还有一个网上推荐的东西: Intel MKL 函数库,提供了VML 函数, 这些函数可以对超越函数(sin, cos, exp, log等)进行优化。
此外友情提示一下,如果你使用的是AMD的CPU芯片,并一心决定以后继续使用它的话,建议同学你就不用往下看了,理由就不告诉你了^_^1. Intel Performance Analyzer对于该工具使用比较简单,不过直接说一下,软件名称是性能分析,实际上只是对软件操作进行时间上的总结和统计,用户自己需要根据数据进行分析,总体来说,该性能分析工具同IBM的性能分析工具大致一样,个人认为还不如IBM的好用的,呵呵。
VTune工具使用0.概述VTune是Intel一个比较强大的性能分析软件。
主要包括三个小工具:(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点,帮助我们收集数据发现问题,至于Analyzer这个功能,有点大言不惭了,还得靠各位大家自己分析了,当然个人认为这一点会是Intel下一步强化该工具的重点。
(2)Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题. 大家程序在并行化后,可以通过Threading Checker 检测一下有没有多线程相关的错误。
(3)Intel Threading Profiler:线程性能检测工具,多线程化有可能会有负载比平衡, 同步开销过大等等线程相关的性能问题。
该工具可以帮你发现每一个线程每一时刻的状态。
可以简单认为该工具是如下的使用顺序:(发现可以多线程的代码瓶颈)---进行并行等编码阶段---(发现多线程中错误部分)---改正代码bug阶段---(发现多线程中有待提高的瓶颈部分)---优化代码性能阶段。
可以看出这套软件针对代码并行的实现有点服务到家的感觉,核心思想就是:”找茬”。
另外推荐一个配套的工具,就是Intel C++ 编译器,可以集成到VS2005或者命令行下,配套使用应该会一些更好的效果,传说中对Intel 的C++ 编译器好像都是赞不绝口的,而且都是自家的东西,Intel 肯定不会亏待它的。
还有一个网上推荐的东西: Intel MKL 函数库,提供了VML 函数, 这些函数可以对超越函数(sin, cos, exp, log等)进行优化。
此外友情提示一下,如果你使用的是AMD的CPU芯片,并一心决定以后继续使用它的话,建议同学你就不用往下看了,理由就不告诉你了^_^1. Intel Performance Analyzer对于该工具使用比较简单,不过直接说一下,软件名称是性能分析,实际上只是对软件操作进行时间上的总结和统计,用户自己需要根据数据进行分析,总体来说,该性能分析工具同IBM的性能分析工具大致一样,个人认为还不如IBM的好用的,呵呵。
VTUNE使用说明201203061.运行环境Windows或Linux,下载不同版本2.运行方式主要介绍Linux下执行方式,主要有两种命令:amplxe-cl –collect hotspots ./test //启动程序并采样amplxe-cl -collect hotspots -duration 60 //启动程序后,对全系统采样60秒说明:1.amplxe-cl (vtune command line 命令)2.–collect表示采集信息,3.hotspots为选项可更改,表示要采集的事件集合名称,经常使用的有hotspots和general。
可以使用其他名称,也可以自己配置事件并命名。
详详细选项执行amplxe-cl –collect-list查询3.运行结果在命令运行的目录下生成一个r00*****文件如下图所示,采集后的数据自动保存在该文件中,并按生成先后顺序自动命名排放3.查看方式可以在windows下用windows版图形界面查看,将上述的结果文件从服务器拷贝到本机还可以在linux下执行amplxe-gui启动图形界面查看,两种方法大同小异。
下面介绍一种4.查看结果1)运行amplxe-gui服务器上启动图形界面如下图启动时界面2)File->open->result3)选择之前运行的结果结果文件夹中的*.amplxe为可读图形数据,打开3)显示结果界面如图各选项意义见help5.高级配置功能1)运行amplxe-gui,新建工程2)建一个分析的工程,打开如图3)此时三角符号enable如图点中三角4)进入分析类型界面选择analysis type下方第二个按钮,基于light weights hotspots新建一个分析类型配置采样事件5)新建类型显示在custom analysis中选择add event 配置想要的硬件事件,并给个合适的命名。
6)保存关闭,可用amplxe-cl –collect-list查看自己定义的类型,使用与hotspots等类型相同。