diff --git a/Makefile b/Makefile index d5d86da..0b586dc 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ build-public/postprocess: --add-data "./events/metric_skx_clx.json:." \ --add-data "./events/metric_bdx.json:." \ --add-data "./events/metric_icx.json:." \ - --add-data "./events/metric_spr.json:." \ + --add-data "./events/metric_spr_emr.json:." \ --add-data "./events/metric_srf.json:." \ --add-data "./src/base.html:." \ --runtime-tmpdir . \ diff --git a/_version.txt b/_version.txt index 3336003..e05cb33 100644 --- a/_version.txt +++ b/_version.txt @@ -1 +1 @@ -1.3.7 +1.3.8 diff --git a/events/metric_spr.json b/events/metric_spr_emr.json similarity index 99% rename from events/metric_spr.json rename to events/metric_spr_emr.json index 76e803e..73c7a53 100644 --- a/events/metric_spr.json +++ b/events/metric_spr_emr.json @@ -342,6 +342,10 @@ "name": "metric_TMA_......Ports_Utilized_0(%)", "expression": "100 * ( [EXE_ACTIVITY.3_PORTS_UTIL:u0x80] / ( [cpu-cycles] ) + ( [RESOURCE_STALLS.SCOREBOARD] / ( [cpu-cycles] ) ) * ( [CYCLE_ACTIVITY.STALLS_TOTAL] - [EXE_ACTIVITY.BOUND_ON_LOADS] ) / ( [cpu-cycles] ) )" }, + { + "name": "metric_TMA_........AMX_Busy(%)", + "expression": "100 * ( [EXE.AMX_BUSY] / ( [CPU_CLK_UNHALTED.DISTRIBUTED] ) )" + }, { "name": "metric_TMA_......Ports_Utilized_1(%)", "expression": "100 * ( [EXE_ACTIVITY.1_PORTS_UTIL] / ( [cpu-cycles] ) )" @@ -384,4 +388,4 @@ "expression": "(1 - [CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE] / [CPU_CLK_UNHALTED.REF_DISTRIBUTED]) if [SOCKET_COUNT] > 1 else 0", "origin": "perfspect" } -] \ No newline at end of file +] diff --git a/events/spr.txt b/events/spr_emr.txt similarity index 98% rename from events/spr.txt rename to events/spr_emr.txt index 92efcdb..bef73ea 100644 --- a/events/spr.txt +++ b/events/spr_emr.txt @@ -105,6 +105,8 @@ cpu/event=0x79,umask=0x04,cmask=0x01,period=2000003,name='IDQ.MITE_CYCLES_ANY'/, cpu/event=0x79,umask=0x04,cmask=0x06,period=2000003,name='IDQ.MITE_CYCLES_OK'/, cpu/event=0x79,umask=0x08,cmask=0x01,period=2000003,name='IDQ.DSB_CYCLES_ANY'/, cpu/event=0x79,umask=0x08,cmask=0x06,period=2000003,name='IDQ.DSB_CYCLES_OK'/, +cpu/event=0xec,umask=0x02,period=2000003,name='CPU_CLK_UNHALTED.DISTRIBUTED'/, +cpu/event=0xb7,umask=0x02,period=2000003,name='EXE.AMX_BUSY'/, cpu-cycles, ref-cycles, instructions; @@ -183,4 +185,4 @@ imc/event=0x05,umask=0xf0,name='UNC_M_CAS_COUNT.WR'/; #power power/energy-pkg/, -power/energy-ram/; \ No newline at end of file +power/energy-ram/; diff --git a/perf-collect.py b/perf-collect.py index 07664d8..e3d95cb 100644 --- a/perf-collect.py +++ b/perf-collect.py @@ -334,11 +334,8 @@ def validate_file(fname): eventfile = "clx_skx.txt" elif arch == "icelake": eventfile = "icx.txt" - elif arch == "sapphirerapids": - eventfile = "spr.txt" - elif arch == "emeraldrapids": - eventfile = "spr.txt" - have_uncore = False + elif arch == "sapphirerapids" or arch == "emeraldrapids": + eventfile = "spr_emr.txt" elif arch == "sierraforest": eventfile = "srf.txt" diff --git a/perf-collect.spec b/perf-collect.spec index b481c68..5f86876 100644 --- a/perf-collect.spec +++ b/perf-collect.spec @@ -7,7 +7,7 @@ block_cipher = None a = Analysis( ['perf-collect.py'], pathex=[], - datas=[('./src/libtsc.so', '.'), ('./events/bdx.txt', '.'), ('./events/clx_skx.txt', '.'), ('./events/icx.txt', '.'), ('./events/spr.txt', '.'), ('./events/srf.txt', '.')], + datas=[('./src/libtsc.so', '.'), ('./events/bdx.txt', '.'), ('./events/clx_skx.txt', '.'), ('./events/icx.txt', '.'), ('./events/spr_emr.txt', '.'), ('./events/srf.txt', '.')], hiddenimports=[], hookspath=[], hooksconfig={}, diff --git a/perf-postprocess.py b/perf-postprocess.py index 490005b..76f61c9 100644 --- a/perf-postprocess.py +++ b/perf-postprocess.py @@ -407,7 +407,7 @@ def get_metric_file_name(microarchitecture): elif microarchitecture == "icelake": metric_file = "metric_icx.json" elif microarchitecture == "sapphirerapids" or microarchitecture == "emeraldrapids": - metric_file = "metric_spr.json" + metric_file = "metric_spr_emr.json" elif microarchitecture == "sierraforest": metric_file = "metric_srf.json" else: