【性能】性能分析工具VTune|perf相关性工具

目录

简介

与perf的区别

入门:使用Intel VTune Profiler进行性能分析及优化


简介

 VTune是 Intel 提供性能分析软件,VTune Amplifier XE 2011 集成了Intel VTune Performance Analyzer 和 Thread Profiler的主要功能,同时吸取了Performance Tool Utility 这个产品的优点。

其中,Vtune Performance Analyzer是性能分析工具,找到软件性能热点、瓶颈部分;

Vtune Threading Profiler是线程性能检测工具 , 分析负载平衡、同步开销过大等线程相关的性能问题。

    VTune Amplifier XE 可以指明在相关的硬件资源上应用程序的改善点,具体来说,使用该软件用户获取的信息主要有以下几点:

l         确定占用大量处理器时间的区域(热点);

l         查看应用运行过程中的情况(通过检测绑定process);

l         没有充分的有效利用可用的处理器时间的代码;

l         影响应用程序性能的同步对象;

l         应用程序是否浪费时间在输入输出操作上,在哪里浪费的,为何浪费;

l         对比不同的同步方法、不同的线程数量、不同的算法之间对性能的影响;

l         线程的活动状态和状态的转换;

l         代码中与硬件相关的性能瓶颈(如缓存缺失、分支预测失败等);

提供用户界面和命令行下使用的两种模式。普通用户可以获取30天的免费评估版本,下载网址:http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/,相关教程可以在以下网站查看:http://software.intel.com/zh-cn/forums/185/

(参考:https://www.cnblogs.com/xingmuxin/p/11328472.html

与perf的区别


perf 看不到L3cache 等硬件特性,需要更强大的工具

入门:使用Intel VTune Profiler进行性能分析及优化

(摘自:、https://blog.csdn.net/yaojingqingcheng/article/details/120335335

Intel VTune Profiler是一个全平台的性能分析工具,可以帮助你快速发现和分析应用程序及整个系统的性能瓶颈。工具支持分析本地或远程的Windows,Linux及Android应用,这些应用可以部署在CPU,GPU,FPGA等硬件平台上。支持分析的语言包括:DPC++, C,C++,C#,Fortran,OpenCL,Python,Go,Java,汇编等。
 

 

VTune集成了多种性能分析方法
性能快照(Performance Snapshot)生成程序性能问题的分析总结。在总结报告里,会推荐你采用哪些具体的分析手段进行下一步的分析和优化。

算法(ALGORITHM)可以帮助你分析程序中所采用的算法的效率,理解程序最花时的地方在哪里。算法分析组包含了热点,异常探测,内存消耗三种分析方法。

热点(Hotspots)专注在一个具体的可执行文件,识别消耗cpu时钟最多的函数,可以直观的展示程序的线程信息及每个函数的调用栈信息。

异常探测(Anomaly Detection)可以帮助你在循环迭代中识别性能异常。

内存消耗(Memory Consumption)探索随时间而变化的内存消耗,并分析运行期间分配和释放的内存对象。

微架构(Microarchitecture)分析组包含了可以评估代码运行效率的一系列分析类型。

微架构探索(Microarchitecture Exploration) 有助于识别影响应用程序性能的最重要的硬件问题。在进行硬件级分析时,可以将此分析类型作为起点。

内存访问(Memory Access)用于识别内存访问中的一些问题,特别适用于NUMA架构中。

并行(Parallelism )分析组介绍了基于计算敏感的应用程序的分析类型。在进行更有针对性的分析之前,可以先用此类方法分析整体的应用程序性能。

线程(Threading)展示应用程序在当前cpu分布下的线程化情况,识别占用CPU时间较长的函数和可能导致cpu等待的一些非必要同步问题。

HPC性能表征(HPC Performance Characterization )可以评估计算敏感型或含有大量浮点运算的应用程序的运算及内存使用效率,可以作为理解整个应用程序性能的起点。

输入和输出(I/O)基于一些硬件事件来分析设备的PCIe和I/O带宽消耗,DDIO的使用效率,程序的数据面(DPDK和SPDK)利用率。

硬件加速器(Accelerators)组包含了用于应用程序及系统的CPU、GPU和FPGA使用情况的分析方法。

GPU卸载(GPU Offload)适用于使用GPU进行渲染,视频处理和计算的应用程序。它可以分析应用程序是的瓶颈是受限于CPU还是GPU。

GPU热点(GPU Compute/Media Hotspots)针对GPU绑定的应用程序,分析GPU内核执行的每一行代码,并能识别出由内存延迟或低效的内核算法造成的性能问题。

CPU/FPGA交互(CPU/FPGA Interaction)分析每个FPGA加速器的利用率,并确定最耗时的FPGA计算任务。

平台分析(Platform Analysis)用于监控应用程序的系统行为和电力使用情况。

系统概述(System Overview)是一种基于硬件事件的采样分析,监控目标系统的通用行为,并识别限制性能的平台级因素。

平台采样(Platform Profiler)分析收集系统在一段时间内满负荷运行的数据,并深入了解整个系统配置、性能和行为。集合在VTune Profiler外部的命令提示符上运行,并可以在web浏览器中查看结果。

安装并使用VTune
软件下载地址:

Download the Intel® oneAPI Base Toolkit

操作系统选择Windows,安装类型选择Local,VTune包含在Intel的oneAPI套件当中。在windows客户端,可以通过SSH远程连接到服务器,采集相关进程数据到客户端进行性能分析,性能分析结果将在可视化图形界面展示。
 

使用VTune分析性能有两种方法:

1. 通过VTune客户端,直接启动程序或者附着到程序进程上,抓取相关数据进行分析。

2. 通过perf工具,抓取报告,导入到VTune客户端进行数据分析。

VTune直连进行性能分析
只需简单4步,即可一键分析性能。

第一步,Where,指定目标程序所在位置

选择Remote Linux,通过SSH远程连接,指定服务器IP,点击Deploy,一键部署服务器端相关配置。

第二步,WHAT,选择目标进程

选择Attach to Process, 会弹出搜索框,直接搜索进程名字,找到正在运行的进程PID,填入即可。

第三步,HOW,选择性能分析方法

每种性能分析方法的概述在上面已经介绍过了,选择适合自己的就行。

第四步,添加代码路径和库路径

点击软件右下角的Binary/Symbol Search按钮,添加源代码所在路径,动态库的路径会自动搜索,无需手动添加。注意,程序编译的时候需要带 -g 选项,否则结果显示的热点分布将和实际情况有较大出入。

分析结果展示如下,切换不同的标签栏,可以查看不同的结果展示方式。

选择Top-down Tree可以自顶向下查看热点函数分布。

如果代码及库路径正确,双击函数,即可查看函数内部的热点分布详情,以及对应的汇编代码。

 

Perf生成报告,VTune进行分析

只需要简单2步,就可以分析性能。

第一步,到服务器上用perf采集进程数据。

perf相关用法请参考 Linux perf Examples

[root@localhost ~]# perf record -F 99 -e cycles,cache-misses -ag -p 66029 -- sleep 100
[root@localhost ~]# ls perf.data
perf.data
[root@localhost ~]# mv perf.data data.perf 

 

这里的-e cycles,cache-misses表示采集的事件类型,-p 66029为进程的pid,sleep 100表示采集时间持续100秒。

采集结束会生成perf.data文件,可以在linux端直接使用perf report查看性能报告,但是展示方式不够友好。可以将其重命名为data.perf,.perf是VTune客户端可以导入的数据格式。

perf list列出了可以采样的事件
 

[root@localhost ~]# perf list
 
List of pre-defined events (to be used in -e):
  branch-instructions OR branches                    [Hardware event]
  branch-misses                                      [Hardware event]
  bus-cycles                                         [Hardware event]
  cache-misses                                       [Hardware event]
  cache-references                                   [Hardware event]
  cpu-cycles OR cycles                               [Hardware event]
  instructions                                       [Hardware event]
  ref-cycles                                         [Hardware event]
  ...

 

第二步,将data.perf导入VTune

点击VTune客户端左侧导入按钮,将data.perf文件导入进去,即可进行性能分析。同样地,在分析之前,应确保代码和库路径配置正确。

生成报告如下所示,可以展示cycles和cache-misses数据。

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值