计算 Amd Zen 2 处理器上的 L3 缓存访问事件

2024-04-15

我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数。根据 PPR(http://developer.amd.com/wordpress/media/2017/11/54945_PPR_Family_17h_Models_00h-0Fh.pdf http://developer.amd.com/wordpress/media/2017/11/54945_PPR_Family_17h_Models_00h-0Fh.pdf),第 2.1.13.4.1 节,第 168 页,“[L3 缓存访问] (L3RequestG1)”的事件为 x01,umask 为 x80。据我了解,perf stat 命令中使用的事件将是 r8001。但无论我运行什么负载,以下命令始终将计数返回为零:

性能统计-a -e r8001 --睡眠 10

“系统范围”的性能计数器统计信息:

             0      r8001                                                       

10.001105322 秒 已用时间

我是否误解了 PPR 或者 [L3 缓存访问] (L3RequestG1) 是否有其他含义?

另外,有没有办法指定 L3 缓存切片来监视 perf 中的事件,因为大多数具有高核心数的较新架构都有多个 L3 切片。


L3 缓存事件只能在 L3 PMU 上计数,如物理助记符(L3PMCx01)和逻辑助记符(Core::X86::Pmc::L3::L3RequestG1)您要测量的事件。 L3 PMU 的正式名称为 L3PMC。这与 Intel 处理器上的 cbox PMU 类似。

原始事件的 perf 中的默认 PMU 是cpu,这是 perf_events 子系统为核心 PMU 提供的名称。使用没有显式 PMU 的原始事件代码指定的事件(例如 r8001)相当于 cpu/r8001/。核心事件0x001代表事件Core::X86::Pmc::Core::FpSchedEmpty并且此事件的 umask 0x80 未定义(请参见第 2.1.15.4.1 节)。所以你正在计算一个未定义的事件。在这种情况下,如果事件碰巧已实现但未记录,则事件计数可能不为零,具体取决于它是否在被分析的程序执行期间发生。否则,事件计数将为零。 perf_events 不会阻止您计算未定义的事件。

从上游内核版本 v5.4-rc1 开始,perf_events 名称下支持 L3PMCamd_l3。要确定您使用的内核是否支持此 PMU,请检查是否使用以下命令枚举它ls /sys/devices/*/format。如果不支持,则无法通过 perf 测量该内核上的 L3 事件。

If amd_l3支持,您必须显式指定 PMU,如下所示amd_l3/r8001/ or amd_l3/event=0x01,umask=0x80/将事件计入正确的 PMU。或者您可以只使用 perf 事件名称l3_request_g1.caching_l3_cache_accesses.

你知道是什么活动吗L3RequestG1代表?文档仅将其描述为“缓存:L3 缓存访问”,意义不大。在我看来,它计算的交易类型是事件涵盖的交易类型的子集L3LookupState。第 2.1.15.2 节中的表 19 表示应使用 rFF04 对 L3 访问和未命中进行计数(L3LookupState)和r0106(L3CombClstrState), 分别。不要盲目地期望这些事件中的任何一个实际上都算作您想要衡量的任何内容。

您链接的 PPR 不适用于任何 Zen2 处理器,而是适用于某些 Zen 和 Zen+ 处理器(特别是型号 00h-0Fh)。您需要了解处理器型号和系列才能找到正确的 PPR。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算 Amd Zen 2 处理器上的 L3 缓存访问事件 的相关文章

随机推荐

  • SQL Server 2005 中的波斯语数字

    我正在尝试将一些波斯语文本添加到我的 SQL Server 2005 数据库中 字母没问题 但是波斯数字 转换为 例如 如果我添加此文本 到数据库 将会有 在数据库 我应该怎么办 例如 我应该使用哪种排序规则 我在用着Arabic CI A
  • 将列表从文本文件加载到 Bash 脚本

    I ve a txt文件包含 abc com google com yahoo com 我有兴趣将其作为列表加载到 bash 脚本中 即Domain List abc com google com yahoo com 可以做吗 附加信息 一
  • 没有为 Eclipse 插件项目找到/生成 Plugin.xml 文件

    我正在开发一个 Maven 插件 它将用于覆盖默认的 Maven 生命周期 为了解决依赖关系 Eclipse 和其他 我想使用 tycho 所以我配置了maven项目将其转换为eclipse plugin project 这是我的 POM
  • 如何设置 NSPredicate 来查找具有 nil 属性的对象

    我有一个ManagedObject class 班级成员之一是NSDate 我想显示未设置日期的类的所有对象 我尝试使用这样的谓词 NSPredicate predicate NSPredicate predicateWithFormat
  • 了解 HTML Retina Canvas 支持

    最近我迷上了 HTMLcanvas绘图及其视网膜支持 无需进一步绘制配置线canvas 元素在视网膜显示屏上看起来有点模糊 我确实知道视网膜显示屏的像素是其四倍 因此默认情况下必须填充一些设备像素 否则图片将只有预期大小的一半 Exampl
  • 提高大型 EF 多级包含的性能

    我是一名 EF 菜鸟 就像我今天刚开始 我只使用过其他 ORM 我正在经历一场烈火的洗礼 我被要求提高另一个开发人员创建的查询的性能 var questionnaires await myContext Questionnaires Inc
  • “与所有者的长时间监视器争用”警告

    我明白了警告信息自从我看到这条消息后 我也开始看到Google Play 服务没有响应弹出窗口和它关闭我的申请一段时间后 我查看过类似的问题 但找不到原因 以下是我的处理程序线程使用示例 我不知道该怎么做才能避免这个问题 Override
  • 对于 Javascript,是什么阻止现代实现不将参数视为真正的数组?

    我认为这是一个旧的 Javascript 行为 Crockford 说这是一个设计错误 在函数内部 arguments就像一个数组 只不过它不是一个真正的数组 因此不能对其调用数组方法 function foo console log ar
  • 如何在 sbt 中检测 JavaFX 运行时 jar

    我想做的是定义javaHome一开始 要么来自环境变量 要么来自默认的固定字符串 然后 稍后 我会使用该字符串 这是我尝试过的 javaHome Some file Library Java JavaVirtualMachines jdk1
  • 在 Jenkins 上使用 PyLint 以及警告插件和管道

    我想用PyLint https www pylint org詹金斯与警告插件 https plugins jenkins io warnings ng and Pipeline https jenkins io doc book pipel
  • 如何使用 T-SQL“挑选”随机记录

    这是一个简单的问题 其实很难回答 因为 挑 有特殊的含义 我需要为每个人随机选择三个 并给出选择 行号 1 2 和 3 困难之处在于人员和选择来自不同的表 并且人员和选择之间没有逻辑连接 The 我能得到的最近的 https stackov
  • C# toUpper 用于不带大写的语言

    使用时String toUpper https msdn microsoft com en us library system string toupper v vs 110 aspx在尝试 格式化 不包含大写字符 例如阿拉伯语 的语言时
  • 如何检查 svg 路径是否具有与数组中的值匹配的类,如果是,则添加一个新类

    我有一个数组和一些svg path元素 我正在使用传单地图 https leafletjs com 我需要检查路径的类是否与数组中的值之一匹配 如果是则添加一个类fadeIn to it var foundNations usa Franc
  • Ruby on Rails 4 - 使用什么身份验证 gem? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 所以过去我们有acts as authenticated restful authentication 等 但现在有多种选择以及Rails
  • 什么是 GitLab 实例 URL,如何获取它?

    我尝试到处寻找它 但什么也没找到 如果有人可以直接开箱即用地定义它 那就太棒了 我不知道 GitLab URL 的实例是什么 我问是否有人可以澄清它是什么 以及我在哪里可以得到它 我目前正在尝试将其添加到视觉工作室代码 https en w
  • 以编程方式检查 Android OTA 系统更新

    如果您转到 设置 gt 关于手机 gt 检查更新 则会启动检查以查看是否有适用于您手机的系统更新 我如何以编程方式执行此操作 此外 我试图在 Android 源代码中找到发生这种情况的位置 以便我可以完整地看到它并更好地理解它 有没有人有什
  • 将 php 项目移至 codeigniter 或更新现有框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 对 pkg_resources.DistributionNotFound 错误进行故障排除

    为什么这个简单的程序 https github com maphew scraps tree master bug dist not found结果是pkg resources DistributionNotFound运行时出错 我们该如何
  • 比较行与列删除的 Excel VBA 性能问题

    只是想知道为什么列删除像行删除一样需要多花 3 秒的时间来执行 matrixWs 是对称片材 如何改进代码 If activeRow gt 8 And activeRow lt lastRow And deleteRowButton The
  • 计算 Amd Zen 2 处理器上的 L3 缓存访问事件

    我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数 根据 PPR http developer amd com wordpress media 2017 11 54945 PPR