You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AMD Zen2(Rome)处理器DRAM流量追踪及工具使用问题咨询

问题描述

我需要追踪AMD EPYC处理器(家族:0x17、型号:0x31)中每个Unified Memory Controller(UMC)的读写访问次数。使用AMDuProfPcm工具的-m memory选项时,可获取8个内存通道(Mem Ch-A至H)的单通道读写带宽,但这是双路系统,我认为这些通道仅对应其中单路的内存通道。

AMDuProfPcm中的UMC事件

查看AMDuProfPcm的配置文件后,找到以下UMC相关的事件条目:

# cat AMDuProf_Linux_x64_4.2.850/bin/Data/Events/0x17_0x3.xml | grep Umc

        <event value="0x0000000000403007" name="DFCS0Umc0ReqRd"/>
        <event value="0x0000000000400807" name="DFCS0Umc0ReqWr"/>
        <event value="0x0000000000403047" name="DFCS1Umc1ReqRd"/>
        <event value="0x0000000000400847" name="DFCS1Umc1ReqWr"/>
        <event value="0x0000000000403087" name="DFCS2Umc2ReqRd"/>
        <event value="0x0000000000400887" name="DFCS2Umc2ReqWr"/>
        <event value="0x00000000004030C7" name="DFCS3Umc3ReqRd"/>
        <event value="0x00000000004008C7" name="DFCS3Umc3ReqWr"/>
        <event value="0x0000000100403007" name="DFCS4Umc4ReqRd"/>
        <event value="0x0000000100400807" name="DFCS4Umc4ReqWr"/>
        <event value="0x0000000100403047" name="DFCS5Umc5ReqRd"/>
        <event value="0x0000000100400847" name="DFCS5Umc5ReqWr"/>
        <event value="0x0000000100403087" name="DFCS6Umc6ReqRd"/>
        <event value="0x0000000100400887" name="DFCS6Umc6ReqWr"/>
        <event value="0x00000001004030C7" name="DFCS7Umc7ReqRd"/>
        <event value="0x00000001004008C7" name="DFCS7Umc7ReqWr"/>

但我无法在AMD PPR文档中找到这些特定事件,仅找到最接近的NPS1节点(die)上所有通道的合计DRAM字节数计算公式:

(DfEvent[0x0000000000403807] + DfEvent[0x0000000000403847] + DfEvent[0x0000000000403887] + DfEvent[0x00000000004038C7] + DfEvent[0x0000000100403807] + DfEvent[0x0000000100403847] + DfEvent[0x0000000100403887] + DfEvent[0x00000001004038C7]) * 64B

perf工具的异常问题

执行perf list命令能看到相关事件:

# perf list | grep dram

  ...

  nps1_die_to_dram

但使用perf stat调用该事件时直接报错:

# sudo perf stat -B -e nps1_die_to_dram ls
event syntax error: 'nps1_die_to_dram'
                     \___ Bad event name

尝试用-M选项调用同样报错:

# sudo perf stat -M nps1_die_to_dram -a ls
event syntax error: 'dram_channel_data_controller_4/metric-id=dram_channel_data_controller_4/,dram_channel_data_controller_1/metric-id=dram_channel_data_controller_1/,dram_channel_data_controller_6/metric-id=dram_channel_data_controller_6/,dram_channel_data_controller_3/metric-id=dram_channel_data_controller_3/,dram_chan..'
                     \___ Bad event or PMU

Unable to find PMU or event on a PMU of 'dram_channel_data_controller_4'

Initial error:
event syntax error: 'dram_channel_data_controller_4/metric-id=dram_channel_data_controller_4/,dram_channel_data_controller_1/metric-id=dram_channel_data_controller_1/,dram_channel_data_controller_6/metric-id=dram_channel_data_controller_6/,dram_channel_data_controller_3/metric-id=dram_channel_data_controller_3/,dram_chan..'
                     \___ Cannot find PMU `dram_channel_data_controller_4'. Missing kernel support?

疑问

  • 为什么perf工具无法正常调用nps1_die_to_dram事件?
  • 有没有办法确定AMDuProfPcm是如何计算各内存通道带宽的?

内容的提问来源于stack exchange,提问作者smz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:35:01