使用六 (进一步熟悉Call Graph)

简述:

上一个使用测试中,对Vtune的Call Graph工具有了初步认识,这里就进行实用性的测试

 

参数(百度百科):

MFLOPS:

Million Floating-point Operations per Second, 每秒百万个浮点操作) 衡量计算机的主要技术指标。

对于一个给定的程序, MFLOPS = 操作浮点数 / (执行时间 * 10 ^ 6)

该指标用于比较同一系统上求解同一问题不同算法的性能

 

步骤:

1. 现在Command 中运行一个基准程序

 

之后得到一组结果,

使用六 (进一步熟悉Call Graph)_第1张图片

 

做完上面这个实验之后,需要还原linpack_c这个文件夹至实验前的模式,

 

2. 在Vtune中创建一个Activity, 选择Sampling Wizard,

使用六 (进一步熟悉Call Graph)_第2张图片

 

将duration 调整为120

 

完成。进入Linpack_c的module显示界面,

使用六 (进一步熟悉Call Graph)_第3张图片

 

1) 可以看到,除了matgen和 get_frequency之外clocktick samples 最多的就是daxpy函数

 

 3. 替换原先的C版本的程序,这里使用Intel的MKL 版本

首先仍然是在命令行中,泡一下linpack_c_mkl_daxpy.exe

 

之后得到的输出结果,

使用六 (进一步熟悉Call Graph)_第4张图片

 

 

 4. 使用Vtune的Call Graph Wizard继续做测试

Call Graph 选中, 程序为linpack_c.exe,运行之后的结果:

使用六 (进一步熟悉Call Graph)_第5张图片

可以看到是second这函数运行的时间最长,点入这个函数

使用六 (进一步熟悉Call Graph)_第6张图片

 

5. 之后测试一下linpack_mkl.exe这个程序

首先在命令行下跑linpack_mkl,.exe

 

 运行之后的结果如下,

使用六 (进一步熟悉Call Graph)_第7张图片

 

三个程序

linpack_c.exe

linpack_c_mkl_daxpy.exe

linpack_mkl.exe

运行之后看到吗, Mflops 最大的认识linpack_mkl.exe的结果5809.04, 性能最好

你可能感兴趣的:(使用六 (进一步熟悉Call Graph))