perf相关内容

cpu缓存性能。存储未命中与负载未命中

我将perf用作基本事件计数器。我正在开发一个程序,该程序遭受数据缓存存储未命中的困扰。其中比例高达80%。 我知道高速缓存的原理。它会在各种未命中情况下从内存加载,并在需要时从缓存中删除数据。我不了解的是,存储和加载未命中之间有什么区别。它如何区别加载和存储。如何存储未命中? 解决方案 (如您所知)load-miss是指处理器何时需要获取数据来自主内存的数据,但缓存中不存在数据。因 ..
发布时间:2020-09-28 06:37:59 其他开发

缓存未命中百分比之后的+-#在性能统计中意味着什么?

我使用了 perf stat --repeat 100 -e缓存引用,缓存未命中,循环,指令,分支,故障,迁移./avx2ADD 命令和输出被跟随。 +-8.93%表示缓存丢失是什么意思,表示缓存未命中百分比等于 4.010%? 32,425个缓存引用(+-0.54%) 1,300高速缓存未命中#所有高速缓存参考的4.010%(+-8.93%) 538,839周期(+-0.28%) ..
发布时间:2020-09-28 06:11:37 其他开发

Linux perf命令以获取缓存参考

我想测量代码的缓存未命中率。我们可以使用性能列表来显示支持的事件。我的台式机具有3.10 GHz处理器的Intel®Core™i5-2400 CPU,性能列表中包含缓存刷新率和缓存丢失,例如: cpu周期或周期[硬件事件] 停顿周期前端或空闲周期前端[硬件事件] 停顿周期后端或空闲-cycles-backend [硬件事件] 指令[硬件事件] 缓存引用[硬件事件] 缓存缺失[硬件 ..
发布时间:2020-09-28 05:33:18 其他开发

为什么Perf和Papi为L3缓存引用和未命中赋予不同的值?

我正在做一个项目,在这个项目中,我们必须实现一种理论上证明对缓存友好的算法。简而言之,如果 N 是输入,而 B 是在缓存和缓存之间传输的元素数。每次遇到高速缓存未命中时都需要RAM,该算法将需要 O(N / B)访问RAM。 Perf ,另一个是 PAPI 库。不幸的是,我使用这些工具的次数越多,对它们确切功能的了解就越少。 我使用的是Intel(R)Core™i5-3470 CPU ..
发布时间:2020-09-28 05:18:29 C/C++开发

性能报告显示此功能"__memset_avx2_unaligned_erms",有开销.这是否意味着内存未对齐?

我正在尝试使用perf工具分析我的C ++代码.实现包含带有SSE/AVX/AVX2指令的代码.除此以外,代码还使用-O3 -mavx2 -march=native标志进行编译.我相信__memset_avx2_unaligned_erms函数是memset的libc实现. perf表明此功能有相当大的开销.函数名称指示内存未对齐,但是在代码中,我正在使用GCC内置宏__attribute__(( ..
发布时间:2020-09-15 05:37:54 C/C++开发

AMD性能事件

我正在尝试将我的设备上的perf与AMD cpu一起使用,但是我真的找不到有关如何从AMD获取cache-misses的任何信息.我读到您需要编写-e rNNN,其中NNN是事件的十六进制代码,但是我没有找到任何表或东西来查看这些代码.您能帮我这个忙吗,因为似乎互联网上根本没有任何信息!实际上,在perf手册中有一些链接,但它们无效:( 解决方案 检查perf list输出,在现代Linu ..
发布时间:2020-08-24 01:12:06 其他开发

是否可以在docker容器中运行linux perf工具

我尝试从容器中发出以下命令,发现以下问题,可能是由于"-moby"内核版本引起的.我们不能在Linux内核版本中获得没有单词"-moby"的docker镜像. 我尝试在具有ubuntu的VM上安装linux perf工具,并且该工具正常工作. #docker run -t -i ubuntu:14.04 /bin/bash root@214daea94f4f:/# perf WAR ..
发布时间:2020-07-31 03:10:24 服务器开发

PERF_TYPE_HARDWARE和PERF_TYPE_HW_CACHE并发监视

我正在研究perf_event_open syscall之上的自定义实现. 该实现旨在为任意内核上的特定线程支持各种PERF_TYPE_HARDWARE,PERF_TYPE_SOFTWARE和PERF_TYPE_HW_CACHE事件. 在英特尔®64和IA-32体系结构软件开发人员手册3B 中,我看到以下测试CPU(Kaby Lake)的信息: 到目前为止,据我了解,一个人可以同 ..
发布时间:2020-07-01 02:48:05 其他开发

是否可以在程序中提取指令的特定能耗?

我的意思是,给定一个源代码文件,是否可以使用诸如perf之类的工具来提取特定代码块或1条单指令的能耗水平? 解决方案 使用 jRAPL 一个用于概要分析运行在CPU上的Java程序的框架. 例如,以下代码段尝试测量任何代码块的能耗,这些代码块的值是开始和结束之间的差值: double beginning = EnergyCheck.statCheck(); doWork(); ..
发布时间:2020-06-13 19:20:05 服务器开发

比较BFS算法的两种不同实现时了解性能细节

以下结果是在具有32核的计算服务器上使用perf进行测量的。我知道我的实现未经过优化,但是有意进行比较。据我了解,图算法往往具有较低的局部性,研究人员试图解决该问题。 不过,我不清楚结果。经过的时间是令人误解的。我的实现在大约10秒钟的时间内通过一个约有4mm节点的图形运行,其余时间进行了预处理。经过优化的版本使用相同的输入,并且遍历约10次,每次间隔不到一秒钟,因此实际上只是预处理时间。我 ..
发布时间:2020-06-03 20:20:40 其他开发

对流程执行子集进行性能监控

我打算收集Linux应用程序程序执行情况的一小部分的统计信息.该子集可以定义为前n个指令或前n个周期. 对于已定义的子集,我们对诸如分支预测准确性,高速缓存命中率和核心IPC之类的统计数据感兴趣. 性能工具似乎是进行此类监视的最佳选择.但是,在perf中指定子集的方法是通过运行提供子集信息的命令. 示例:如果要在最初的n秒内收集数据,则必须运行以下命令. 性能统计-p PI ..
发布时间:2020-05-25 18:32:15 其他开发

动态监控rdtsc

是否有一种方法可以使用perf动态地“实时"监视汇编指令? 我已经看到,如果我使用perf record/perf top,然后单击记录的函数,我会看到汇编指令,但是我可以直接监视特定的汇编指令,例如rdtsc或clflush,例如,它们在一个进程中被调用的频率如何.一定时期内使用perf? 我正在Skylake和Haswell上使用Debian 9. sudo uname -a L ..
发布时间:2020-05-11 22:16:37 其他开发

如何使用性能统计来计算MIPS

有关基准测试的答案-如何计算发送给CPU的指令数以查找消耗的MIPS 建议: Linux上的 perf stat ./my_program将使用CPU性能计数器来 记录它运行了多少条指令,以及它有多少个核心时钟周期 拿. (以及它使用了多少CPU时间,并将为 你). 一个示例生成以下输出,该输出不包含计算出的MIPS信息. Performance counter stats fo ..
发布时间:2020-05-09 23:07:18 其他开发