VTune™ Amplifier XE: 命令行上直接使用用户分析参数,无需创建新的分析类型

VTune™ Amplifier XE 2011是一款新型的性能分析工具,集VTune™ Performance Analyzer 和 Intel Thread Profiler 功能之大成。尤其可贵的是此产品预定义了很多分析类型可供用户选择,避免了用户花费大量的时间去搞懂一些太细节的(尤其是和处理器有关的)参数设置。当然用户也可以根据需求去创建自己的分析类型,见此文

凡是有利就有“弊”。有些用户是使用命令行来完成自动性能测试过程,有关命令行amplxe-cl的使用,见此文。当用户要增加自定义的分析类型,而这只能在图形界面完成,然后用“amplxe-cl –collect-list”显示所有的分析类型,非常的不方便。

所以我们需要另辟蹊径,找到更为有效的方法。

其实在vtune_amplifier_xe_2011/bin64(bin32) 下有二条内部命令amplxe-runss和amplxe-runsa, 分别用于用户模式和系统模式的性能分析。以下用具体的实例来说明。

Case 1. 如用户需要使用自定义的热点分析(用户模式),而且程序运行较短 – 需把 interval 的值从缺省的10ms 改为1ms, 而且脚本模式运行二个以上程序,都想知道各个模块的性能。假如我有auto.sh – 运行二个程序:

./primes.ia32

./primes.icc

[root@NHM02 problem_report]# amplxe-runss --follow-child --interval 1 -result-dir project-04-18-2011 -- ./auto.sh

新的结果目录project-04-18-2011被创建。

列出相关模块的热点函数:

[root@NHM02 problem_report]# amplxe-cl -report hotspots -r project-04-18-2011 -filter module=primes.ia32

Using result path `/home/peter/problem_report/project-04-18-2011'

Executing actions 75 % Generating a report

Function        Module  CPU Time

findPrimes      primes.ia32     0.836

main    primes.ia32     0.001

Executing actions 100 % done

[root@NHM02 problem_report]# amplxe-cl -report hotspots -r project-04-18-2011 -filter module=primes.icc

Using result path `/home/peter/problem_report/project-04-18-2011'

Executing actions 75 % Generating a report

Function        Module  CPU Time

findPrimes      primes.icc      2.271

Executing actions 100 % done

Case 2:选择关注的PMU(Performance Monitor Unit)的事件,自由组合,并运行性能分析。

列出所有的本机支持的事件:amplxe-runsa –event-list

接下来就可以收集感兴趣的性能数据,如:

[root@NHM02 problem_report]# amplxe-cl -collect-with runsa -duration 10 -knob event-config="CPU_CLK_UNHALTED.THREAD":sa=2000000,"RESOURCE_STALLS.ANY":sa=1000,"UOPS_RETIRED.STALL_CYCLES":sa=1000,"UOPS_RETIRED.TOTAL_CYCLES":sa=1000 --result-dir my_event_result -- ./primes.icc

-或者-

[root@NHM02 problem_report]# amplxe-runsa -d 10 -event-config="CPU_CLK_UNHALTED.THREAD":sa=2000000,"RESOURCE_STALLS.ANY":sa=1000,"UOPS_RETIRED.STALL_CYCLES":sa=1000,"UOPS_RETIRED.TOTAL_CYCLES":sa=1000 --result-dir my_event_result -- ./primes.icc

Determining primes from 1 - 100000

Using result path `/home/peter/problem_report/my_event_result'

Executing actions  0 %

Warning: The result contains a lot of raw data. Finalization may take long.

Executing actions 75 % Generating a report

Summary

-------

Elapsed Time:  10.191

Executing actions 100 % done

打印primes.icc模块上热点函数的性能数据

[root@NHM02 problem_report]# amplxe-cl -report pmu-events -r my_event_result -group-by function -filter module=primes.icc

Using result path `/home/peter/problem_report/my_event_result'

Executing actions 75 % Generating a report

Function        Module  CPU_CLK_UNHALTED.THREAD:Hardware Event Count    RESOURCE_STALLS.ANY:Hardware Event Count        UOPS_RETIRED.STALL_CYCLES:Hardware Event Count  UOPS_RETIRED.TOTAL_CYCLES:Hardware Event Count

findPrimes      primes.icc      4332000000      187384000       1039911000     1755448000

[Import thunk pthread_join]     primes.icc      0       0       1000    1000

[Import thunk pthread_mutex_lock]       primes.icc      0       12000   82000  127000

[Import thunk pthread_mutex_unlock]     primes.icc      0       0       1000   4000

main    primes.icc      0       0       0       1000

Executing actions 100 % done

本文起到抛砖引玉的作用,更多用法请参阅: “amplxe-runss --help” 和 “amplxe-runsa –help”

有关编译器优化的更完整信息,请参阅优化通知
标签: