Intel(R) VTune(TM) Amplifier XE简介
Intel(R) VTune(TM) Amplifier XE是Intel(R) Parallel Studio XE软件包其中的一个工具。它能提供Windows和Linux操作系统下单线程和多线程应用程序的代码性能的相关信息。
VTune Amplifier XE 可以分析算法,标识出应用程序如何能更好的利用可用的硬件资源。使用VTune Amplifier XE 可以定位内容: 1、 在程序中或者整个系统中时间消耗最多的函数; 2、 没有有效利用处理器时间的代码片段; 3、 优化串行和线程化性能的最好代码片段; 4、 影响程序性能的同步对象; 5、 程序的I/O操作是否花费很多时间,以及在哪里、为什么花费时间; 6、 不同的同步方法,不同的线程数量或者不同算法对于性能的影响; 7、 线程活跃性和变迁; 8、 代码中硬件相关的瓶颈;
VTune Amplifier XE算法分析类型主要包括四个部分: 轻量级热点函数(Lightweight Hotspots) 热点函数(Hotspots) 并发性(Concurrency) 锁及等待(Locks and Waits)
算法分析功能说明 轻量级热点分析(Lightweight Hotspots) 确定最消耗时间的代码。轻量级热点分析不会有很大的负载,不会收集调用栈信息。也可以用此功能来对系统中的所有进程进行抽样。轻量级热点分析基于硬件事件进行样本收集。 轻量级热点分析获取的信息:目标进程及其所有子进程的信息,包括线程、耗用CPU时间的函数。查看信息时可以按照进程、线程、模块等进行筛选。
热点分析 指出程序中最耗时的代码。热点分析收集调用栈信息。热点分析不能用来分析整个系统,但是可以加载一个程序或者附加到一个进程中进行分析。热点分析使用用户态采样和跟踪分析方法。 热点分析结果:可以获得目标进程中的线程信息,最耗用时间的函数及其调用关系。
锁及等待分析 指出程序在什么地方等待同步对象或者I/O操作,并找出这些所如何影响性能。锁及等待分析使用用户态采样和跟踪收集方法。 分析结果:可以得到在各种需要等待的操作中花费的时间,等待次数,及调用栈的情况。
线程并发性分析 是指同时处于可执行状态的线程数量。分析程序是如何利用可用逻辑CPU的,帮助发现那里的并行操作造成了同步开销,并指出潜在的可并行化部分。
以热点分析为例,首先建立或选择一个项目,每个项目都对应着一个应用程序(.exe或.o文件)。选择New Analysis
选择好分析类型,同时可设定一些分析参数
Instruction Retired:所需指令数 分析数据 选择summary一栏 CPU time:CPU实际工作时间 Instruction Retired:所需指令数 CPI Rate: 每条指令所需时钟数 最耗时的五个函数
CPU利用直方图,显示CPU同时被利用的个数及时间
展开Bottom up窗口,可以看到最占时间的函数,点击右键,选择view source 能看到对应的C代码和汇编代码及运行时间
可以适当的更改程序,如循环的嵌套顺序,将更改后的程序与原程序对比,可以观察性能的改进
1 时间轴 2 运算时的线程 3 CPU的利用率
Amplifier所能分析的种类,其中除算法分析外,都需要有相应的硬件支持,即需要对硬件采样。
设计过程中可先考虑并发性,而因硬件结构不同而做的改动最后考虑。可分为四部分:划分partitioning:将要执行的运算和数据拆分,分成一个个小的任务;通信communication:适当的通信能确保运算能完成;凝结agglomeration:将一些联系紧密的任务划连接成较大的任务;映射mapping:根据硬件结构来将运算映射完成。
除了运算时间和关键部分的可扩展性,还需考虑数据的产生机制、存储机制、传输网络、如何从读取、不同阶段间的传输。 因此,性能的评价标准应包括:运行时间,并行效率,存储需求,数据吞吐量、数据等待时间,输入输出比例。这些都可以通过Vtune Amplifer来分析,只是硬件的开销等涉及可重构处理器的硬件的指标需要其他分析方法。
Thank You !