计算 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 缓存访问事件 的相关文章

  • 使用 WGET 运行 cronjob PHP

    我尝试执行一个 cron 并每 5 分钟运行一个 url 我尝试使用 WGET 但我不想下载服务器上的文件 我只想运行它 这是我使用的 crontab 5 wget http www example com cronit php 除了 wg
  • 如何让 PHP、符号链接和 __FILE__ 很好地协同工作?

    在本地主机上 我有以下目录结构 share www trunk wp content plugins otherfolders share www portfolio wp content symlink Where symlink是一个符
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 使用 gatttool 或 bluepy BLE 订阅通知

    我正在使用 bluepy 编写一个程序 用于监听蓝牙设备发送的特征 我还可以使用任何库或语言 唯一的限制是在 Linux 上运行 而不是在移动环境中运行 似乎仅在移动设备中广泛使用 没有人在桌面上使用 BLE 使用 bluepy 我注册了委
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • 软件预取手动指令合理的场景

    我读过有关 x86 和 x86 64 Intel 的内容gcc提供特殊的预取指令 include
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • 用于预乘 ARGB 的 SSE alpha 混合

    我正在尝试编写一个支持 SSE 的 alpha 合成器 这就是我想出的 首先 混合两个 4 像素向量的代码 alpha blend two 128 bit 16 byte SSE vectors containing 4 pre multi
  • 如何使用 tmuxinator 在 tmux 中拆分水平窗格内的两个垂直窗格

    目前我的 tmuxinator yml 文件中有这个 windows editor layout main horizontal panes vim server rails s 这给了我两个窗口 一个用于编辑器 另一个用于服务器 在编辑器
  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • 有关 Linux 内存类型的问题

    关于Linux内存我有以下问题 我知道活动内存是最常访问的内存部分 但是有人可以解释一下 linux 如何考虑将内存位置用于活动内存或非活动内存 主动存储器由哪些部分组成 磁盘 文件缓存是否被视为活动内存的一部分 有什么区别Buffers
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 为什么使用Python的os模块方法而不是直接执行shell命令?

    我试图了解使用Python的库函数执行特定于操作系统的任务 例如创建文件 目录 更改文件属性等 背后的动机是什么 而不是仅仅通过执行这些命令os system or subprocess call 例如 我为什么要使用os chmod而不是
  • Intel 64 和 IA-32 上的 MESI 有何意义

    MESI 的要点是保留共享内存系统的概念 然而 对于存储缓冲区 事情就变得复杂了 一旦数据到达 MESI 实现的缓存 下游内存就会保持一致 然而 在此之前 每个核心可能对内存位置 X 中的内容存在分歧 具体取决于每个核心的本地存储缓冲区中的
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 使用 sed 将 old-link-url 替换为 new-link-url

    我正在 bash 中编写一个脚本 将 old link url 替换为 new link url 我的问题是 sed 由于斜杠而无法替换 url 如果我只输入一些文字就可以了 my code sed e s old link new lin
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne

随机推荐

  • 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