From f249be549850f1cc294502f136d03dc6b875182e Mon Sep 17 00:00:00 2001 From: Andrew Vu Date: Sat, 31 Oct 2026 15:41:36 -0500 Subject: [PATCH] Correlation: count WRITE_ALLOCATED and local-memory writes in L2 write stats --- util/job_launching/stats/example_stats.yml | 6 ++++++ util/plotting/correl_mappings.py | 20 ++++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/util/job_launching/stats/example_stats.yml b/util/job_launching/stats/example_stats.yml index dd33e178c1..ad7a6926ab 100644 --- a/util/job_launching/stats/example_stats.yml +++ b/util/job_launching/stats/example_stats.yml @@ -14,11 +14,17 @@ collect_aggregate: - '\s+L2_cache_stats_breakdown\[GLOBAL_ACC_R\]\[HIT\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[GLOBAL_ACC_R\]\[TOTAL_ACCESS\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)' + - '\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[CHIPLET_ACC_R\]\[HIT\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[CHIPLET_ACC_R\]\[TOTAL_ACCESS\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[CHIPLET_ACC_W\]\[HIT\]\s*=\s*(.*)' - '\s+L2_cache_stats_breakdown\[CHIPLET_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)' + # LOCAL_ACC_W: TOTAL_ACCESS is only printed when non-zero; HIT/MISS/SECTOR_MISS always are + - '\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[HIT\]\s*=\s*(.*)' + - '\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[MISS\]\s*=\s*(.*)' + - '\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[SECTOR_MISS\]\s*=\s*(.*)' + - '\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)' - '\s+Total_core_cache_stats_breakdown\[GLOBAL_ACC_R\]\[TOTAL_ACCESS\]\s*=\s*(.*)' - '\s+Total_core_cache_stats_breakdown\[GLOBAL_ACC_R\]\[HIT\]\s*=\s*(.*)' - '\s+Total_core_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)' diff --git a/util/plotting/correl_mappings.py b/util/plotting/correl_mappings.py index 0825f7f1de..74ee4a2b65 100644 --- a/util/plotting/correl_mappings.py +++ b/util/plotting/correl_mappings.py @@ -408,7 +408,10 @@ plotfile="l2-write-transactions", hw_eval='np.average(hw["lts__t_sectors_srcunit_tex_op_write.sum"]) + np.average(hw["lts__t_sectors_srcunit_tex_op_red.sum"])', hw_error=None, - sim_eval='float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)"])', + sim_eval='float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[MISS\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[SECTOR_MISS\]\s*=\s*(.*)"])', hw_name="all", drophwnumbelow=0, plottype="log", @@ -419,7 +422,10 @@ plotfile="l2-write-hits", hw_eval='np.average(hw["lts__t_sectors_srcunit_tex_op_write_lookup_hit.sum"]) + np.average(hw["lts__t_sectors_srcunit_tex_op_red_lookup_hit.sum"])', hw_error=None, - sim_eval='float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])', + sim_eval='float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)"])', hw_name="all", drophwnumbelow=0, plottype="log", @@ -453,8 +459,14 @@ plotfile="l2-write-hitrate", hw_eval='np.average(hw["lts__t_sector_op_write_hit_rate.pct"])', hw_error=None, - sim_eval='100*float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])/' - + 'float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)"])', + sim_eval='100*(float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[WRITE_ALLOCATED\]\s*=\s*(.*)"]))/' + + '(float(sim["\s+L2_cache_stats_breakdown\[GLOBAL_ACC_W\]\[TOTAL_ACCESS\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[HIT\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[MISS\]\s*=\s*(.*)"])' + + ' + float(sim["\s+L2_cache_stats_breakdown\[LOCAL_ACC_W\]\[SECTOR_MISS\]\s*=\s*(.*)"]))', hw_name="all", drophwnumbelow=0, plottype="linear",