性能监测工具

SystemTap+FlameGraphfg.stp

SystemTap监控和跟踪运行中的 Linux 内核的操作的动态方法,通过一个名为Kprobes 的应用编程接口(API)来实现该目的。SystemTap 用于检查运行的内核的两种方法是 Kprobes  返回探针但是理解任何内核的最关键要素是内核的映射,它提供符号信息(比如函数、变量以及它们的地址)。有了内核映射之后,就可以解决任何符号的地址,以及更改探针的行为

SystemTap下载地址:https://sourceware.org/systemtap/ftp/releases/

SystemTap详细介绍:https://www.ibm.com/developerworks/cn/linux/l-systemtap/

使用systemtap收集数据,创建脚本,文件名以.stp结尾

FlameGraph(火焰图),是一个把采样所得到的堆栈跟踪可视化展示的工具。它是基于性能分析工具的结果,Flame graph本身并不具备性能检测的能力。

Flame Graph 下载地址https://github.com/brendangregg/FlameGraph

执行步骤:

1、   cat /proc/12345/maps|awk'{print $6}'|sort|uniq > log.txt

2、   stap -DSTP_NO_OVERLOAD -d/home/multi_GPU_3.4.0/run11/libs/libcudnn.so.5 -d /usr/local/cuda-8.0/targets/x86_64-linux/lib/libnvToolsExt.so.1.0.0  -v ../fg.stp > dec16_2.log

3、   FlameGraph-master/stackcollapse-stap.pldec_16.log | c++filt -n > dec_16.mid

4、   FlameGraph-master/flamegraph.pldec16.mid > dec16.svg

OPCM

http://www.correlsense.com/intel-performance-counter-monitor/

1、 PCM工具下载链接https://github.com/opcm/pcm/releases(下载最新版本即可)

2、 tar -xzvf pcm-201710.tar.gz

3、 cd pcm-201710/

4、 make

5、 echo 0 > /proc/sys/kernel/nmi_watchdog (必须root权限)

6、 ./pcm-memory.x   (./pcm-memory.x/csv=mem.log可以保存到文件)

7、 有的会报错,需执行modprobe msr(此模块默认系统是不加载的,如果需要启动此功能,需要先加载模块)

 

NVPROF

首先保证使用nvcc编译器将源程序编译为可执行程序,执行:nvprof ./executablePro

profiling  result中显示的是kernel执行的time情况

api  calls则显示的是程序调用的api所耗费的time情况

 

kernel进行分析时,看profiling result中的结果。还可以测试程序的其他性能参数:

achieved_occupancy:每个sm在每个cycle能够达到的最大activewarp 占总warp的比例。

nvprof --metricsachieved_occupancy ./executablePro

 

gld_throughput:global load throughput (查看memory throughput)

nvprof --metricsgld_throughput ./executablePro

 

gld_efficiency global memory loadefficiency: device memory bandwidth的使用率

nvprof –metricsgld_efficiency ./ executablePro


猜你喜欢

转载自blog.csdn.net/handsome_bear/article/details/80950229