AMD公司自身开发了AMDuprof工具,用于性能分析,下面简单介绍AMDuprof工具的使用。
工具下载地址:AMD μProf

可以看到其支持debian 12系统等下的性能采样。
下载这里的rpm包

通过dpkg -i ***.deb 安装该二进制包,会默认在/opt/AMDuProf_5.1-701/bin 目录下安装uprof的相关工具。我们这里使用AMDuProfPcm工具采集性能指标。
查看帮助,AMDuProfPCM -h 可以看到如下命令,我们重点关于下面用红框圈住的命令。

从---metrics选项中可以看到,其支持采集的微架构包括我们经常需要使用的内存带宽、i pc****、cache_miss****、l1,l2,l3 ca****che 数据等等,按照需要选取即可。不过它在这里并没有写,其实它这里支持选项top****down用于直接采集我们熟知的数据,因此采集微架构特征就更简单了。
仍有一点需要注意是在按pid号采集数据时,它是无法采集Core事件外的事件的,这也与devkit、kperf工具一致。
需要注意的几点:
(1)amd机器即使开启4nps,通过amduprofpcm采集带宽时指定numa数量依然只有0和1,而无法像devkit工具一样采集带宽
(2) 鉴于上述观点,所以在采集带宽和topdown时(按进程或按核采)需要分开采集
因此,我们可以这也写命令让其输出数据:
./AMDuProfPcm -c numa=0 -m topdown,memory,cache_miss,ipc,l1,l2,l3 -d 5 -C
输出结果如下:

上述的输出界面相对devkit来说还是有点简单了,若想要更好看一点的输出,可以使用---html命令,输出一个html文件,类似这种:
./AMDuProfPcm -m topdown,memory,cache_miss -p 1 --html -d 5 -O ./numa0_report
这样就生成了一个可以运行html的一系列组件,点开后如下图所示,基于与perfstudio的展示一致。
成了一个可以运行html的一系列组件,点开后如下图所示,基于与perfstudio的展示一致。
