From f8fa25ee36a14a1234d2588dfa9bdecdede2f9df Mon Sep 17 00:00:00 2001 From: Ed Baker Date: Mon, 8 Jun 2026 15:01:09 -0700 Subject: [PATCH 1/5] EMR: Release metric updates This commit releases EMR metric updates. --- EMR/metrics/emeraldrapids_metrics.json | 943 ++++++++++++------------- mapfile.csv | 2 +- 2 files changed, 455 insertions(+), 490 deletions(-) diff --git a/EMR/metrics/emeraldrapids_metrics.json b/EMR/metrics/emeraldrapids_metrics.json index e94d344d..84031d9a 100644 --- a/EMR/metrics/emeraldrapids_metrics.json +++ b/EMR/metrics/emeraldrapids_metrics.json @@ -1,11 +1,11 @@ { "Header": { - "Copyright": "Copyright (c) 2001 - 2025 Intel Corporation. All rights reserved.", + "Copyright": "Copyright (c) 2001 - 2026 Intel Corporation. All rights reserved.", "Info": "Performance Monitoring Metrics for 5th Generation Intel(R) Xeon(R) Processor Scalable Family0", - "DatePublished": "09/12/2025", - "Version": "1.2", + "DatePublished": "06/02/2026", + "Version": "1.3", "Legend": "", - "TmaVersion": "5.1", + "TmaVersion": "5.2", "TmaFlavor": "Full" }, "Metrics": [ @@ -150,7 +150,7 @@ "MetricName": "l1d_demand_data_read_hits_per_instr", "LegacyName": "metric_L1D demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -194,7 +194,7 @@ "MetricName": "l2_demand_data_read_hits_per_instr", "LegacyName": "metric_L2 demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -1540,36 +1540,20 @@ "Alias": "a_g" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a_i" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a_j" }, - { - "Name": "MEM_INST_RETIRED.ALL_STORES", - "Alias": "a_k" - }, - { - "Name": "L2_RQSTS.RFO_HIT", - "Alias": "a_l" - }, - { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", - "Alias": "a_m" - }, { "Name": "L1D_PEND_MISS.PENDING", - "Alias": "a_n" + "Alias": "a_k" }, { "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", - "Alias": "a_o" - }, - { - "Name": "LD_BLOCKS.NO_SR", - "Alias": "a_p" + "Alias": "a_l" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -1612,7 +1596,7 @@ "Alias": "k" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "l" }, { @@ -1678,8 +1662,8 @@ "Alias": "q" } ], - "Formula": "( 100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( s * ( t / ( t + u ) ) ) + ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( v ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y + s * ( 1 - ( t / ( t + u ) ) ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( 1 + ( w / x ) / 2 ) ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_a / ( g ) ) / ( ( min( ( 7 ) * a_b + a_c , max( a_d - a_e , 0 ) ) / ( g ) ) + ( 13 * a_f / ( g ) ) + ( min( 2 * ( a_g - w - x ) * dependentloadsweight / 100 , max( a_d - a_e , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_i - a_j ) + ( a_i / a_k ) * ( ( 10 ) * a_l + ( min( g , a_m ) ) ) ) / ( g ) ) + ( ( a_n / a_o ) * a_p / ( g ) ) + ( a_a / ( g ) ) ) ) ) ) )", - "BaseFormula": "( 100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * hbm_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) ) )", + "Formula": "( 100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( s * ( t / ( t + u ) ) ) + ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( v ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y + s * ( 1 - ( t / ( t + u ) ) ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( 1 + ( w / x ) / 2 ) ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_a / ( g ) ) / ( ( min( ( 7 ) * a_b + a_c , max( a_d - a_e , 0 ) ) / ( g ) ) + ( 13 * a_f / ( g ) ) + ( min( 2 * ( a_g - w - x ) * dependentloadsweight / 100 , max( a_d - a_e , 0 ) ) / ( g ) ) + ( a_i / ( g ) ) + ( a_j * ( a_k / a_l ) / ( g ) ) + ( a_a / ( g ) ) ) ) ) ) )", + "BaseFormula": "( 100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * hbm_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -1733,72 +1717,68 @@ "Alias": "a_g" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a_h" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a_i" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "a_j" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "a_k" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "L1D_PEND_MISS.FB_FULL", "Alias": "a_l" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_INST_RETIRED.SPLIT_STORES", "Alias": "a_m" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", "Alias": "a_n" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "a_o" }, { - "Name": "L1D_PEND_MISS.FB_FULL", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "a_p" }, { - "Name": "MEM_INST_RETIRED.SPLIT_STORES", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "a_q" }, { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "a_r" }, - { - "Name": "MEM_STORE_RETIRED.L2_HIT", - "Alias": "a_s" - }, { "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", - "Alias": "a_t" + "Alias": "a_s" }, { "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", - "Alias": "a_u" + "Alias": "a_t" }, { "Name": "OCR.STREAMING_WR.ANY_RESPONSE", - "Alias": "a_v" + "Alias": "a_u" }, { "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", - "Alias": "a_w" + "Alias": "a_v" }, { "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", - "Alias": "a_x" + "Alias": "a_w" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -1845,7 +1825,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "m" }, { @@ -1915,8 +1895,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( t * ( u / ( u + v ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( x + t * ( 1 - ( u / ( u + v ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) + ( ( y + z ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( a_m / a_n ) * a_o / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_q / ( a_r if smt_on else ( g ) ) ) / ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_u ) / ( g ) ) + ( a_q / ( a_r if smt_on else ( g ) ) ) + ( 9 * a_v / ( g ) ) + ( ( ( 7 ) * a_w + a_x ) / ( a_r if smt_on else ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) / ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_u ) / ( g ) ) + ( a_q / ( a_r if smt_on else ( g ) ) ) + ( 9 * a_v / ( g ) ) + ( ( ( 7 ) * a_w + a_x ) / ( a_r if smt_on else ( g ) ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * hbm_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( t * ( u / ( u + v ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( x + t * ( 1 - ( u / ( u + v ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) + ( ( y + z ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_h / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_i * ( a_j / a_k ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_m / ( a_n if smt_on else ( g ) ) ) / ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_s + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t ) / ( g ) ) + ( a_m / ( a_n if smt_on else ( g ) ) ) + ( 9 * a_u / ( g ) ) + ( ( ( 7 ) * a_v + a_w ) / ( a_n if smt_on else ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) / ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_s + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t ) / ( g ) ) + ( a_m / ( a_n if smt_on else ( g ) ) ) + ( 9 * a_u / ( g ) ) + ( ( ( 7 ) * a_v + a_w ) / ( a_n if smt_on else ( g ) ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * hbm_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -1946,52 +1926,48 @@ "Alias": "a" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", "Alias": "a_a" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", "Alias": "a_b" }, { - "Name": "L1D_PEND_MISS.FB_FULL", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "a_c" }, { - "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "a_d" }, { - "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "a_e" }, { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "a_f" }, - { - "Name": "MEM_STORE_RETIRED.L2_HIT", - "Alias": "a_g" - }, { "Name": "CPU_CLK_UNHALTED.REF_TSC", - "Alias": "a_h" + "Alias": "a_g" }, { "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", - "Alias": "a_k" + "Alias": "a_j" }, { "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", - "Alias": "a_l" + "Alias": "a_k" }, { "Name": "MEM_INST_RETIRED.SPLIT_STORES", - "Alias": "a_m" + "Alias": "a_l" }, { "Name": "OCR.STREAMING_WR.ANY_RESPONSE", - "Alias": "a_n" + "Alias": "a_m" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -2066,34 +2042,34 @@ "Alias": "s" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "u" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "v" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "w" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "x" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "L1D_PEND_MISS.FB_FULL", "Alias": "y" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", "Alias": "z" } ], "Constants": [ { "Name": "SYSTEM_TSC_FREQ", - "Alias": "a_i" + "Alias": "a_h" }, { "Name": "20", @@ -2112,8 +2088,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / max( ( a / ( b + c + d + e ) ) , ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) ) * ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) / max( ( max( ( f - g ) / ( h ) , 0 ) ) , ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) + ( 13 * p / ( h ) ) + ( min( 2 * ( q - r - s ) * dependentloadsweight / 100 , max( n - o , 0 ) ) / ( h ) ) + ( ( 16 * max( 0 , u - v ) + ( u / w ) * ( ( 10 ) * x + ( min( h , y ) ) ) ) / ( h ) ) + ( ( z / a_a ) * a_b / ( h ) ) + ( a_c / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( ( 7 ) * a_d + a_e ) / ( a_f if smt_on else ( h ) ) ) / ( ( ( ( a_g * ( 10 ) * ( 1 - ( u / w ) ) ) + ( 1 - ( u / w ) ) * ( min( h , y ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_h ) * a_i / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k + ( 81 * ( ( ( h ) / a_h ) * a_i / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_l ) / ( h ) ) + ( a_m / ( a_f if smt_on else ( h ) ) ) + ( 9 * a_n / ( h ) ) + ( ( ( 7 ) * a_d + a_e ) / ( a_f if smt_on else ( h ) ) ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / max( ( a / ( b + c + d + e ) ) , ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) ) * ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) / max( ( max( ( f - g ) / ( h ) , 0 ) ) , ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) + ( 13 * p / ( h ) ) + ( min( 2 * ( q - r - s ) * dependentloadsweight / 100 , max( n - o , 0 ) ) / ( h ) ) + ( u / ( h ) ) + ( v * ( w / x ) / ( h ) ) + ( y / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( ( 7 ) * z + a_a ) / ( a_b if smt_on else ( h ) ) ) / ( ( ( ( a_c * ( 10 ) * ( 1 - ( a_d / a_e ) ) ) + ( 1 - ( a_d / a_e ) ) * ( min( h , a_f ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_g ) * a_h / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_j + ( 81 * ( ( ( h ) / a_g ) * a_h / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k ) / ( h ) ) + ( a_l / ( a_b if smt_on else ( h ) ) ) + ( 9 * a_m / ( h ) ) + ( ( ( 7 ) * z + a_a ) / ( a_b if smt_on else ( h ) ) ) ) ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2267,7 +2243,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "m" }, { @@ -2334,7 +2310,7 @@ } ], "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) * ( ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * q + ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * r ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) / ( ( ( ( 109 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * u * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 190 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * v * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * q + ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * r ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) ) + ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w * ( x / ( x + y ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_a + w * ( 1 - ( x / ( x + y ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w * ( x / ( x + y ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_a + w * ( 1 - ( x / ( x + y ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_b * ( 1 + ( s / t ) / 2 ) ) / ( g ) ) + ( ( a_c + a_d ) / ( g ) ) ) + ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_e + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_f ) / ( g ) ) / ( ( ( ( ( a_g * ( 10 ) * ( 1 - ( a_h / a_i ) ) ) + ( 1 - ( a_h / a_i ) ) * ( min( g , a_j ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_e + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_f ) / ( g ) ) + ( a_k / ( a_l if smt_on else ( g ) ) ) + ( 9 * a_m / ( g ) ) + ( ( ( 7 ) * a_n + a_o ) / ( a_l if smt_on else ( g ) ) ) ) - ( ( ( a_g * ( 10 ) * ( 1 - ( a_h / a_i ) ) ) + ( 1 - ( a_h / a_i ) ) * ( min( g , a_j ) ) ) / ( g ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - a_s / a_t ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - a_s / a_t ) , 0.0001 ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2698,7 +2674,7 @@ "Alias": "a_f" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "a_g" }, { @@ -2782,152 +2758,148 @@ "Alias": "b_b" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "b_d" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "b_e" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "b_f" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "b_g" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_STORES", "Alias": "b_h" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "b_i" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "b_j" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "b_k" }, { - "Name": "MEM_INST_RETIRED.SPLIT_STORES", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "b_l" }, { - "Name": "MEM_STORE_RETIRED.L2_HIT", + "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", "Alias": "b_m" }, { - "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", + "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", "Alias": "b_n" }, { - "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", + "Name": "OCR.STREAMING_WR.ANY_RESPONSE", "Alias": "b_o" }, { - "Name": "OCR.STREAMING_WR.ANY_RESPONSE", + "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", "Alias": "b_p" }, { - "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", + "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", "Alias": "b_q" }, { - "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", "Alias": "b_r" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD", "Alias": "b_s" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD", + "Name": "MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM", "Alias": "b_t" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", "Alias": "b_u" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", + "Name": "MACHINE_CLEARS.MEMORY_ORDERING", "Alias": "b_v" }, { - "Name": "MACHINE_CLEARS.MEMORY_ORDERING", + "Name": "ARITH.DIV_ACTIVE", "Alias": "b_w" }, { - "Name": "ARITH.DIV_ACTIVE", + "Name": "RESOURCE_STALLS.SCOREBOARD", "Alias": "b_x" }, { - "Name": "RESOURCE_STALLS.SCOREBOARD", + "Name": "CPU_CLK_UNHALTED.C02", "Alias": "b_y" }, { - "Name": "CPU_CLK_UNHALTED.C02", + "Name": "EXE.AMX_BUSY", "Alias": "b_z" }, { "Name": "PERF_METRICS.BAD_SPECULATION", "Alias": "c" }, - { - "Name": "EXE.AMX_BUSY", - "Alias": "c_a" - }, { "Name": "EXE_ACTIVITY.EXE_BOUND_0_PORTS", - "Alias": "c_b" + "Alias": "c_a" }, { "Name": "RS.EMPTY_RESOURCE", - "Alias": "c_c" + "Alias": "c_b" }, { "Name": "CYCLE_ACTIVITY.STALLS_TOTAL", - "Alias": "c_d" + "Alias": "c_c" }, { "Name": "EXE_ACTIVITY.1_PORTS_UTIL", - "Alias": "c_e" + "Alias": "c_d" }, { "Name": "EXE_ACTIVITY.2_3_PORTS_UTIL", - "Alias": "c_f" + "Alias": "c_e" }, { "Name": "UOPS_EXECUTED.CYCLES_GE_3", - "Alias": "c_g" + "Alias": "c_f" }, { "Name": "EXE_ACTIVITY.2_PORTS_UTIL", - "Alias": "c_h" + "Alias": "c_g" }, { "Name": "PERF_METRICS.HEAVY_OPERATIONS", - "Alias": "c_i" + "Alias": "c_h" }, { "Name": "ASSISTS.ANY", - "Alias": "c_j" + "Alias": "c_i" }, { "Name": "BR_INST_RETIRED.ALL_BRANCHES", - "Alias": "c_k" + "Alias": "c_j" }, { "Name": "BR_INST_RETIRED.NEAR_CALL", - "Alias": "c_l" + "Alias": "c_k" }, { "Name": "INST_RETIRED.NOP", - "Alias": "c_m" + "Alias": "c_l" }, { "Name": "PERF_METRICS.RETIRING", @@ -3044,7 +3016,7 @@ "Alias": "threads" } ], - "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_v / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( b_i / b_j ) * b_k / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_l / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / max( ( a_a / ( b + c + d + e ) ) , ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) ) * ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) / max( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) , ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) / ( ( ( ( 109 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_u * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 190 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_v * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) / ( ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) - ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_x / ( i ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_a / ( z if smt_on else ( i ) ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) * ( ( c_g / ( i ) ) / ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) + ( c_e / ( i ) ) + ( c_h / ( i ) ) + ( c_g / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( b_y / ( i ) + ( b_z / ( i ) ) ) + c_c / ( i ) * ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_i / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_j / ( g ) ) / ( r / ( g ) ) ) ) * ( c_i / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_k + 2 * c_l + c_m ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_k + 2 * c_l + c_m ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_i / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_j / ( g ) ) / ( r / ( g ) ) ) ) * ( c_i / ( b + c + d + e ) ) ) ) ) )", + "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_v / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_d / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_e * ( b_f / b_g ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_h / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / max( ( a_a / ( b + c + d + e ) ) , ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) ) * ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) / max( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) , ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_r + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) / ( ( ( ( 109 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 190 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_u * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_r + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) / ( ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) - ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_w / ( i ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_z / ( z if smt_on else ( i ) ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) * ( ( c_f / ( i ) ) / ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) + ( c_d / ( i ) ) + ( c_g / ( i ) ) + ( c_f / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( b_x / ( i ) + ( b_y / ( i ) ) ) + c_b / ( i ) * ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_h / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_i / ( g ) ) / ( r / ( g ) ) ) ) * ( c_h / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_j + 2 * c_k + c_l ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_j + 2 * c_k + c_l ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_h / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_i / ( g ) ) / ( r / ( g ) ) ) ) * ( c_h / ( b + c + d + e ) ) ) ) ) )", "BaseFormula": "100 - ( tma_bottleneck_big_code + tma_bottleneck_instruction_fetch_bw + tma_bottleneck_mispredictions + tma_bottleneck_data_cache_memory_bandwidth + tma_bottleneck_data_cache_memory_latency + tma_bottleneck_memory_data_tlbs + tma_bottleneck_memory_synchronization + tma_bottleneck_compute_bound_est + tma_bottleneck_irregular_overhead + tma_bottleneck_branching_overhead + tma_bottleneck_useful_work )", "Category": "TMA", "CountDomain": "Scaled_Slots", @@ -3284,8 +3256,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3329,8 +3301,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3382,8 +3354,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Hit(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Hit(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3431,8 +3403,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Miss(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Miss(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3476,8 +3448,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3529,8 +3501,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Hit(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Hit(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3578,8 +3550,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3639,8 +3611,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_4K(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3700,8 +3672,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_2M(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3749,8 +3721,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3826,8 +3798,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Mispredicts_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Mispredicts_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3903,8 +3875,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Clears_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Clears_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3952,8 +3924,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Unknown_Branches(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Unknown_Branches(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4005,8 +3977,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....MS_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....MS_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC, $issueMS, $issueMV, $issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4050,8 +4022,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....LCP(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....LCP(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4095,8 +4067,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....DSB_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....DSB_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4210,8 +4182,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4272,8 +4244,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_......Decoder0_Alone(%) > 10 & metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_......Decoder0_Alone(%) > 10 ) & ( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4330,8 +4302,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 15 & b > 20", - "BaseFormula": "metric_TMA_....DSB(%) > 15 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 15 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....DSB(%) > 15 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4396,8 +4368,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 5 & b > 20", - "BaseFormula": "metric_TMA_....MS(%) > 5 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MS(%) > 5 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4501,8 +4473,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4570,8 +4542,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4631,8 +4603,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueMC, $issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4704,8 +4676,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Nukes(%) > 5 & metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Nukes(%) > 5 ) & ( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4801,8 +4773,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20", - "BaseFormula": "metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4850,8 +4822,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1, $issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4911,8 +4883,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4976,8 +4948,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5029,8 +5001,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5098,8 +5070,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_4K(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5167,8 +5139,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_2M(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5236,8 +5208,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_1G(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5285,8 +5257,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Fwd_Blk(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Fwd_Blk(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5355,8 +5327,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L1_Latency_Dependency(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L1_Latency_Dependency(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5372,33 +5344,17 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a" }, - { - "Name": "L2_RQSTS.ALL_RFO", - "Alias": "b" - }, - { - "Name": "MEM_INST_RETIRED.ALL_STORES", - "Alias": "c" - }, - { - "Name": "L2_RQSTS.RFO_HIT", - "Alias": "d" - }, { "Name": "CPU_CLK_UNHALTED.THREAD", - "Alias": "e" - }, - { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", - "Alias": "f" + "Alias": "b" } ], "Constants": [], - "Formula": "100 * ( ( 16 * max( 0 , a - b ) + ( a / c ) * ( ( 10 ) * d + ( min( e , f ) ) ) ) / ( e ) )", - "BaseFormula": "( 16 * max( 0 , mem_inst_retired.lock_loads - l2_rqsts.all_rfo ) + ( mem_inst_retired.lock_loads / mem_inst_retired.all_stores ) * ( ( 10 ) * l2_rqsts.rfo_hit + ( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.cycles_with_demand_rfo ) ) ) ) / tma_info_thread_clks", + "Formula": "100 * ( a / ( b ) )", + "BaseFormula": "lock_cycles.cache_lock_duration / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks", "Threshold": { @@ -5420,8 +5376,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Lock_Latency(%) > 20 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Lock_Latency(%) > 20 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5437,15 +5393,15 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "b" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "c" }, { @@ -5454,8 +5410,8 @@ } ], "Constants": [], - "Formula": "100 * ( ( a / b ) * c / ( d ) )", - "BaseFormula": "tma_info_memory_load_miss_real_latency * ld_blocks.no_sr / tma_info_thread_clks", + "Formula": "100 * ( a * ( b / c ) / ( d ) )", + "BaseFormula": "mem_inst_retired.split_loads * tma_info_memory_load_miss_real_latency / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Calculated", "Threshold": { @@ -5551,8 +5507,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5621,8 +5577,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L2_Hit_Latency(%) > 5 & metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L2_Hit_Latency(%) > 5 ) & ( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5670,8 +5626,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5752,8 +5708,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Contested_Accesses(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Contested_Accesses(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5765,7 +5721,7 @@ "LegacyName": "metric_TMA_......Data_Sharing(%)", "ParentCategory": "L3_Bound", "Level": 4, - "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", + "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to L3 data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", "UnitOfMeasure": "percent", "Events": [ { @@ -5834,8 +5790,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Data_Sharing(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Data_Sharing(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5904,8 +5860,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L3_Hit_Latency(%) > 10 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L3_Hit_Latency(%) > 10 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5957,8 +5913,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 30 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......SQ_Full(%) > 30 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 30 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......SQ_Full(%) > 30 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5966,8 +5922,8 @@ "LocateWith": "" }, { - "MetricName": "DRAM_Bound", - "LegacyName": "metric_TMA_....DRAM_Bound(%)", + "MetricName": "L3_Miss_Bound", + "LegacyName": "metric_TMA_....L3_Miss_Bound(%)", "ParentCategory": "Memory_Bound", "Level": 3, "BriefDescription": "This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.", @@ -5991,7 +5947,7 @@ "ThresholdMetrics": [ { "Alias": "a", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "b", @@ -6002,18 +5958,18 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "MemoryBound;TmaL3mem", + "MetricGroup": "MemoryBound;TmaL3mem;Offcore", "LocateWith": "MEM_LOAD_RETIRED.L3_MISS" }, { "MetricName": "MEM_Bandwidth", "LegacyName": "metric_TMA_......MEM_Bandwidth(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6023,13 +5979,13 @@ "Alias": "a" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "b" } ], "Constants": [], "Formula": "100 * ( ( min( a , b ) ) / ( a ) )", - "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.all_data_rd:c4 ) ) / tma_info_thread_clks", + "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.all_data_rd:c12 ) ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks", "Threshold": { @@ -6040,7 +5996,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6051,8 +6007,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6093,7 +6049,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6104,8 +6060,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........MBA_Stalls(%) > 10 & metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........MBA_Stalls(%) > 10 ) & ( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6115,7 +6071,7 @@ { "MetricName": "MEM_Latency", "LegacyName": "metric_TMA_......MEM_Latency(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6129,7 +6085,7 @@ "Alias": "b" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "c" } ], @@ -6146,7 +6102,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6157,8 +6113,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6220,7 +6176,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6231,8 +6187,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Local_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Local_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6294,7 +6250,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6305,8 +6261,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6372,7 +6328,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6383,8 +6339,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_Cache(%) > 5 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_Cache(%) > 5 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6428,8 +6384,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6489,8 +6445,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Latency(%) > 10 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Latency(%) > 10 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO, $issueSL, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6555,8 +6511,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......False_Sharing(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......False_Sharing(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6617,8 +6573,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Split_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Split_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSpSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6666,8 +6622,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Streaming_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Streaming_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSmSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6732,8 +6688,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6802,8 +6758,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6868,8 +6824,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6950,8 +6906,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_4K(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7032,8 +6988,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_2M(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7114,8 +7070,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_1G(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7167,8 +7123,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7212,8 +7168,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7261,8 +7217,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......FP_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......FP_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7314,8 +7270,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......INT_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......INT_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7363,8 +7319,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7412,8 +7368,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Slow_Pause(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Slow_Pause(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7461,8 +7417,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C01_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C01_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7510,8 +7466,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C02_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C02_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7559,8 +7515,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Memory_Fence(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Memory_Fence(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7617,8 +7573,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 50 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....AMX_Busy(%) > 50 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 50 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....AMX_Busy(%) > 50 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7706,8 +7662,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7771,8 +7727,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_0(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_0(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7857,8 +7813,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_1(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_1(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7906,8 +7862,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_2(%) > 15 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_2(%) > 15 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7955,8 +7911,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 40 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_3m(%) > 40 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 40 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_3m(%) > 40 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8319,8 +8275,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 70 | b > 10", - "BaseFormula": "metric_TMA_Retiring(%) > 70 | metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 70 ) | ( b > 10 )", + "BaseFormula": "( metric_TMA_Retiring(%) > 70 ) | ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8445,8 +8401,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 20 & b > 60", - "BaseFormula": "metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 20 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8506,8 +8462,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......X87_Use(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......X87_Use(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8571,8 +8527,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Scalar(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Scalar(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8636,8 +8592,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8709,8 +8665,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_128b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_128b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8782,8 +8738,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_256b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_256b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8855,8 +8811,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_512b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_512b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8928,8 +8884,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8993,8 +8949,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_128b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_128b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9062,8 +9018,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_256b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_256b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9123,8 +9079,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Memory_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Memory_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9184,8 +9140,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Fused_Instructions(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Fused_Instructions(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9249,8 +9205,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Non_Fused_Branches(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Non_Fused_Branches(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9362,8 +9318,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 30 & b > 60", - "BaseFormula": "metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 30 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9427,8 +9383,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Nop_Instructions(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Nop_Instructions(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9492,8 +9448,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Shuffles_256b(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Shuffles_256b(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9602,8 +9558,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Few_Uops_Instructions(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Few_Uops_Instructions(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9643,8 +9599,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueMC, $issueMS" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9688,8 +9644,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......Assists(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......Assists(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9848,8 +9804,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......CISC(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......CISC(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10877,7 +10833,7 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Flops;FpScalar;InsType;Server", + "MetricGroup": "Flops;FpScalar;InsType", "LocateWith": "" }, { @@ -11084,6 +11040,42 @@ "MetricGroup": "Flops;FpVector;InsType", "LocateWith": "" }, + { + "MetricName": "Info_Inst_Mix_VectorMixPKI", + "LegacyName": "metric_TMA_Info_Inst_Mix_VectorMixPKI", + "Level": 1, + "BriefDescription": "AVX preserve/restore assists per kilo instruction", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "ASSISTS.SSE_AVX_MIX", + "Alias": "a" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "b" + } + ], + "Constants": [], + "Formula": "1000 * a / b", + "BaseFormula": "1000 * assists.sse_avx_mix / inst_retired.any", + "Category": "TMA", + "CountDomain": "Inst_Metric", + "Threshold": { + "ThresholdMetrics": [ + { + "Alias": "a", + "Value": "metric_TMA_Info_Inst_Mix_VectorMixPKI" + } + ], + "Formula": "a > 0.05", + "BaseFormula": "metric_TMA_Info_Inst_Mix_VectorMixPKI > 0.05", + "ThresholdIssues": "$issueMV" + }, + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "", + "LocateWith": "" + }, { "MetricName": "Info_Inst_Mix_IpPause", "LegacyName": "metric_TMA_Info_Inst_Mix_IpPause", @@ -11439,13 +11431,17 @@ "Alias": "a" }, { - "Name": "UOPS_ISSUED.ANY", + "Name": "IDQ.MITE_UOPS", "Alias": "b" + }, + { + "Name": "IDQ.MS_UOPS", + "Alias": "c" } ], "Constants": [], - "Formula": "a / ( b )", - "BaseFormula": "idq.dsb_uops / ( uops_issued.any )", + "Formula": "a / ( a + b + c )", + "BaseFormula": "idq.dsb_uops / ( idq.dsb_uops + idq.mite_uops + idq.ms_uops )", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -11459,8 +11455,8 @@ "Value": "metric_TMA_Info_Thread_IPC" } ], - "Formula": "a < 0.7 & b / 6 > 0.35", - "BaseFormula": "metric_TMA_Info_Frontend_DSB_Coverage < 0.7 & metric_TMA_Info_Thread_IPC / 6 > 0.35", + "Formula": "( a < 0.7 ) & ( b / 6 > 0.35 )", + "BaseFormula": "( metric_TMA_Info_Frontend_DSB_Coverage < 0.7 ) & ( metric_TMA_Info_Thread_IPC / 6 > 0.35 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -12640,14 +12636,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L1MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", + "MetricName": "Info_Memory_L2MPKI", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI", "Level": 1, - "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", + "Name": "MEM_LOAD_RETIRED.L2_MISS", "Alias": "a" }, { @@ -12657,7 +12653,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12666,18 +12662,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "Mem;Backend;CacheHits", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI", + "MetricName": "Info_Memory_L3MPKI", + "LegacyName": "metric_TMA_Info_Memory_L3MPKI", "Level": 1, - "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L2_MISS", + "Name": "MEM_LOAD_RETIRED.L3_MISS", "Alias": "a" }, { @@ -12687,7 +12683,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12696,18 +12692,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem;Backend;CacheHits", + "MetricGroup": "Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", + "MetricName": "Info_Memory_FB_HPKI", + "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", + "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.MISS", + "Name": "MEM_LOAD_RETIRED.FB_HIT", "Alias": "a" }, { @@ -12717,7 +12713,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12726,18 +12722,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem;Offcore", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", + "MetricName": "Info_Memory_L1MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", + "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", "Alias": "a" }, { @@ -12747,7 +12743,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12760,14 +12756,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_RFO", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", + "MetricName": "Info_Memory_L2MPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", "Level": 1, - "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.RFO_MISS", + "Name": "L2_RQSTS.MISS", "Alias": "a" }, { @@ -12777,7 +12773,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12786,32 +12782,28 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheMisses;Offcore", + "MetricGroup": "CacheHits;Mem;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", + "MetricName": "Info_Memory_L2MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.REFERENCES", + "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", "Alias": "a" }, - { - "Name": "L2_RQSTS.MISS", - "Alias": "b" - }, { "Name": "INST_RETIRED.ANY", - "Alias": "c" + "Alias": "b" } ], "Constants": [], - "Formula": "1000 * ( a - b ) / c", - "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", + "Formula": "1000 * a / b", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12824,14 +12816,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", + "MetricName": "Info_Memory_L2MPKI_RFO", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", + "Name": "L2_RQSTS.RFO_MISS", "Alias": "a" }, { @@ -12841,7 +12833,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12850,28 +12842,32 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "CacheMisses;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L3MPKI", - "LegacyName": "metric_TMA_Info_Memory_L3MPKI", + "MetricName": "Info_Memory_L2HPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", "Level": 1, - "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L3_MISS", + "Name": "L2_RQSTS.REFERENCES", "Alias": "a" }, { - "Name": "INST_RETIRED.ANY", + "Name": "L2_RQSTS.MISS", "Alias": "b" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "c" } ], "Constants": [], - "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", + "Formula": "1000 * ( a - b ) / c", + "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12880,18 +12876,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_FB_HPKI", - "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", + "MetricName": "Info_Memory_L2HPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", "Level": 1, - "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", + "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.FB_HIT", + "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", "Alias": "a" }, { @@ -12901,7 +12897,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13783,37 +13779,6 @@ "MetricGroup": "Summary;Power", "LocateWith": "" }, - { - "MetricName": "Info_System_Uncore_Frequency", - "LegacyName": "metric_TMA_Info_System_Uncore_Frequency", - "Level": 1, - "BriefDescription": "Measured Average Uncore Frequency for the SoC [GHz]", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "UNC_CHA_CLOCKTICKS:one_unit", - "Alias": "a" - } - ], - "Constants": [ - { - "Name": "DURATIONTIMEINMILLISECONDS", - "Alias": "durationtimeinmilliseconds" - } - ], - "Formula": "( a ) / 1e9 / ( ( durationtimeinmilliseconds / 1000 ) )", - "BaseFormula": "tma_info_system_socket_clks / 1e9 / tma_info_system_time", - "Category": "TMA", - "CountDomain": "System_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "SOCKET, SYSTEM", - "MetricGroup": "SoC", - "LocateWith": "" - }, { "MetricName": "Info_System_GFLOPs", "LegacyName": "metric_TMA_Info_System_GFLOPs", @@ -13911,45 +13876,6 @@ "MetricGroup": "Power", "LocateWith": "" }, - { - "MetricName": "Info_System_SMT_2T_Utilization", - "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", - "Level": 1, - "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", - "Alias": "b" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "1 - a / b if smt_on else 0", - "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "SMT", - "LocateWith": "" - }, { "MetricName": "Info_System_Kernel_Utilization", "LegacyName": "metric_TMA_Info_System_Kernel_Utilization", @@ -14377,8 +14303,8 @@ "Value": "metric_TMA_Info_System_MUX" } ], - "Formula": "a > 1.1 | a < 0.9", - "BaseFormula": "metric_TMA_Info_System_MUX > 1.1 | metric_TMA_Info_System_MUX < 0.9", + "Formula": "( a > 1.1 ) | ( a < 0.9 )", + "BaseFormula": "( metric_TMA_Info_System_MUX > 1.1 ) | ( metric_TMA_Info_System_MUX < 0.9 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -14447,6 +14373,45 @@ "MetricGroup": "Branches;OS", "LocateWith": "" }, + { + "MetricName": "Info_System_SMT_2T_Utilization", + "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", + "Level": 1, + "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", + "Alias": "a" + }, + { + "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", + "Alias": "b" + } + ], + "Constants": [ + { + "Name": "HYPERTHREADING_ON", + "Alias": "smt_on" + }, + { + "Name": "THREADS_PER_CORE", + "Alias": "threads" + } + ], + "Formula": "1 - a / b if smt_on else 0", + "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", + "Category": "TMA", + "CountDomain": "Core_Metric", + "Threshold": { + "Formula": "", + "BaseFormula": "", + "ThresholdIssues": "" + }, + "ResolutionLevels": "CORE, SOCKET, SYSTEM", + "MetricGroup": "SMT", + "LocateWith": "" + }, { "MetricName": "Info_Memory_SoC_R2C_Offcore_BW", "LegacyName": "metric_TMA_Info_Memory_SoC_R2C_Offcore_BW", diff --git a/mapfile.csv b/mapfile.csv index 8af82f92..c9f3a842 100644 --- a/mapfile.csv +++ b/mapfile.csv @@ -146,7 +146,7 @@ GenuineIntel-6-8F,V1.2,/SPR/metrics/sapphirerapids_metrics.json,metrics,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_core.json,core,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_uncore.json,uncore,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-CF,V1.2,/EMR/metrics/emeraldrapids_metrics.json,metrics,,, +GenuineIntel-6-CF,V1.3,/EMR/metrics/emeraldrapids_metrics.json,metrics,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_core.json,core,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_uncore.json,uncore,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_uncore_experimental.json,uncore experimental,,, From cd45179dd4ebec5b26f577ac3580baf3b00ebf32 Mon Sep 17 00:00:00 2001 From: Ed Baker Date: Mon, 8 Jun 2026 15:01:10 -0700 Subject: [PATCH 2/5] GNR: Release metric updates This commit releases GNR metric updates. --- GNR/metrics/graniterapids_metrics.json | 961 ++++++++++++++----------- mapfile.csv | 4 +- 2 files changed, 525 insertions(+), 440 deletions(-) diff --git a/GNR/metrics/graniterapids_metrics.json b/GNR/metrics/graniterapids_metrics.json index 87559baa..3d306dfd 100644 --- a/GNR/metrics/graniterapids_metrics.json +++ b/GNR/metrics/graniterapids_metrics.json @@ -1,11 +1,11 @@ { "Header": { - "Copyright": "Copyright (c) 2001 - 2025 Intel Corporation. All rights reserved.", + "Copyright": "Copyright (c) 2001 - 2026 Intel Corporation. All rights reserved.", "Info": "Performance Monitoring Metrics for Intel(R) Xeon(R) 6 Processor with P-cores0", - "DatePublished": "02/23/2026", - "Version": "1.2", + "DatePublished": "06/02/2026", + "Version": "1.3", "Legend": "", - "TmaVersion": "5.1", + "TmaVersion": "5.2", "TmaFlavor": "Full" }, "Metrics": [ @@ -351,7 +351,7 @@ "MetricName": "l1d_demand_data_read_hits_per_instr", "LegacyName": "metric_L1D demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -395,7 +395,7 @@ "MetricName": "l2_demand_data_read_hits_per_instr", "LegacyName": "metric_L2 demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -1003,7 +1003,7 @@ "MetricName": "numa_percent_all_reads_to_local_cluster_memory", "LegacyName": "metric_NUMA % all reads to local cluster memory", "Level": 1, - "BriefDescription": "All reads to the local sub-numa cluster memory as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "BriefDescription": "All reads to the local sub-numa cluster memory as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches.", "UnitOfMeasure": "percent", "Events": [ { @@ -1025,7 +1025,7 @@ "MetricName": "numa_percent_all_reads_to_remote_cluster_cache", "LegacyName": "metric_NUMA % all reads to remote cluster cache", "Level": 1, - "BriefDescription": "All reads to a remote sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "BriefDescription": "All reads to a remote sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches.", "UnitOfMeasure": "percent", "Events": [ { @@ -1051,7 +1051,7 @@ "MetricName": "numa_percent_all_reads_to_local_cluster_cache", "LegacyName": "metric_NUMA % all reads to local cluster cache", "Level": 1, - "BriefDescription": "All reads to the local sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "BriefDescription": "All reads to the local sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches.", "UnitOfMeasure": "percent", "Events": [ { @@ -1110,13 +1110,13 @@ "BriefDescription": "The number of times per second that ownership of a cacheline was stolen from the integrated IO controller before it was able to write back the modified line.", "UnitOfMeasure": "per second", "Events": [ - { - "Name": "UNC_I_MISC1.SEC_RCVD_INVLD", - "Alias": "b" - }, { "Name": "UNC_I_MISC1.LOST_FWD", "Alias": "a" + }, + { + "Name": "UNC_I_MISC1.SEC_RCVD_INVLD", + "Alias": "b" } ], "Constants": [], @@ -1822,7 +1822,7 @@ "Alias": "k" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "l" }, { @@ -1888,8 +1888,8 @@ "Alias": "s" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( min( ( p * q ) , p * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( q > = 0 ) else ( p * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( u * v ) , u * ( 81 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( v > = 0 ) else ( u * ( 81 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( w / ( w + x ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( ( min( ( a_a * a_b ) , a_a * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_b > = 0 ) else ( a_a * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( u * v ) , u * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( v > = 0 ) else ( u * ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( w / ( w + x ) ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( min( ( a_c * a_d ) , a_c * ( 37 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( 37 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_e / ( g ) ) / ( ( ( min( ( a_f * a_g ) , a_f * ( 7 ) ) if ( a_g > = 0 ) else ( a_f * ( 7 ) ) ) / ( g ) + ( a_h / ( g ) ) ) + ( 13 * a_i / ( g ) ) + ( min( 2 * ( a_j - y - z ) * dependentloadsweight / 100 , max( a_l - a_m , 0 ) ) / ( g ) ) + ( ( a_n * a_o ) / ( g ) ) + ( ( min( ( a_p * a_q ) , a_p * ( a_r / a_s ) ) if ( a_q > = 0 ) else ( a_p * ( a_r / a_s ) ) ) / ( g ) ) + ( a_e / ( g ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( min( ( p * q ) , p * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( q > = 0 ) else ( p * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( u * v ) , u * ( ( 81 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( v > = 0 ) else ( u * ( ( 81 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( w / ( w + x ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( ( min( ( a_a * a_b ) , a_a * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_b > = 0 ) else ( a_a * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( u * v ) , u * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( v > = 0 ) else ( u * ( ( 79 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( w / ( w + x ) ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( min( ( a_c * a_d ) , a_c * ( ( 37 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 37 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / r ) * s / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( y / z ) / 2 ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_e / ( g ) ) / ( ( ( min( ( a_f * a_g ) , a_f * ( ( 7 ) ) ) if ( a_g > = 0 ) else ( a_f * ( ( 7 ) ) ) ) / ( g ) + ( a_h / ( g ) ) ) + ( 13 * a_i / ( g ) ) + ( min( 2 * ( a_j - y - z ) * dependentloadsweight / 100 , max( a_l - a_m , 0 ) ) / ( g ) ) + ( ( a_n * a_o ) / ( g ) ) + ( ( min( ( a_p * a_q ) , a_p * ( ( a_r / a_s ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( a_r / a_s ) ) ) ) / ( g ) ) + ( a_e / ( g ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2083,7 +2083,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "m" }, { @@ -2153,8 +2153,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( n * o ) , n * ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( o > = 0 ) else ( n * ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) / ( ( ( ( min( ( u * v ) , u * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( v > = 0 ) else ( u * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( w * x ) , w * ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( x > = 0 ) else ( w * ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( y / ( y + z ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( min( ( a_a * a_b ) , a_a * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_b > = 0 ) else ( a_a * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( w * x ) , w * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( x > = 0 ) else ( w * ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( y / ( y + z ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( min( ( n * o ) , n * ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( o > = 0 ) else ( n * ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( a_c + a_d ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( 7 ) ) if ( a_j > = 0 ) else ( a_i * ( 7 ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( a_q / a_r ) ) if ( a_p > = 0 ) else ( a_o * ( a_q / a_r ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( a_m * a_n ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( 7 ) ) if ( a_j > = 0 ) else ( a_i * ( 7 ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( a_q / a_r ) ) if ( a_p > = 0 ) else ( a_o * ( a_q / a_r ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( a_o * a_p ) , a_o * ( a_q / a_r ) ) if ( a_p > = 0 ) else ( a_o * ( a_q / a_r ) ) ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( 7 ) ) if ( a_j > = 0 ) else ( a_i * ( 7 ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( a_q / a_r ) ) if ( a_p > = 0 ) else ( a_o * ( a_q / a_r ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( a_t * a_u ) , a_t * 1 ) if ( a_u > = 0 ) else ( a_t * 1 ) ) / ( g ) ) / ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_y + ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z ) / ( g ) ) + ( ( min( ( a_t * a_u ) , a_t * 1 ) if ( a_u > = 0 ) else ( a_t * 1 ) ) / ( g ) ) + ( 9 * b_a / ( g ) ) + ( ( min( ( b_b * b_c ) , b_b * ( 7 ) ) if ( b_c > = 0 ) else ( b_b * ( 7 ) ) ) / ( g ) + ( b_d / ( b_e if smt_on else ( g ) ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) / ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_y + ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z ) / ( g ) ) + ( ( min( ( a_t * a_u ) , a_t * 1 ) if ( a_u > = 0 ) else ( a_t * 1 ) ) / ( g ) ) + ( 9 * b_a / ( g ) ) + ( ( min( ( b_b * b_c ) , b_b * ( 7 ) ) if ( b_c > = 0 ) else ( b_b * ( 7 ) ) ) / ( g ) + ( b_d / ( b_e if smt_on else ( g ) ) ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * hbm_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( n * o ) , n * ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( o > = 0 ) else ( n * ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) / ( ( ( ( min( ( u * v ) , u * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( v > = 0 ) else ( u * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( w * x ) , w * ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( x > = 0 ) else ( w * ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( y / ( y + z ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( min( ( a_a * a_b ) , a_a * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_b > = 0 ) else ( a_a * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( w * x ) , w * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( x > = 0 ) else ( w * ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( y / ( y + z ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( min( ( n * o ) , n * ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( o > = 0 ) else ( n * ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( a_c + a_d ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( ( 7 ) ) ) if ( a_j > = 0 ) else ( a_i * ( ( 7 ) ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( ( a_q / a_r ) ) ) if ( a_p > = 0 ) else ( a_o * ( ( a_q / a_r ) ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( a_m * a_n ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( ( 7 ) ) ) if ( a_j > = 0 ) else ( a_i * ( ( 7 ) ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( ( a_q / a_r ) ) ) if ( a_p > = 0 ) else ( a_o * ( ( a_q / a_r ) ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( a_o * a_p ) , a_o * ( ( a_q / a_r ) ) ) if ( a_p > = 0 ) else ( a_o * ( ( a_q / a_r ) ) ) ) / ( g ) ) / ( ( ( min( ( a_i * a_j ) , a_i * ( ( 7 ) ) ) if ( a_j > = 0 ) else ( a_i * ( ( 7 ) ) ) ) / ( g ) + ( a_k / ( g ) ) ) + ( 13 * a_l / ( g ) ) + ( min( 2 * ( a_e - s - t ) * dependentloadsweight / 100 , max( a_g - a_h , 0 ) ) / ( g ) ) + ( ( a_m * a_n ) / ( g ) ) + ( ( min( ( a_o * a_p ) , a_o * ( ( a_q / a_r ) ) ) if ( a_p > = 0 ) else ( a_o * ( ( a_q / a_r ) ) ) ) / ( g ) ) + ( a_s / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( ( a_t * a_u ) , a_t * ( 1 ) ) if ( a_u > = 0 ) else ( a_t * ( 1 ) ) ) / ( g ) ) / ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_y + ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z ) / ( g ) ) + ( ( min( ( a_t * a_u ) , a_t * ( 1 ) ) if ( a_u > = 0 ) else ( a_t * ( 1 ) ) ) / ( g ) ) + ( 9 * b_a / ( g ) ) + ( ( min( ( b_b * b_c ) , b_b * ( ( 7 ) ) ) if ( b_c > = 0 ) else ( b_b * ( ( 7 ) ) ) ) / ( g ) + ( b_d / ( b_e if smt_on else ( g ) ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) / ( ( ( ( a_v * ( 10 ) * ( 1 - ( a_m / a_w ) ) ) + ( 1 - ( a_m / a_w ) ) * ( min( g , a_x ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_y + ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z ) / ( g ) ) + ( ( min( ( a_t * a_u ) , a_t * ( 1 ) ) if ( a_u > = 0 ) else ( a_t * ( 1 ) ) ) / ( g ) ) + ( 9 * b_a / ( g ) ) + ( ( min( ( b_b * b_c ) , b_b * ( ( 7 ) ) ) if ( b_c > = 0 ) else ( b_b * ( ( 7 ) ) ) ) / ( g ) + ( b_d / ( b_e if smt_on else ( g ) ) ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2362,8 +2362,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( min( ( l * m ) , l * ( 7 ) ) if ( m > = 0 ) else ( l * ( 7 ) ) ) / ( h ) + ( n / ( h ) ) ) / ( ( ( min( ( l * m ) , l * ( 7 ) ) if ( m > = 0 ) else ( l * ( 7 ) ) ) / ( h ) + ( n / ( h ) ) ) + ( 13 * o / ( h ) ) + ( min( 2 * ( p - q - r ) * dependentloadsweight / 100 , max( t - u , 0 ) ) / ( h ) ) + ( ( v * w ) / ( h ) ) + ( ( min( ( x * y ) , x * ( z / a_a ) ) if ( y > = 0 ) else ( x * ( z / a_a ) ) ) / ( h ) ) + ( a_b / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( min( ( a_c * a_d ) , a_c * ( 7 ) ) if ( a_d > = 0 ) else ( a_c * ( 7 ) ) ) / ( h ) + ( a_e / ( a_f if smt_on else ( h ) ) ) ) / ( ( ( ( a_g * ( 10 ) * ( 1 - ( v / a_h ) ) ) + ( 1 - ( v / a_h ) ) * ( min( h , a_i ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_j ) * a_k / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( h ) / a_j ) * a_k / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( h ) ) + ( ( min( ( a_o * a_p ) , a_o * 1 ) if ( a_p > = 0 ) else ( a_o * 1 ) ) / ( h ) ) + ( 9 * a_q / ( h ) ) + ( ( min( ( a_c * a_d ) , a_c * ( 7 ) ) if ( a_d > = 0 ) else ( a_c * ( 7 ) ) ) / ( h ) + ( a_e / ( a_f if smt_on else ( h ) ) ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_dtlb_load / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( min( ( l * m ) , l * ( ( 7 ) ) ) if ( m > = 0 ) else ( l * ( ( 7 ) ) ) ) / ( h ) + ( n / ( h ) ) ) / ( ( ( min( ( l * m ) , l * ( ( 7 ) ) ) if ( m > = 0 ) else ( l * ( ( 7 ) ) ) ) / ( h ) + ( n / ( h ) ) ) + ( 13 * o / ( h ) ) + ( min( 2 * ( p - q - r ) * dependentloadsweight / 100 , max( t - u , 0 ) ) / ( h ) ) + ( ( v * w ) / ( h ) ) + ( ( min( ( x * y ) , x * ( ( z / a_a ) ) ) if ( y > = 0 ) else ( x * ( ( z / a_a ) ) ) ) / ( h ) ) + ( a_b / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( min( ( a_c * a_d ) , a_c * ( ( 7 ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 7 ) ) ) ) / ( h ) + ( a_e / ( a_f if smt_on else ( h ) ) ) ) / ( ( ( ( a_g * ( 10 ) * ( 1 - ( v / a_h ) ) ) + ( 1 - ( v / a_h ) ) * ( min( h , a_i ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_j ) * a_k / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( h ) / a_j ) * a_k / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( h ) ) + ( ( min( ( a_o * a_p ) , a_o * ( 1 ) ) if ( a_p > = 0 ) else ( a_o * ( 1 ) ) ) / ( h ) ) + ( 9 * a_q / ( h ) ) + ( ( min( ( a_c * a_d ) , a_c * ( ( 7 ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 7 ) ) ) ) / ( h ) + ( a_e / ( a_f if smt_on else ( h ) ) ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_dtlb_load / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2549,7 +2549,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "m" }, { @@ -2623,8 +2623,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) * ( ( ( n * o ) + ( p * q ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) / ( ( ( t * u ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( v * w ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( n * o ) + ( p * q ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) ) + ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( min( ( x * y ) , x * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( y > = 0 ) else ( x * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_e / ( a_e + a_f ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( min( ( a_g * a_h ) , a_g * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_h > = 0 ) else ( a_g * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_e / ( a_e + a_f ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) ) / ( ( ( ( min( ( x * y ) , x * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( y > = 0 ) else ( x * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_e / ( a_e + a_f ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( min( ( a_g * a_h ) , a_g * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_h > = 0 ) else ( a_g * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_e / ( a_e + a_f ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( min( ( a_i * a_j ) , a_i * ( 37 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_j > = 0 ) else ( a_i * ( 37 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( a_k + a_l ) / ( g ) ) ) + ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 170 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( g ) ) / ( ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( g ) ) + ( ( min( ( a_s * a_t ) , a_s * 1 ) if ( a_t > = 0 ) else ( a_s * 1 ) ) / ( g ) ) + ( 9 * a_u / ( g ) ) + ( ( min( ( a_v * a_w ) , a_v * ( 7 ) ) if ( a_w > = 0 ) else ( a_v * ( 7 ) ) ) / ( g ) + ( a_x / ( a_y if smt_on else ( g ) ) ) ) ) - ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - b_c / b_d ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - b_c / b_d ) , 0.0001 ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", + "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) * ( ( ( n * o ) + ( p * q ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) / ( ( ( t * u ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( v * w ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( n * o ) + ( p * q ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) ) + ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( min( ( x * y ) , x * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( y > = 0 ) else ( x * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_e / ( a_e + a_f ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( min( ( a_g * a_h ) , a_g * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_h > = 0 ) else ( a_g * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_e / ( a_e + a_f ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) ) / ( ( ( ( min( ( x * y ) , x * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( y > = 0 ) else ( x * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_e / ( a_e + a_f ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( min( ( a_g * a_h ) , a_g * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_h > = 0 ) else ( a_g * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_c * a_d ) , a_c * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_d > = 0 ) else ( a_c * ( ( 79 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_e / ( a_e + a_f ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( min( ( a_i * a_j ) , a_i * ( ( 37 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_j > = 0 ) else ( a_i * ( ( 37 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( a_k + a_l ) / ( g ) ) ) + ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 170 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( g ) ) / ( ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_m + ( 81 * ( ( ( g ) / z ) * a_a / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_n ) / ( g ) ) + ( ( min( ( a_s * a_t ) , a_s * ( 1 ) ) if ( a_t > = 0 ) else ( a_s * ( 1 ) ) ) / ( g ) ) + ( 9 * a_u / ( g ) ) + ( ( min( ( a_v * a_w ) , a_v * ( ( 7 ) ) ) if ( a_w > = 0 ) else ( a_v * ( ( 7 ) ) ) ) / ( g ) + ( a_x / ( a_y if smt_on else ( g ) ) ) ) ) - ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - b_c / b_d ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_z / ( b_a ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( b_b / ( b + c + d + e ) ) ) ) * ( 1 - b_c / b_d ) , 0.0001 ) ) ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2984,7 +2984,7 @@ "Alias": "a_f" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "a_g" }, { @@ -3374,7 +3374,7 @@ "Alias": "threads" } ], - "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_z / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( a_x * a_y ) , a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( b_i * b_j ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_o * b_p ) , b_o * 1 ) if ( b_p > = 0 ) else ( b_o * 1 ) ) / ( i ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * 1 ) if ( b_p > = 0 ) else ( b_o * 1 ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( 7 ) ) if ( b_x > = 0 ) else ( b_w * ( 7 ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * 1 ) if ( b_p > = 0 ) else ( b_o * 1 ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( 7 ) ) if ( b_x > = 0 ) else ( b_w * ( 7 ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( 7 ) ) if ( b_b > = 0 ) else ( b_a * ( 7 ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( b_m / b_n ) ) if ( b_l > = 0 ) else ( b_k * ( b_m / b_n ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_w * b_x ) , b_w * ( 7 ) ) if ( b_x > = 0 ) else ( b_w * ( 7 ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * 1 ) if ( b_p > = 0 ) else ( b_o * 1 ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( 7 ) ) if ( b_x > = 0 ) else ( b_w * ( 7 ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( b_z * c_a ) + ( c_b * c_c ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) / ( ( ( c_d * c_e ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( c_f * c_g ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( b_z * c_a ) + ( c_b * c_c ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( min( ( a_k * a_l ) , a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) / ( ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * 1 ) if ( b_p > = 0 ) else ( b_o * 1 ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( 7 ) ) if ( b_x > = 0 ) else ( b_w * ( 7 ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) - ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_i / ( i ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_l / ( z if smt_on else ( i ) ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) * ( ( c_q / ( i ) ) / ( ( max( c_m - c_j , 0 ) / ( i ) ) + ( c_n / ( i ) ) + ( c_r / ( i ) ) + ( c_q / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( c_j / ( i ) + ( c_k / ( i ) ) ) + c_s / ( i ) * ( max( c_m - c_j , 0 ) / ( i ) ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_t / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_u / ( g ) ) / ( r / ( g ) ) ) ) * ( c_t / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_v + 2 * c_w + c_x ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_v + 2 * c_w + c_x ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_t / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_u / ( g ) ) / ( r / ( g ) ) ) ) * ( c_t / ( b + c + d + e ) ) ) ) ) )", + "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_z / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( a_x * a_y ) , a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( b_i * b_j ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_o * b_p ) , b_o * ( 1 ) ) if ( b_p > = 0 ) else ( b_o * ( 1 ) ) ) / ( i ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * ( 1 ) ) if ( b_p > = 0 ) else ( b_o * ( 1 ) ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( ( 7 ) ) ) if ( b_x > = 0 ) else ( b_w * ( ( 7 ) ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * ( 1 ) ) if ( b_p > = 0 ) else ( b_o * ( 1 ) ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( ( 7 ) ) ) if ( b_x > = 0 ) else ( b_w * ( ( 7 ) ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) / ( ( ( min( ( b_a * b_b ) , b_a * ( ( 7 ) ) ) if ( b_b > = 0 ) else ( b_a * ( ( 7 ) ) ) ) / ( i ) + ( b_c / ( i ) ) ) + ( 13 * b_d / ( i ) ) + ( min( 2 * ( b_e - a_t - a_u ) * dependentloadsweight / 100 , max( b_g - b_h , 0 ) ) / ( i ) ) + ( ( b_i * b_j ) / ( i ) ) + ( ( min( ( b_k * b_l ) , b_k * ( ( b_m / b_n ) ) ) if ( b_l > = 0 ) else ( b_k * ( ( b_m / b_n ) ) ) ) / ( i ) ) + ( a_z / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( ( b_w * b_x ) , b_w * ( ( 7 ) ) ) if ( b_x > = 0 ) else ( b_w * ( ( 7 ) ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) / ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * ( 1 ) ) if ( b_p > = 0 ) else ( b_o * ( 1 ) ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( ( 7 ) ) ) if ( b_x > = 0 ) else ( b_w * ( ( 7 ) ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( b_z * c_a ) + ( c_b * c_c ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) / ( ( ( c_d * c_e ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( c_f * c_g ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( b_z * c_a ) + ( c_b * c_c ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( min( ( a_k * a_l ) , a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) ) / ( ( ( ( min( ( a_k * a_l ) , a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_l > = 0 ) else ( a_k * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( a_r / ( a_r + a_s ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( ( min( ( a_v * a_w ) , a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_w > = 0 ) else ( a_v * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( a_p * a_q ) , a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_q > = 0 ) else ( a_p * ( ( 79 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( a_r / ( a_r + a_s ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( min( ( a_x * a_y ) , a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( a_y > = 0 ) else ( a_x * ( ( 37 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( a_t / a_u ) / 2 ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) / ( ( ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_t + ( 81 * ( ( ( i ) / a_m ) * a_n / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_u ) / ( i ) ) + ( ( min( ( b_o * b_p ) , b_o * ( 1 ) ) if ( b_p > = 0 ) else ( b_o * ( 1 ) ) ) / ( i ) ) + ( 9 * b_v / ( i ) ) + ( ( min( ( b_w * b_x ) , b_w * ( ( 7 ) ) ) if ( b_x > = 0 ) else ( b_w * ( ( 7 ) ) ) ) / ( i ) + ( b_y / ( z if smt_on else ( i ) ) ) ) ) - ( ( ( b_q * ( 10 ) * ( 1 - ( b_i / b_r ) ) ) + ( 1 - ( b_i / b_r ) ) * ( min( i , b_s ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_i / ( i ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_l / ( z if smt_on else ( i ) ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) * ( ( c_q / ( i ) ) / ( ( max( c_m - c_j , 0 ) / ( i ) ) + ( c_n / ( i ) ) + ( c_r / ( i ) ) + ( c_q / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - c_h / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( c_j / ( i ) + ( c_k / ( i ) ) ) + c_s / ( i ) * ( max( c_m - c_j , 0 ) / ( i ) ) ) / ( ( c_i / ( i ) ) + ( c_j / ( i ) + ( c_k / ( i ) ) ) + ( c_l / ( z if smt_on else ( i ) ) ) + ( ( ( max( c_m - c_j , 0 ) / ( i ) ) * ( i ) + ( c_n + ( d / ( b + c + d + e ) ) * c_o ) ) / ( i ) if ( c_i < ( c_p - a_c ) ) else ( c_n + ( d / ( b + c + d + e ) ) * c_o ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_t / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_u / ( g ) ) / ( r / ( g ) ) ) ) * ( c_t / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_v + 2 * c_w + c_x ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_v + 2 * c_w + c_x ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_t / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_u / ( g ) ) / ( r / ( g ) ) ) ) * ( c_t / ( b + c + d + e ) ) ) ) ) )", "BaseFormula": "100 - ( tma_bottleneck_big_code + tma_bottleneck_instruction_fetch_bw + tma_bottleneck_mispredictions + tma_bottleneck_data_cache_memory_bandwidth + tma_bottleneck_data_cache_memory_latency + tma_bottleneck_memory_data_tlbs + tma_bottleneck_memory_synchronization + tma_bottleneck_compute_bound_est + tma_bottleneck_irregular_overhead + tma_bottleneck_branching_overhead + tma_bottleneck_useful_work )", "Category": "TMA", "CountDomain": "Scaled_Slots", @@ -3614,8 +3614,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3659,8 +3659,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3720,8 +3720,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Hit(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Hit(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3773,8 +3773,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Miss(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Miss(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3818,8 +3818,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3879,8 +3879,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Hit(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Hit(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3932,8 +3932,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3993,8 +3993,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_4K(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4054,8 +4054,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_2M(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4103,8 +4103,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4180,8 +4180,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Mispredicts_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Mispredicts_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4257,8 +4257,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Clears_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Clears_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4306,8 +4306,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Unknown_Branches(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Unknown_Branches(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4359,8 +4359,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....MS_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....MS_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC, $issueMS, $issueMV, $issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4404,8 +4404,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....LCP(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....LCP(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4449,8 +4449,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....DSB_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....DSB_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4564,8 +4564,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4626,8 +4626,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_......Decoder0_Alone(%) > 10 & metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_......Decoder0_Alone(%) > 10 ) & ( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4684,8 +4684,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 15 & b > 20", - "BaseFormula": "metric_TMA_....DSB(%) > 15 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 15 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....DSB(%) > 15 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4750,8 +4750,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 5 & b > 20", - "BaseFormula": "metric_TMA_....MS(%) > 5 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MS(%) > 5 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4855,8 +4855,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4872,21 +4872,37 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "BR_MISP_RETIRED.COND_NTAKEN_COST", + "Name": "BR_MISP_RETIRED.COND_NTAKEN", "Alias": "a" }, { - "Name": "BR_MISP_RETIRED.COND_NTAKEN_COST:retire_latency", + "Name": "BR_MISP_RETIRED.ALL_BRANCHES", "Alias": "b" }, { - "Name": "CPU_CLK_UNHALTED.THREAD", + "Name": "PERF_METRICS.BRANCH_MISPREDICTS", "Alias": "c" + }, + { + "Name": "PERF_METRICS.FRONTEND_BOUND", + "Alias": "d" + }, + { + "Name": "PERF_METRICS.BAD_SPECULATION", + "Alias": "e" + }, + { + "Name": "PERF_METRICS.RETIRING", + "Alias": "f" + }, + { + "Name": "PERF_METRICS.BACKEND_BOUND", + "Alias": "g" } ], "Constants": [], - "Formula": "100 * ( ( a * b ) / ( c ) )", - "BaseFormula": "( br_misp_retired.cond_ntaken_cost * br_misp_retired.cond_ntaken_cost:retire_latency ) / tma_info_thread_clks", + "Formula": "100 * ( ( a / b ) * ( c / ( d + e + f + g ) ) )", + "BaseFormula": "( br_misp_retired.cond_ntaken / br_misp_retired.all_branches ) * tma_branch_mispredicts", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -4904,8 +4920,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Cond_NT_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Cond_NT_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4921,21 +4937,37 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "BR_MISP_RETIRED.COND_TAKEN_COST", + "Name": "BR_MISP_RETIRED.COND_TAKEN", "Alias": "a" }, { - "Name": "BR_MISP_RETIRED.COND_TAKEN_COST:retire_latency", + "Name": "BR_MISP_RETIRED.ALL_BRANCHES", "Alias": "b" }, { - "Name": "CPU_CLK_UNHALTED.THREAD", + "Name": "PERF_METRICS.BRANCH_MISPREDICTS", "Alias": "c" + }, + { + "Name": "PERF_METRICS.FRONTEND_BOUND", + "Alias": "d" + }, + { + "Name": "PERF_METRICS.BAD_SPECULATION", + "Alias": "e" + }, + { + "Name": "PERF_METRICS.RETIRING", + "Alias": "f" + }, + { + "Name": "PERF_METRICS.BACKEND_BOUND", + "Alias": "g" } ], "Constants": [], - "Formula": "100 * ( ( a * b ) / ( c ) )", - "BaseFormula": "( br_misp_retired.cond_taken_cost * br_misp_retired.cond_taken_cost:retire_latency ) / tma_info_thread_clks", + "Formula": "100 * ( ( a / b ) * ( c / ( d + e + f + g ) ) )", + "BaseFormula": "( br_misp_retired.cond_taken / br_misp_retired.all_branches ) * tma_branch_mispredicts", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -4953,8 +4985,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Cond_TK_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Cond_TK_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4970,21 +5002,37 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "BR_MISP_RETIRED.INDIRECT_CALL_COST", + "Name": "BR_MISP_RETIRED.INDIRECT_CALL", "Alias": "a" }, { - "Name": "BR_MISP_RETIRED.INDIRECT_CALL_COST:retire_latency", + "Name": "BR_MISP_RETIRED.ALL_BRANCHES", "Alias": "b" }, { - "Name": "CPU_CLK_UNHALTED.THREAD", + "Name": "PERF_METRICS.BRANCH_MISPREDICTS", "Alias": "c" + }, + { + "Name": "PERF_METRICS.FRONTEND_BOUND", + "Alias": "d" + }, + { + "Name": "PERF_METRICS.BAD_SPECULATION", + "Alias": "e" + }, + { + "Name": "PERF_METRICS.RETIRING", + "Alias": "f" + }, + { + "Name": "PERF_METRICS.BACKEND_BOUND", + "Alias": "g" } ], "Constants": [], - "Formula": "100 * ( ( a * b ) / ( c ) )", - "BaseFormula": "( br_misp_retired.indirect_call_cost * br_misp_retired.indirect_call_cost:retire_latency ) / tma_info_thread_clks", + "Formula": "100 * ( ( a / b ) * ( c / ( d + e + f + g ) ) )", + "BaseFormula": "( br_misp_retired.indirect_call / br_misp_retired.all_branches ) * tma_branch_mispredicts", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -5002,8 +5050,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Ind_Call_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Ind_Call_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5019,29 +5067,41 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "BR_MISP_RETIRED.INDIRECT_COST", + "Name": "BR_MISP_RETIRED.INDIRECT", "Alias": "a" }, { - "Name": "BR_MISP_RETIRED.INDIRECT_COST:retire_latency", + "Name": "BR_MISP_RETIRED.INDIRECT_CALL", "Alias": "b" }, { - "Name": "BR_MISP_RETIRED.INDIRECT_CALL_COST", + "Name": "BR_MISP_RETIRED.ALL_BRANCHES", "Alias": "c" }, { - "Name": "BR_MISP_RETIRED.INDIRECT_CALL_COST:retire_latency", + "Name": "PERF_METRICS.BRANCH_MISPREDICTS", "Alias": "d" }, { - "Name": "CPU_CLK_UNHALTED.THREAD", + "Name": "PERF_METRICS.FRONTEND_BOUND", "Alias": "e" + }, + { + "Name": "PERF_METRICS.BAD_SPECULATION", + "Alias": "f" + }, + { + "Name": "PERF_METRICS.RETIRING", + "Alias": "g" + }, + { + "Name": "PERF_METRICS.BACKEND_BOUND", + "Alias": "h" } ], "Constants": [], - "Formula": "100 * ( max( ( ( a * b ) - ( c * d ) ) / ( e ) , 0 ) )", - "BaseFormula": "max( ( ( br_misp_retired.indirect_cost * br_misp_retired.indirect_cost:retire_latency ) - ( br_misp_retired.indirect_call_cost * br_misp_retired.indirect_call_cost:retire_latency ) ) / tma_info_thread_clks , 0 )", + "Formula": "100 * ( max( ( ( a - b ) / c ) * ( d / ( e + f + g + h ) ) , 0 ) )", + "BaseFormula": "max( ( ( br_misp_retired.indirect - br_misp_retired.indirect_call ) / br_misp_retired.all_branches ) * tma_branch_mispredicts , 0 )", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -5059,8 +5119,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Ind_Jump_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Ind_Jump_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5076,21 +5136,37 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "BR_MISP_RETIRED.RET_COST", + "Name": "BR_MISP_RETIRED.RET", "Alias": "a" }, { - "Name": "BR_MISP_RETIRED.RET_COST:retire_latency", + "Name": "BR_MISP_RETIRED.ALL_BRANCHES", "Alias": "b" }, { - "Name": "CPU_CLK_UNHALTED.THREAD", + "Name": "PERF_METRICS.BRANCH_MISPREDICTS", "Alias": "c" + }, + { + "Name": "PERF_METRICS.FRONTEND_BOUND", + "Alias": "d" + }, + { + "Name": "PERF_METRICS.BAD_SPECULATION", + "Alias": "e" + }, + { + "Name": "PERF_METRICS.RETIRING", + "Alias": "f" + }, + { + "Name": "PERF_METRICS.BACKEND_BOUND", + "Alias": "g" } ], "Constants": [], - "Formula": "100 * ( ( a * b ) / ( c ) )", - "BaseFormula": "( br_misp_retired.ret_cost * br_misp_retired.ret_cost:retire_latency ) / tma_info_thread_clks", + "Formula": "100 * ( ( a / b ) * ( c / ( d + e + f + g ) ) )", + "BaseFormula": "( br_misp_retired.ret / br_misp_retired.all_branches ) * tma_branch_mispredicts", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -5108,8 +5184,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Ret_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Ret_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5177,8 +5253,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5238,8 +5314,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueMC, $issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5311,8 +5387,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Nukes(%) > 5 & metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Nukes(%) > 5 ) & ( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5408,8 +5484,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20", - "BaseFormula": "metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5457,8 +5533,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1, $issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5491,8 +5567,8 @@ } ], "Constants": [], - "Formula": "100 * ( ( min( ( a * b ) , a * ( 7 ) ) if ( b > = 0 ) else ( a * ( 7 ) ) ) / ( c ) + ( d / ( c ) ) )", - "BaseFormula": "( min( ( mem_inst_retired.stlb_hit_loads * mem_inst_retired.stlb_hit_loads:retire_latency ) , mem_inst_retired.stlb_hit_loads * ( 7 ) ) if ( mem_inst_retired.stlb_hit_loads:retire_latency >= 0 ) else ( mem_inst_retired.stlb_hit_loads * ( 7 ) ) ) / tma_info_thread_clks + tma_load_stlb_miss", + "Formula": "100 * ( ( min( ( a * b ) , a * ( ( 7 ) ) ) if ( b > = 0 ) else ( a * ( ( 7 ) ) ) ) / ( c ) + ( d / ( c ) ) )", + "BaseFormula": "( min( ( mem_inst_retired.stlb_hit_loads * mem_inst_retired.stlb_hit_loads:retire_latency ) , mem_inst_retired.stlb_hit_loads * ( ( 7 ) ) ) if ( mem_inst_retired.stlb_hit_loads:retire_latency >= 0 ) else ( mem_inst_retired.stlb_hit_loads * ( ( 7 ) ) ) ) / tma_info_thread_clks + tma_load_stlb_miss", "Category": "TMA", "CountDomain": "Clocks_Estimated", "Threshold": { @@ -5514,8 +5590,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5548,7 +5624,7 @@ } ], "Constants": [], - "Formula": "100 * ( max( 0 , ( ( min( ( a * b ) , a * ( 7 ) ) if ( b > = 0 ) else ( a * ( 7 ) ) ) / ( c ) + ( d / ( c ) ) ) - ( d / ( c ) ) ) )", + "Formula": "100 * ( max( 0 , ( ( min( ( a * b ) , a * ( ( 7 ) ) ) if ( b > = 0 ) else ( a * ( ( 7 ) ) ) ) / ( c ) + ( d / ( c ) ) ) - ( d / ( c ) ) ) )", "BaseFormula": "max( 0 , tma_dtlb_load - tma_load_stlb_miss )", "Category": "TMA", "CountDomain": "Clocks_Estimated", @@ -5575,8 +5651,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5628,8 +5704,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5697,8 +5773,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_4K(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5766,8 +5842,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_2M(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5835,8 +5911,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_1G(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5884,8 +5960,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Fwd_Blk(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Fwd_Blk(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5954,8 +6030,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L1_Latency_Dependency(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L1_Latency_Dependency(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6007,8 +6083,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Lock_Latency(%) > 20 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Lock_Latency(%) > 20 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6045,8 +6121,8 @@ } ], "Constants": [], - "Formula": "100 * ( ( min( ( a * b ) , a * ( c / d ) ) if ( b > = 0 ) else ( a * ( c / d ) ) ) / ( e ) )", - "BaseFormula": "( min( ( mem_inst_retired.split_loads * mem_inst_retired.split_loads:retire_latency ) , mem_inst_retired.split_loads * tma_info_memory_load_miss_real_latency ) if ( mem_inst_retired.split_loads:retire_latency >= 0 ) else ( mem_inst_retired.split_loads * tma_info_memory_load_miss_real_latency ) ) / tma_info_thread_clks", + "Formula": "100 * ( ( min( ( a * b ) , a * ( ( c / d ) ) ) if ( b > = 0 ) else ( a * ( ( c / d ) ) ) ) / ( e ) )", + "BaseFormula": "( min( ( mem_inst_retired.split_loads * mem_inst_retired.split_loads:retire_latency ) , mem_inst_retired.split_loads * ( tma_info_memory_load_miss_real_latency ) ) if ( mem_inst_retired.split_loads:retire_latency >= 0 ) else ( mem_inst_retired.split_loads * ( tma_info_memory_load_miss_real_latency ) ) ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Calculated", "Threshold": { @@ -6142,8 +6218,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6193,8 +6269,8 @@ "Alias": "e" } ], - "Formula": "100 * ( ( min( ( a * b ) , a * ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( b > = 0 ) else ( a * ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( g / h ) / 2 ) / ( c ) )", - "BaseFormula": "( min( ( mem_load_retired.l2_hit * mem_load_retired.l2_hit:retire_latency ) , mem_load_retired.l2_hit * ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_retired.l2_hit:retire_latency >= 0 ) else ( mem_load_retired.l2_hit * ( 4.4 * tma_info_system_core_frequency ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", + "Formula": "100 * ( ( min( ( a * b ) , a * ( ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( b > = 0 ) else ( a * ( ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( g / h ) / 2 ) / ( c ) )", + "BaseFormula": "( min( ( mem_load_retired.l2_hit * mem_load_retired.l2_hit:retire_latency ) , mem_load_retired.l2_hit * ( ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_retired.l2_hit:retire_latency >= 0 ) else ( mem_load_retired.l2_hit * ( ( 4.4 * tma_info_system_core_frequency ) ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Retired", "Threshold": { @@ -6216,8 +6292,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L2_Hit_Latency(%) > 5 & metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L2_Hit_Latency(%) > 5 ) & ( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6265,8 +6341,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6332,8 +6408,8 @@ "Alias": "e" } ], - "Formula": "100 * ( ( ( min( ( a * b ) , a * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( b > = 0 ) else ( a * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( g * h ) , g * ( 81 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( h > = 0 ) else ( g * ( 81 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( i / ( i + j ) ) ) * ( 1 + ( k / l ) / 2 ) / ( c ) )", - "BaseFormula": "( ( min( ( mem_load_l3_hit_retired.xsnp_miss * mem_load_l3_hit_retired.xsnp_miss:retire_latency ) , mem_load_l3_hit_retired.xsnp_miss * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_l3_hit_retired.xsnp_miss:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_miss * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) + ( min( ( mem_load_l3_hit_retired.xsnp_fwd * mem_load_l3_hit_retired.xsnp_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_fwd * ( 81 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_l3_hit_retired.xsnp_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_fwd * ( 81 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) * ( ocr.demand_data_rd.l3_hit.snoop_hitm / ( ocr.demand_data_rd.l3_hit.snoop_hitm + ocr.demand_data_rd.l3_hit.snoop_hit_with_fwd ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", + "Formula": "100 * ( ( ( min( ( a * b ) , a * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( b > = 0 ) else ( a * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( g * h ) , g * ( ( 81 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( h > = 0 ) else ( g * ( ( 81 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( i / ( i + j ) ) ) * ( 1 + ( k / l ) / 2 ) / ( c ) )", + "BaseFormula": "( ( min( ( mem_load_l3_hit_retired.xsnp_miss * mem_load_l3_hit_retired.xsnp_miss:retire_latency ) , mem_load_l3_hit_retired.xsnp_miss * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_l3_hit_retired.xsnp_miss:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_miss * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) ) + ( min( ( mem_load_l3_hit_retired.xsnp_fwd * mem_load_l3_hit_retired.xsnp_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_fwd * ( ( 81 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_l3_hit_retired.xsnp_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_fwd * ( ( 81 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) ) * ( ocr.demand_data_rd.l3_hit.snoop_hitm / ( ocr.demand_data_rd.l3_hit.snoop_hitm + ocr.demand_data_rd.l3_hit.snoop_hit_with_fwd ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Estimated", "Threshold": { @@ -6355,8 +6431,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Contested_Accesses(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Contested_Accesses(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6368,7 +6444,7 @@ "LegacyName": "metric_TMA_......Data_Sharing(%)", "ParentCategory": "L3_Bound", "Level": 4, - "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", + "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to L3 data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", "UnitOfMeasure": "percent", "Events": [ { @@ -6422,8 +6498,8 @@ "Alias": "e" } ], - "Formula": "100 * ( ( ( min( ( a * b ) , a * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( b > = 0 ) else ( a * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) + ( min( ( g * h ) , g * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( h > = 0 ) else ( g * ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 - ( i / ( i + j ) ) ) ) * ( 1 + ( k / l ) / 2 ) / ( c ) )", - "BaseFormula": "( ( min( ( mem_load_l3_hit_retired.xsnp_no_fwd * mem_load_l3_hit_retired.xsnp_no_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_no_fwd * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_l3_hit_retired.xsnp_no_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_no_fwd * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) + ( min( ( mem_load_l3_hit_retired.xsnp_fwd * mem_load_l3_hit_retired.xsnp_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_fwd * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_l3_hit_retired.xsnp_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_fwd * ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) * ( 1 - ( ocr.demand_data_rd.l3_hit.snoop_hitm / ( ocr.demand_data_rd.l3_hit.snoop_hitm + ocr.demand_data_rd.l3_hit.snoop_hit_with_fwd ) ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", + "Formula": "100 * ( ( ( min( ( a * b ) , a * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( b > = 0 ) else ( a * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) + ( min( ( g * h ) , g * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( h > = 0 ) else ( g * ( ( 79 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 - ( i / ( i + j ) ) ) ) * ( 1 + ( k / l ) / 2 ) / ( c ) )", + "BaseFormula": "( ( min( ( mem_load_l3_hit_retired.xsnp_no_fwd * mem_load_l3_hit_retired.xsnp_no_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_no_fwd * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_l3_hit_retired.xsnp_no_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_no_fwd * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) ) + ( min( ( mem_load_l3_hit_retired.xsnp_fwd * mem_load_l3_hit_retired.xsnp_fwd:retire_latency ) , mem_load_l3_hit_retired.xsnp_fwd * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_l3_hit_retired.xsnp_fwd:retire_latency >= 0 ) else ( mem_load_l3_hit_retired.xsnp_fwd * ( ( 79 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) ) * ( 1 - ( ocr.demand_data_rd.l3_hit.snoop_hitm / ( ocr.demand_data_rd.l3_hit.snoop_hitm + ocr.demand_data_rd.l3_hit.snoop_hit_with_fwd ) ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Estimated", "Threshold": { @@ -6445,8 +6521,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Data_Sharing(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Data_Sharing(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6496,8 +6572,8 @@ "Alias": "e" } ], - "Formula": "100 * ( ( min( ( a * b ) , a * ( 37 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) if ( b > = 0 ) else ( a * ( 37 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) * ( 1 + ( g / h ) / 2 ) / ( c ) )", - "BaseFormula": "( min( ( mem_load_retired.l3_hit * mem_load_retired.l3_hit:retire_latency ) , mem_load_retired.l3_hit * ( 37 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) if ( mem_load_retired.l3_hit:retire_latency >= 0 ) else ( mem_load_retired.l3_hit * ( 37 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", + "Formula": "100 * ( ( min( ( a * b ) , a * ( ( 37 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) if ( b > = 0 ) else ( a * ( ( 37 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( c ) / d ) * e / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) ) ) * ( 1 + ( g / h ) / 2 ) / ( c ) )", + "BaseFormula": "( min( ( mem_load_retired.l3_hit * mem_load_retired.l3_hit:retire_latency ) , mem_load_retired.l3_hit * ( ( 37 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) if ( mem_load_retired.l3_hit:retire_latency >= 0 ) else ( mem_load_retired.l3_hit * ( ( 37 * tma_info_system_core_frequency ) - ( 4.4 * tma_info_system_core_frequency ) ) ) ) * ( 1 + ( mem_load_retired.fb_hit / mem_load_retired.l1_miss ) / 2 ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Estimated", "Threshold": { @@ -6519,8 +6595,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L3_Hit_Latency(%) > 10 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L3_Hit_Latency(%) > 10 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6572,8 +6648,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 30 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......SQ_Full(%) > 30 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 30 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......SQ_Full(%) > 30 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6581,8 +6657,8 @@ "LocateWith": "" }, { - "MetricName": "DRAM_Bound", - "LegacyName": "metric_TMA_....DRAM_Bound(%)", + "MetricName": "L3_Miss_Bound", + "LegacyName": "metric_TMA_....L3_Miss_Bound(%)", "ParentCategory": "Memory_Bound", "Level": 3, "BriefDescription": "This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.", @@ -6606,7 +6682,7 @@ "ThresholdMetrics": [ { "Alias": "a", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "b", @@ -6617,18 +6693,18 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "MemoryBound;TmaL3mem", + "MetricGroup": "MemoryBound;TmaL3mem;Offcore", "LocateWith": "MEM_LOAD_RETIRED.L3_MISS" }, { "MetricName": "MEM_Bandwidth", "LegacyName": "metric_TMA_......MEM_Bandwidth(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6638,13 +6714,13 @@ "Alias": "a" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "b" } ], "Constants": [], "Formula": "100 * ( ( min( a , b ) ) / ( a ) )", - "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.data_rd:c4 ) ) / tma_info_thread_clks", + "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.data_rd:c12 ) ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks", "Threshold": { @@ -6655,7 +6731,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6666,8 +6742,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6708,7 +6784,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6719,8 +6795,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........MBA_Stalls(%) > 10 & metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........MBA_Stalls(%) > 10 ) & ( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6730,7 +6806,7 @@ { "MetricName": "MEM_Latency", "LegacyName": "metric_TMA_......MEM_Latency(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6744,7 +6820,7 @@ "Alias": "b" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12", "Alias": "c" } ], @@ -6761,7 +6837,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6772,8 +6848,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6826,7 +6902,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6837,8 +6913,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Local_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Local_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6891,7 +6967,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6902,8 +6978,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6964,7 +7040,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6975,8 +7051,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_Cache(%) > 5 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_Cache(%) > 5 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7020,8 +7096,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7081,8 +7157,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Latency(%) > 10 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Latency(%) > 10 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO, $issueSL, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7147,8 +7223,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......False_Sharing(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......False_Sharing(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7177,8 +7253,8 @@ } ], "Constants": [], - "Formula": "100 * ( ( min( ( a * b ) , a * 1 ) if ( b > = 0 ) else ( a * 1 ) ) / ( c ) )", - "BaseFormula": "( min( ( mem_inst_retired.split_stores * mem_inst_retired.split_stores:retire_latency ) , mem_inst_retired.split_stores * 1 ) if ( mem_inst_retired.split_stores:retire_latency >= 0 ) else ( mem_inst_retired.split_stores * 1 ) ) / tma_info_thread_clks", + "Formula": "100 * ( ( min( ( a * b ) , a * ( 1 ) ) if ( b > = 0 ) else ( a * ( 1 ) ) ) / ( c ) )", + "BaseFormula": "( min( ( mem_inst_retired.split_stores * mem_inst_retired.split_stores:retire_latency ) , mem_inst_retired.split_stores * ( 1 ) ) if ( mem_inst_retired.split_stores:retire_latency >= 0 ) else ( mem_inst_retired.split_stores * ( 1 ) ) ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Core_Utilization", "Threshold": { @@ -7200,8 +7276,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Split_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Split_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSpSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7249,8 +7325,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Streaming_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Streaming_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSmSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7296,8 +7372,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( min( ( a * b ) , a * ( 7 ) ) if ( b > = 0 ) else ( a * ( 7 ) ) ) / ( c ) + ( d / ( e if smt_on else ( c ) ) ) )", - "BaseFormula": "( min( ( mem_inst_retired.stlb_hit_stores * mem_inst_retired.stlb_hit_stores:retire_latency ) , mem_inst_retired.stlb_hit_stores * ( 7 ) ) if ( mem_inst_retired.stlb_hit_stores:retire_latency >= 0 ) else ( mem_inst_retired.stlb_hit_stores * ( 7 ) ) ) / tma_info_thread_clks + tma_store_stlb_miss", + "Formula": "100 * ( ( min( ( a * b ) , a * ( ( 7 ) ) ) if ( b > = 0 ) else ( a * ( ( 7 ) ) ) ) / ( c ) + ( d / ( e if smt_on else ( c ) ) ) )", + "BaseFormula": "( min( ( mem_inst_retired.stlb_hit_stores * mem_inst_retired.stlb_hit_stores:retire_latency ) , mem_inst_retired.stlb_hit_stores * ( ( 7 ) ) ) if ( mem_inst_retired.stlb_hit_stores:retire_latency >= 0 ) else ( mem_inst_retired.stlb_hit_stores * ( ( 7 ) ) ) ) / tma_info_thread_clks + tma_store_stlb_miss", "Category": "TMA", "CountDomain": "Clocks_Estimated", "Threshold": { @@ -7319,8 +7395,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7366,7 +7442,7 @@ "Alias": "threads" } ], - "Formula": "100 * ( max( 0 , ( ( min( ( a * b ) , a * ( 7 ) ) if ( b > = 0 ) else ( a * ( 7 ) ) ) / ( c ) + ( d / ( e if smt_on else ( c ) ) ) ) - ( d / ( e if smt_on else ( c ) ) ) ) )", + "Formula": "100 * ( max( 0 , ( ( min( ( a * b ) , a * ( ( 7 ) ) ) if ( b > = 0 ) else ( a * ( ( 7 ) ) ) ) / ( c ) + ( d / ( e if smt_on else ( c ) ) ) ) - ( d / ( e if smt_on else ( c ) ) ) ) )", "BaseFormula": "max( 0 , tma_dtlb_store - tma_store_stlb_miss )", "Category": "TMA", "CountDomain": "Clocks_Estimated", @@ -7393,8 +7469,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7459,8 +7535,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7541,8 +7617,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_4K(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7623,8 +7699,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_2M(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7705,8 +7781,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_1G(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7758,8 +7834,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7803,8 +7879,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7852,8 +7928,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......FP_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......FP_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7905,8 +7981,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......INT_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......INT_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7954,8 +8030,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8003,8 +8079,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Slow_Pause(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Slow_Pause(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8052,8 +8128,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C01_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C01_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8101,8 +8177,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C02_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C02_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8150,8 +8226,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Memory_Fence(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Memory_Fence(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8208,8 +8284,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 50 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....AMX_Busy(%) > 50 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 50 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....AMX_Busy(%) > 50 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8293,8 +8369,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8346,8 +8422,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_0(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_0(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8432,8 +8508,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_1(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_1(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8481,8 +8557,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_2(%) > 15 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_2(%) > 15 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8530,8 +8606,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 40 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_3m(%) > 40 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 40 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_3m(%) > 40 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8894,8 +8970,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 70 | b > 10", - "BaseFormula": "metric_TMA_Retiring(%) > 70 | metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 70 ) | ( b > 10 )", + "BaseFormula": "( metric_TMA_Retiring(%) > 70 ) | ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9020,8 +9096,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 20 & b > 60", - "BaseFormula": "metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 20 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9081,8 +9157,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......X87_Use(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......X87_Use(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9146,8 +9222,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Scalar(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Scalar(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9211,8 +9287,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9284,8 +9360,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_128b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_128b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9357,8 +9433,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_256b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_256b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9430,8 +9506,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_512b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_512b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9503,8 +9579,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9568,8 +9644,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_128b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_128b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9637,8 +9713,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_256b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_256b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9698,8 +9774,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Memory_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Memory_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9759,8 +9835,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Fused_Instructions(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Fused_Instructions(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9824,8 +9900,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Non_Fused_Branches(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Non_Fused_Branches(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9937,8 +10013,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 30 & b > 60", - "BaseFormula": "metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 30 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10002,8 +10078,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Nop_Instructions(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Nop_Instructions(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10067,8 +10143,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Shuffles_256b(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Shuffles_256b(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10177,8 +10253,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Few_Uops_Instructions(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Few_Uops_Instructions(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10218,8 +10294,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueMC, $issueMS" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10263,8 +10339,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......Assists(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......Assists(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10423,8 +10499,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......CISC(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......CISC(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10864,7 +10940,7 @@ "UnitOfMeasure": "", "Events": [ { - "Name": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE:u0x03", + "Name": "FP_ARITH_INST_RETIRED.SCALAR", "Alias": "a" }, { @@ -10872,11 +10948,11 @@ "Alias": "b" }, { - "Name": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE:u0x18", + "Name": "FP_ARITH_INST_RETIRED.4_FLOPS", "Alias": "c" }, { - "Name": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE:u0x60", + "Name": "FP_ARITH_INST_RETIRED.8_FLOPS", "Alias": "d" }, { @@ -10903,7 +10979,7 @@ } ], "Formula": "( ( 1 * a + 2 * b + 4 * c + 8 * d + 16 * e ) ) / ( f if smt_on else ( g ) )", - "BaseFormula": "( ( 1 * fp_arith_inst_retired.scalar_single:u0x03 + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.128b_packed_single:u0x18 + 8 * fp_arith_inst_retired.256b_packed_single:u0x60 + 16 * fp_arith_inst_retired.512b_packed_single ) ) / tma_info_core_core_clks", + "BaseFormula": "( ( 1 * fp_arith_inst_retired.scalar + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.4_flops + 8 * fp_arith_inst_retired.8_flops + 16 * fp_arith_inst_retired.512b_packed_single ) ) / tma_info_core_core_clks", "Category": "TMA", "CountDomain": "Core_Metric", "Threshold": { @@ -11287,7 +11363,7 @@ "Alias": "a" }, { - "Name": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE:u0x03", + "Name": "FP_ARITH_INST_RETIRED.SCALAR", "Alias": "b" }, { @@ -11295,11 +11371,11 @@ "Alias": "c" }, { - "Name": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE:u0x18", + "Name": "FP_ARITH_INST_RETIRED.4_FLOPS", "Alias": "d" }, { - "Name": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE:u0x60", + "Name": "FP_ARITH_INST_RETIRED.8_FLOPS", "Alias": "e" }, { @@ -11309,7 +11385,7 @@ ], "Constants": [], "Formula": "a / ( ( 1 * b + 2 * c + 4 * d + 8 * e + 16 * f ) )", - "BaseFormula": "inst_retired.any / ( ( 1 * fp_arith_inst_retired.scalar_single:u0x03 + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.128b_packed_single:u0x18 + 8 * fp_arith_inst_retired.256b_packed_single:u0x60 + 16 * fp_arith_inst_retired.512b_packed_single ) )", + "BaseFormula": "inst_retired.any / ( ( 1 * fp_arith_inst_retired.scalar + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.4_flops + 8 * fp_arith_inst_retired.8_flops + 16 * fp_arith_inst_retired.512b_packed_single ) )", "Category": "TMA", "CountDomain": "Inst_Metric", "Threshold": { @@ -11408,7 +11484,7 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Flops;FpScalar;InsType;Server", + "MetricGroup": "Flops;FpScalar;InsType", "LocateWith": "" }, { @@ -11615,6 +11691,42 @@ "MetricGroup": "Flops;FpVector;InsType", "LocateWith": "" }, + { + "MetricName": "Info_Inst_Mix_VectorMixPKI", + "LegacyName": "metric_TMA_Info_Inst_Mix_VectorMixPKI", + "Level": 1, + "BriefDescription": "AVX preserve/restore assists per kilo instruction", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "ASSISTS.SSE_AVX_MIX", + "Alias": "a" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "b" + } + ], + "Constants": [], + "Formula": "1000 * a / b", + "BaseFormula": "1000 * assists.sse_avx_mix / inst_retired.any", + "Category": "TMA", + "CountDomain": "Inst_Metric", + "Threshold": { + "ThresholdMetrics": [ + { + "Alias": "a", + "Value": "metric_TMA_Info_Inst_Mix_VectorMixPKI" + } + ], + "Formula": "a > 0.05", + "BaseFormula": "metric_TMA_Info_Inst_Mix_VectorMixPKI > 0.05", + "ThresholdIssues": "$issueMV" + }, + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "", + "LocateWith": "" + }, { "MetricName": "Info_Inst_Mix_IpPause", "LegacyName": "metric_TMA_Info_Inst_Mix_IpPause", @@ -11970,13 +12082,17 @@ "Alias": "a" }, { - "Name": "UOPS_ISSUED.ANY", + "Name": "IDQ.MITE_UOPS", "Alias": "b" + }, + { + "Name": "IDQ.MS_UOPS", + "Alias": "c" } ], "Constants": [], - "Formula": "a / ( b )", - "BaseFormula": "idq.dsb_uops / ( uops_issued.any )", + "Formula": "a / ( a + b + c )", + "BaseFormula": "idq.dsb_uops / ( idq.dsb_uops + idq.mite_uops + idq.ms_uops )", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -11990,8 +12106,8 @@ "Value": "metric_TMA_Info_Thread_IPC" } ], - "Formula": "a < 0.7 & b / 6 > 0.35", - "BaseFormula": "metric_TMA_Info_Frontend_DSB_Coverage < 0.7 & metric_TMA_Info_Thread_IPC / 6 > 0.35", + "Formula": "( a < 0.7 ) & ( b / 6 > 0.35 )", + "BaseFormula": "( metric_TMA_Info_Frontend_DSB_Coverage < 0.7 ) & ( metric_TMA_Info_Thread_IPC / 6 > 0.35 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -13285,14 +13401,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L1MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", + "MetricName": "Info_Memory_L2MPKI", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI", "Level": 1, - "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", + "Name": "MEM_LOAD_RETIRED.L2_MISS", "Alias": "a" }, { @@ -13302,7 +13418,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13311,18 +13427,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "Mem;Backend;CacheHits", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI", + "MetricName": "Info_Memory_L3MPKI", + "LegacyName": "metric_TMA_Info_Memory_L3MPKI", "Level": 1, - "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L2_MISS", + "Name": "MEM_LOAD_RETIRED.L3_MISS", "Alias": "a" }, { @@ -13332,7 +13448,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13341,18 +13457,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem;Backend;CacheHits", + "MetricGroup": "Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", + "MetricName": "Info_Memory_FB_HPKI", + "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", + "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.MISS", + "Name": "MEM_LOAD_RETIRED.FB_HIT", "Alias": "a" }, { @@ -13362,7 +13478,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13371,18 +13487,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem;Offcore", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", + "MetricName": "Info_Memory_L1MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", + "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", "Alias": "a" }, { @@ -13392,7 +13508,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13405,14 +13521,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_RFO", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", + "MetricName": "Info_Memory_L2MPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", "Level": 1, - "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.RFO_MISS", + "Name": "L2_RQSTS.MISS", "Alias": "a" }, { @@ -13422,7 +13538,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13431,32 +13547,28 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheMisses;Offcore", + "MetricGroup": "CacheHits;Mem;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", + "MetricName": "Info_Memory_L2MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.REFERENCES", + "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", "Alias": "a" }, - { - "Name": "L2_RQSTS.MISS", - "Alias": "b" - }, { "Name": "INST_RETIRED.ANY", - "Alias": "c" + "Alias": "b" } ], "Constants": [], - "Formula": "1000 * ( a - b ) / c", - "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", + "Formula": "1000 * a / b", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13469,14 +13581,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", + "MetricName": "Info_Memory_L2MPKI_RFO", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", + "Name": "L2_RQSTS.RFO_MISS", "Alias": "a" }, { @@ -13486,7 +13598,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13495,28 +13607,32 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "CacheMisses;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L3MPKI", - "LegacyName": "metric_TMA_Info_Memory_L3MPKI", + "MetricName": "Info_Memory_L2HPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", "Level": 1, - "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L3_MISS", + "Name": "L2_RQSTS.REFERENCES", "Alias": "a" }, { - "Name": "INST_RETIRED.ANY", + "Name": "L2_RQSTS.MISS", "Alias": "b" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "c" } ], "Constants": [], - "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", + "Formula": "1000 * ( a - b ) / c", + "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13525,18 +13641,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_FB_HPKI", - "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", + "MetricName": "Info_Memory_L2HPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", "Level": 1, - "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", + "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.FB_HIT", + "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", "Alias": "a" }, { @@ -13546,7 +13662,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -14508,37 +14624,6 @@ "MetricGroup": "Summary;Power", "LocateWith": "" }, - { - "MetricName": "Info_System_Uncore_Frequency", - "LegacyName": "metric_TMA_Info_System_Uncore_Frequency", - "Level": 1, - "BriefDescription": "Measured Average Uncore Frequency for the SoC [GHz]", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "UNC_CHA_CLOCKTICKS:one_unit", - "Alias": "a" - } - ], - "Constants": [ - { - "Name": "DURATIONTIMEINMILLISECONDS", - "Alias": "durationtimeinmilliseconds" - } - ], - "Formula": "( a ) / 1e9 / ( ( durationtimeinmilliseconds / 1000 ) )", - "BaseFormula": "tma_info_system_socket_clks / 1e9 / tma_info_system_time", - "Category": "TMA", - "CountDomain": "System_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "SYSTEM", - "MetricGroup": "SoC", - "LocateWith": "" - }, { "MetricName": "Info_System_GFLOPs", "LegacyName": "metric_TMA_Info_System_GFLOPs", @@ -14547,7 +14632,7 @@ "UnitOfMeasure": "", "Events": [ { - "Name": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE:u0x03", + "Name": "FP_ARITH_INST_RETIRED.SCALAR", "Alias": "a" }, { @@ -14555,11 +14640,11 @@ "Alias": "b" }, { - "Name": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE:u0x18", + "Name": "FP_ARITH_INST_RETIRED.4_FLOPS", "Alias": "c" }, { - "Name": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE:u0x60", + "Name": "FP_ARITH_INST_RETIRED.8_FLOPS", "Alias": "d" }, { @@ -14574,7 +14659,7 @@ } ], "Formula": "( ( ( 1 * a + 2 * b + 4 * c + 8 * d + 16 * e ) ) / ( 1000000000 ) ) / ( ( durationtimeinmilliseconds / 1000 ) )", - "BaseFormula": "( ( ( 1 * fp_arith_inst_retired.scalar_single:u0x03 + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.128b_packed_single:u0x18 + 8 * fp_arith_inst_retired.256b_packed_single:u0x60 + 16 * fp_arith_inst_retired.512b_packed_single ) ) / ( 1000000000 ) ) / tma_info_system_time", + "BaseFormula": "( ( ( 1 * fp_arith_inst_retired.scalar + 2 * fp_arith_inst_retired.128b_packed_double + 4 * fp_arith_inst_retired.4_flops + 8 * fp_arith_inst_retired.8_flops + 16 * fp_arith_inst_retired.512b_packed_single ) ) / ( 1000000000 ) ) / tma_info_system_time", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -14616,45 +14701,6 @@ "MetricGroup": "Power", "LocateWith": "" }, - { - "MetricName": "Info_System_SMT_2T_Utilization", - "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", - "Level": 1, - "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", - "Alias": "b" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "1 - a / b if smt_on else 0", - "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "SMT", - "LocateWith": "" - }, { "MetricName": "Info_System_Kernel_Utilization", "LegacyName": "metric_TMA_Info_System_Kernel_Utilization", @@ -15051,8 +15097,8 @@ "Value": "metric_TMA_Info_System_MUX" } ], - "Formula": "a > 1.1 | a < 0.9", - "BaseFormula": "metric_TMA_Info_System_MUX > 1.1 | metric_TMA_Info_System_MUX < 0.9", + "Formula": "( a > 1.1 ) | ( a < 0.9 )", + "BaseFormula": "( metric_TMA_Info_System_MUX > 1.1 ) | ( metric_TMA_Info_System_MUX < 0.9 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -15121,6 +15167,45 @@ "MetricGroup": "Branches;OS", "LocateWith": "" }, + { + "MetricName": "Info_System_SMT_2T_Utilization", + "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", + "Level": 1, + "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", + "Alias": "a" + }, + { + "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", + "Alias": "b" + } + ], + "Constants": [ + { + "Name": "HYPERTHREADING_ON", + "Alias": "smt_on" + }, + { + "Name": "THREADS_PER_CORE", + "Alias": "threads" + } + ], + "Formula": "1 - a / b if smt_on else 0", + "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", + "Category": "TMA", + "CountDomain": "Core_Metric", + "Threshold": { + "Formula": "", + "BaseFormula": "", + "ThresholdIssues": "" + }, + "ResolutionLevels": "CORE, SOCKET, SYSTEM", + "MetricGroup": "SMT", + "LocateWith": "" + }, { "MetricName": "Info_Memory_SoC_R2C_Offcore_BW", "LegacyName": "metric_TMA_Info_Memory_SoC_R2C_Offcore_BW", diff --git a/mapfile.csv b/mapfile.csv index c9f3a842..35b6a685 100644 --- a/mapfile.csv +++ b/mapfile.csv @@ -203,12 +203,12 @@ GenuineIntel-6-B5,V1.1,/MTL/metrics/meteorlake_metrics_redwoodcove_core.json,met GenuineIntel-6-AD,V1.19,/GNR/events/graniterapids_core.json,core,,, GenuineIntel-6-AD,V1.19,/GNR/events/graniterapids_uncore.json,uncore,,, GenuineIntel-6-AD,V1.19,/GNR/events/graniterapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-AD,V1.2,/GNR/metrics/graniterapids_metrics.json,metrics,,, +GenuineIntel-6-AD,V1.3,/GNR/metrics/graniterapids_metrics.json,metrics,,, GenuineIntel-6-AD,V1.08,/GNR/metrics/graniterapids_retire_latency.json,retire latency,,, GenuineIntel-6-AE,V1.19,/GNR/events/graniterapids_core.json,core,,, GenuineIntel-6-AE,V1.19,/GNR/events/graniterapids_uncore.json,uncore,,, GenuineIntel-6-AE,V1.19,/GNR/events/graniterapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-AE,V1.2,/GNR/metrics/graniterapids_metrics.json,metrics,,, +GenuineIntel-6-AE,V1.3,/GNR/metrics/graniterapids_metrics.json,metrics,,, GenuineIntel-6-AE,V1.08,/GNR/metrics/graniterapids_retire_latency.json,retire latency,,, GenuineIntel-6-AF,V1.17,/SRF/events/sierraforest_core.json,core,,, GenuineIntel-6-AF,V1.17,/SRF/events/sierraforest_uncore.json,uncore,,, From 97b9fcb38042b81a082f9c9a9fd7bf7ca5231f0c Mon Sep 17 00:00:00 2001 From: Ed Baker Date: Mon, 8 Jun 2026 15:01:11 -0700 Subject: [PATCH 3/5] ICX: Release metric updates This commit releases ICX metric updates. --- ICX/metrics/icelakex_metrics.json | 780 ++++++++++++------------------ mapfile.csv | 4 +- 2 files changed, 307 insertions(+), 477 deletions(-) diff --git a/ICX/metrics/icelakex_metrics.json b/ICX/metrics/icelakex_metrics.json index 3ef9b5fa..889fbee5 100644 --- a/ICX/metrics/icelakex_metrics.json +++ b/ICX/metrics/icelakex_metrics.json @@ -1,11 +1,11 @@ { "Header": { - "Copyright": "Copyright (c) 2001 - 2025 Intel Corporation. All rights reserved.", + "Copyright": "Copyright (c) 2001 - 2026 Intel Corporation. All rights reserved.", "Info": "Performance Monitoring Metrics for 3rd Generation Intel(R) Xeon(R) Processor Scalable Family based on Ice Lake microarchitecture0", - "DatePublished": "06/17/2025", - "Version": "1.1", + "DatePublished": "06/02/2026", + "Version": "1.2", "Legend": "", - "TmaVersion": "5.1", + "TmaVersion": "5.2", "TmaFlavor": "Full" }, "Metrics": [ @@ -1828,7 +1828,7 @@ } ], "Formula": "100 * ( ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( min( m , t ) ) / ( m ) ) / ( ( ( min( m , t ) ) / ( m ) ) + ( ( min( m , u ) ) / ( m ) - ( ( min( m , t ) ) / ( m ) ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( o - l ) / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( v / ( m ) ) / ( ( ( ( ( 48 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( a_a / ( a_a + a_b ) ) ) + ( ( 47.5 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_c ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 47.5 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_d + z * ( 1 - ( a_a / ( a_a + a_b ) ) ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 23 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / w ) * x / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_e * ( 1 + ( q / r ) / 2 ) ) / ( m ) ) + ( v / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( max( ( a - n ) / ( m ) , 0 ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( a_f / ( m ) ) / ( ( min( ( 7 ) * a_g + a_h , max( a_i - a_j , 0 ) ) / ( m ) ) + ( 13 * a_k / ( m ) ) + ( min( 2 * ( a_l - a_m - a_n ) * dependentloadsweight / 100 , max( a_i - a_j , 0 ) ) / ( m ) ) + ( ( 16 * max( 0 , a_p - a_q ) + ( a_p / a_r ) * ( ( 10 ) * a_s + ( min( m , a_t ) ) ) ) / ( m ) ) + ( ( a_u / ( a_n + a_m ) ) * a_v / ( m ) ) + ( a_w / ( m ) ) + ( a_f / ( m ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2089,7 +2089,7 @@ } ], "Formula": "100 * ( ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( min( m , t ) ) / ( m ) - ( ( min( m , u ) ) / ( m ) ) ) / ( ( ( min( m , u ) ) / ( m ) ) + ( ( min( m , t ) ) / ( m ) - ( ( min( m , u ) ) / ( m ) ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( o - l ) / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y * ( 1 + ( q / r ) / 2 ) ) / ( m ) ) / ( ( ( ( ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( a_a / ( a_a + a_b ) ) ) + ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_c ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_d + z * ( 1 - ( a_a / ( a_a + a_b ) ) ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y * ( 1 + ( q / r ) / 2 ) ) / ( m ) ) + ( a_e / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( max( ( a - n ) / ( m ) , 0 ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( min( 2 * ( a_f - a_g - a_h ) * dependentloadsweight / 100 , max( a_j - a_k , 0 ) ) / ( m ) ) / ( ( min( ( 7 ) * a_l + a_m , max( a_j - a_k , 0 ) ) / ( m ) ) + ( 13 * a_n / ( m ) ) + ( min( 2 * ( a_f - a_g - a_h ) * dependentloadsweight / 100 , max( a_j - a_k , 0 ) ) / ( m ) ) + ( ( 16 * max( 0 , a_o - a_p ) + ( a_o / a_q ) * ( ( 10 ) * a_r + ( min( m , a_s ) ) ) ) / ( m ) ) + ( ( a_t / ( a_h + a_g ) ) * a_u / ( m ) ) + ( a_v / ( m ) ) + ( a_w / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( max( ( a - n ) / ( m ) , 0 ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( 16 * max( 0 , a_o - a_p ) + ( a_o / a_q ) * ( ( 10 ) * a_r + ( min( m , a_s ) ) ) ) / ( m ) ) / ( ( min( ( 7 ) * a_l + a_m , max( a_j - a_k , 0 ) ) / ( m ) ) + ( 13 * a_n / ( m ) ) + ( min( 2 * ( a_f - a_g - a_h ) * dependentloadsweight / 100 , max( a_j - a_k , 0 ) ) / ( m ) ) + ( ( 16 * max( 0 , a_o - a_p ) + ( a_o / a_q ) * ( ( 10 ) * a_r + ( min( m , a_s ) ) ) ) / ( m ) ) + ( ( a_t / ( a_h + a_g ) ) * a_u / ( m ) ) + ( a_v / ( m ) ) + ( a_w / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( max( ( a - n ) / ( m ) , 0 ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( a_t / ( a_h + a_g ) ) * a_u / ( m ) ) / ( ( min( ( 7 ) * a_l + a_m , max( a_j - a_k , 0 ) ) / ( m ) ) + ( 13 * a_n / ( m ) ) + ( min( 2 * ( a_f - a_g - a_h ) * dependentloadsweight / 100 , max( a_j - a_k , 0 ) ) / ( m ) ) + ( ( 16 * max( 0 , a_o - a_p ) + ( a_o / a_q ) * ( ( 10 ) * a_r + ( min( m , a_s ) ) ) ) / ( m ) ) + ( ( a_t / ( a_h + a_g ) ) * a_u / ( m ) ) + ( a_v / ( m ) ) + ( a_w / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( b / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( a_x / ( a_y if smt_on else ( m ) ) ) / ( ( ( ( a_r * ( 10 ) * ( 1 - ( a_o / a_q ) ) ) + ( 1 - ( a_o / a_q ) ) * ( min( m , a_s ) ) ) / ( m ) ) + ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z + ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_a ) / ( m ) ) + ( a_x / ( a_y if smt_on else ( m ) ) ) + ( 9 * b_b / ( m ) ) + ( ( ( 7 ) * b_c + b_d ) / ( a_y if smt_on else ( m ) ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( b / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( ( a_r * ( 10 ) * ( 1 - ( a_o / a_q ) ) ) + ( 1 - ( a_o / a_q ) ) * ( min( m , a_s ) ) ) / ( m ) ) / ( ( ( ( a_r * ( 10 ) * ( 1 - ( a_o / a_q ) ) ) + ( 1 - ( a_o / a_q ) ) * ( min( m , a_s ) ) ) / ( m ) ) + ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_z + ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_a ) / ( m ) ) + ( a_x / ( a_y if smt_on else ( m ) ) ) + ( 9 * b_b / ( m ) ) + ( ( ( 7 ) * b_c + b_d ) / ( a_y if smt_on else ( m ) ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2314,7 +2314,7 @@ } ], "Formula": "100 * ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( max( ( a - l ) / ( m ) , 0 ) ) / max( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) , ( ( max( ( a - l ) / ( m ) , 0 ) ) + ( ( ( n * ( 1 + ( o / p ) ) ) / ( ( n * ( 1 + ( o / p ) ) ) + q ) ) * ( ( l - r ) / ( m ) ) ) + ( ( r - s ) / ( m ) ) + ( ( s / ( m ) + ( ( l - r ) / ( m ) ) - ( ( ( n * ( 1 + ( o / p ) ) ) / ( ( n * ( 1 + ( o / p ) ) ) + q ) ) * ( ( l - r ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) ) * ( ( min( ( 7 ) * t + u , max( v - w , 0 ) ) / ( m ) ) / max( ( max( ( a - l ) / ( m ) , 0 ) ) , ( ( min( ( 7 ) * t + u , max( v - w , 0 ) ) / ( m ) ) + ( 13 * x / ( m ) ) + ( min( 2 * ( y - z - a_a ) * dependentloadsweight / 100 , max( v - w , 0 ) ) / ( m ) ) + ( ( 16 * max( 0 , a_c - a_d ) + ( a_c / a_e ) * ( ( 10 ) * a_f + ( min( m , a_g ) ) ) ) / ( m ) ) + ( ( a_h / ( a_a + z ) ) * a_i / ( m ) ) + ( a_j / ( m ) ) + ( a_k / ( m ) ) ) ) ) + ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( b / ( m ) ) / ( ( max( ( a - l ) / ( m ) , 0 ) ) + ( ( ( n * ( 1 + ( o / p ) ) ) / ( ( n * ( 1 + ( o / p ) ) ) + q ) ) * ( ( l - r ) / ( m ) ) ) + ( ( r - s ) / ( m ) ) + ( ( s / ( m ) + ( ( l - r ) / ( m ) ) - ( ( ( n * ( 1 + ( o / p ) ) ) / ( ( n * ( 1 + ( o / p ) ) ) + q ) ) * ( ( l - r ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( ( 7 ) * a_l + a_m ) / ( a_n if smt_on else ( m ) ) ) / ( ( ( ( a_f * ( 10 ) * ( 1 - ( a_c / a_e ) ) ) + ( 1 - ( a_c / a_e ) ) * ( min( m , a_g ) ) ) / ( m ) ) + ( ( ( 120 * ( ( ( m ) / a_o ) * a_p / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_r + ( 48 * ( ( ( m ) / a_o ) * a_p / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_s ) / ( m ) ) + ( a_t / ( a_n if smt_on else ( m ) ) ) + ( 9 * a_u / ( m ) ) + ( ( ( 7 ) * a_l + a_m ) / ( a_n if smt_on else ( m ) ) ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_4k_aliasing + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2551,7 +2551,7 @@ } ], "Formula": "100 * ( ( ( ( a + b ) / ( c + ( d + ( e / ( f + g + e + h ) ) * i ) + b ) ) * ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) ) * ( ( ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( min( m , t ) ) / ( m ) - ( ( min( m , u ) ) / ( m ) ) ) / ( ( ( min( m , u ) ) / ( m ) ) + ( ( min( m , t ) ) / ( m ) - ( ( min( m , u ) ) / ( m ) ) ) ) ) * ( ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * y + ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * z ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) / ( ( ( ( 66.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * a_a * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 131 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * a_b * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * y + ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * z ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) ) + ( ( ( o - l ) / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( ( ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_c * ( a_d / ( a_d + a_e ) ) ) + ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_f ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_g + a_c * ( 1 - ( a_d / ( a_d + a_e ) ) ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) ) / ( ( ( ( ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_c * ( a_d / ( a_d + a_e ) ) ) + ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_f ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 47.5 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_g + a_c * ( 1 - ( a_d / ( a_d + a_e ) ) ) ) * ( 1 + ( q / r ) / 2 ) / ( m ) ) + ( ( ( 23 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_h * ( 1 + ( q / r ) / 2 ) ) / ( m ) ) + ( a_i / ( m ) ) ) + ( ( b / ( m ) ) / ( ( max( ( a - n ) / ( m ) , 0 ) ) + ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) + ( ( o - l ) / ( m ) ) + ( ( l / ( m ) + ( ( n - o ) / ( m ) ) - ( ( ( p * ( 1 + ( q / r ) ) ) / ( ( p * ( 1 + ( q / r ) ) ) + s ) ) * ( ( n - o ) / ( m ) ) ) ) ) + ( b / ( m ) ) ) ) * ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_j + ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k ) / ( m ) ) / ( ( ( ( ( a_l * ( 10 ) * ( 1 - ( a_m / a_n ) ) ) + ( 1 - ( a_m / a_n ) ) * ( min( m , a_o ) ) ) / ( m ) ) + ( ( ( 120 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_j + ( 48 * ( ( ( m ) / v ) * w / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k ) / ( m ) ) + ( a_p / ( a_q if smt_on else ( m ) ) ) + ( 9 * a_r / ( m ) ) + ( ( ( 7 ) * a_s + a_t ) / ( a_q if smt_on else ( m ) ) ) ) - ( ( ( a_l * ( 10 ) * ( 1 - ( a_m / a_n ) ) ) + ( 1 - ( a_m / a_n ) ) * ( min( m , a_o ) ) ) / ( m ) ) ) ) + ( max( 0 , ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) - ( ( a_v / ( a_v + a_w ) ) * ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) - ( ( a_v / ( a_v + a_w ) ) * ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) ) ) ) * ( 1 - a_x / a_w ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) - ( ( a_v / ( a_v + a_w ) ) * ( max( 1 - ( ( f / ( f + g + e + h ) - a_u / ( k ) ) + ( h / ( f + g + e + h ) + ( ( 5 ) * j ) / ( k ) ) + ( e / ( f + g + e + h ) ) ) , 0 ) ) ) ) ) * ( 1 - a_x / a_w ) , 0.0001 ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -3456,8 +3456,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3501,8 +3501,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3554,8 +3554,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Hit(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Hit(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3603,8 +3603,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Miss(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Miss(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3648,8 +3648,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3701,8 +3701,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Hit(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Hit(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3750,8 +3750,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3811,8 +3811,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_4K(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3872,8 +3872,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_2M(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3921,8 +3921,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3978,8 +3978,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Mispredicts_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Mispredicts_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4035,8 +4035,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Clears_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Clears_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4084,8 +4084,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Unknown_Branches(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Unknown_Branches(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4129,8 +4129,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....MS_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....MS_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC, $issueMS, $issueMV, $issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4174,8 +4174,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....LCP(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....LCP(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4219,8 +4219,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....DSB_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....DSB_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4334,8 +4334,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4396,8 +4396,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_......Decoder0_Alone(%) > 10 & metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_......Decoder0_Alone(%) > 10 ) & ( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4445,8 +4445,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 5 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_......MITE_4wide(%) > 5 & metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_......MITE_4wide(%) > 5 ) & ( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4503,8 +4503,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 15 & b > 20", - "BaseFormula": "metric_TMA_....DSB(%) > 15 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 15 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....DSB(%) > 15 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4557,8 +4557,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 5 & b > 20", - "BaseFormula": "metric_TMA_....MS(%) > 5 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MS(%) > 5 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4682,8 +4682,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4755,8 +4755,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4824,8 +4824,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueMC, $issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4901,8 +4901,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Nukes(%) > 5 & metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Nukes(%) > 5 ) & ( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5030,8 +5030,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20", - "BaseFormula": "metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5079,8 +5079,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1, $issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5140,8 +5140,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5205,8 +5205,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5258,8 +5258,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5327,8 +5327,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_4K(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5396,8 +5396,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_2M(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5465,8 +5465,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_1G(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5514,8 +5514,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Fwd_Blk(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Fwd_Blk(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5584,8 +5584,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L1_Latency_Dependency(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L1_Latency_Dependency(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5649,8 +5649,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Lock_Latency(%) > 20 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Lock_Latency(%) > 20 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5747,8 +5747,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......4K_Aliasing(%) > 20 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......4K_Aliasing(%) > 20 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5849,8 +5849,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5919,8 +5919,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L2_Hit_Latency(%) > 5 & metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L2_Hit_Latency(%) > 5 ) & ( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5968,8 +5968,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6050,8 +6050,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Contested_Accesses(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Contested_Accesses(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6063,7 +6063,7 @@ "LegacyName": "metric_TMA_......Data_Sharing(%)", "ParentCategory": "L3_Bound", "Level": 4, - "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", + "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to L3 data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", "UnitOfMeasure": "percent", "Events": [ { @@ -6132,8 +6132,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Data_Sharing(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Data_Sharing(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6202,8 +6202,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L3_Hit_Latency(%) > 10 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L3_Hit_Latency(%) > 10 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6251,8 +6251,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 30 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......SQ_Full(%) > 30 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 30 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......SQ_Full(%) > 30 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6260,8 +6260,8 @@ "LocateWith": "" }, { - "MetricName": "DRAM_Bound", - "LegacyName": "metric_TMA_....DRAM_Bound(%)", + "MetricName": "L3_Miss_Bound", + "LegacyName": "metric_TMA_....L3_Miss_Bound(%)", "ParentCategory": "Memory_Bound", "Level": 3, "BriefDescription": "This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.", @@ -6309,7 +6309,7 @@ "ThresholdMetrics": [ { "Alias": "a", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "b", @@ -6320,18 +6320,17 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "MemoryBound;TmaL3mem", + "MetricGroup": "MemoryBound;TmaL3mem;Offcore", "LocateWith": "MEM_LOAD_RETIRED.L3_MISS" }, { "MetricName": "MEM_Bandwidth", "LegacyName": "metric_TMA_......MEM_Bandwidth(%)", - "ParentCategory": "DRAM_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6358,7 +6357,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6369,8 +6368,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6380,7 +6379,6 @@ { "MetricName": "MEM_Latency", "LegacyName": "metric_TMA_......MEM_Latency(%)", - "ParentCategory": "DRAM_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6411,7 +6409,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6422,8 +6420,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6485,7 +6483,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6496,8 +6494,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Local_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Local_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6559,7 +6557,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6570,8 +6568,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6637,7 +6635,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6648,8 +6646,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_Cache(%) > 5 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_Cache(%) > 5 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6693,8 +6691,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6754,8 +6752,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Latency(%) > 10 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Latency(%) > 10 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO, $issueSL, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6820,8 +6818,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......False_Sharing(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......False_Sharing(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6882,8 +6880,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Split_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Split_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSpSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6931,8 +6929,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Streaming_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Streaming_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSmSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6997,8 +6995,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7067,8 +7065,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7133,8 +7131,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7215,8 +7213,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_4K(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7297,8 +7295,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_2M(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7379,8 +7377,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_1G(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7456,8 +7454,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7501,8 +7499,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7550,8 +7548,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......FP_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......FP_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7603,8 +7601,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......INT_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......INT_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7648,8 +7646,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7697,8 +7695,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Slow_Pause(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Slow_Pause(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7778,8 +7776,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7827,8 +7825,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_0(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_0(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7913,8 +7911,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_1(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_1(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7962,8 +7960,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_2(%) > 15 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_2(%) > 15 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8011,8 +8009,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 40 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_3m(%) > 40 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 40 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_3m(%) > 40 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8425,8 +8423,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 70 | b > 10", - "BaseFormula": "metric_TMA_Retiring(%) > 70 | metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 70 ) | ( b > 10 )", + "BaseFormula": "( metric_TMA_Retiring(%) > 70 ) | ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8567,8 +8565,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 20 & b > 60", - "BaseFormula": "metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 20 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8628,8 +8626,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......X87_Use(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......X87_Use(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8689,8 +8687,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Scalar(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Scalar(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8750,8 +8748,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8819,8 +8817,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_128b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_128b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8888,8 +8886,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_256b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_256b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8957,8 +8955,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_512b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_512b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9042,8 +9040,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Memory_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Memory_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9123,8 +9121,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Branch_Instructions(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Branch_Instructions(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9228,8 +9226,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 30 & b > 60", - "BaseFormula": "metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 30 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9313,8 +9311,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Nop_Instructions(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Nop_Instructions(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9463,8 +9461,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Few_Uops_Instructions(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Few_Uops_Instructions(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9512,8 +9510,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueMC, $issueMS" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9557,8 +9555,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......Assists(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......Assists(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9651,8 +9649,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......CISC(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......CISC(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -11136,13 +11134,17 @@ "Alias": "a" }, { - "Name": "UOPS_ISSUED.ANY", + "Name": "IDQ.MITE_UOPS", "Alias": "b" + }, + { + "Name": "IDQ.MS_UOPS", + "Alias": "c" } ], "Constants": [], - "Formula": "a / ( b )", - "BaseFormula": "idq.dsb_uops / ( uops_issued.any )", + "Formula": "a / ( a + b + c )", + "BaseFormula": "idq.dsb_uops / ( idq.dsb_uops + idq.mite_uops + idq.ms_uops )", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -11156,8 +11158,8 @@ "Value": "metric_TMA_Info_Thread_IPC" } ], - "Formula": "a < 0.7 & b / 5 > 0.35", - "BaseFormula": "metric_TMA_Info_Frontend_DSB_Coverage < 0.7 & metric_TMA_Info_Thread_IPC / 5 > 0.35", + "Formula": "( a < 0.7 ) & ( b / 5 > 0.35 )", + "BaseFormula": "( metric_TMA_Info_Frontend_DSB_Coverage < 0.7 ) & ( metric_TMA_Info_Thread_IPC / 5 > 0.35 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -12259,14 +12261,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L1MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", + "MetricName": "Info_Memory_L2MPKI", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI", "Level": 1, - "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", + "Name": "MEM_LOAD_RETIRED.L2_MISS", "Alias": "a" }, { @@ -12276,7 +12278,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12285,18 +12287,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "Mem;Backend;CacheHits", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI", + "MetricName": "Info_Memory_L3MPKI", + "LegacyName": "metric_TMA_Info_Memory_L3MPKI", "Level": 1, - "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L2_MISS", + "Name": "MEM_LOAD_RETIRED.L3_MISS", "Alias": "a" }, { @@ -12306,7 +12308,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12315,40 +12317,28 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem;Backend;CacheHits", + "MetricGroup": "Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", + "MetricName": "Info_Memory_FB_HPKI", + "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", + "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", "UnitOfMeasure": "", "Events": [ { - "Name": "OFFCORE_REQUESTS.ALL_DATA_RD", + "Name": "MEM_LOAD_RETIRED.FB_HIT", "Alias": "a" }, - { - "Name": "OFFCORE_REQUESTS.DEMAND_DATA_RD", - "Alias": "b" - }, - { - "Name": "L2_RQSTS.ALL_DEMAND_MISS", - "Alias": "c" - }, - { - "Name": "L2_RQSTS.SWPF_MISS", - "Alias": "d" - }, { "Name": "INST_RETIRED.ANY", - "Alias": "e" + "Alias": "b" } ], "Constants": [], - "Formula": "1000 * ( ( a - b ) + c + d ) / ( e )", - "BaseFormula": "1000 * ( ( offcore_requests.all_data_rd - offcore_requests.demand_data_rd ) + l2_rqsts.all_demand_miss + l2_rqsts.swpf_miss ) / tma_info_inst_mix_instructions", + "Formula": "1000 * a / b", + "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12357,18 +12347,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem;Offcore", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", + "MetricName": "Info_Memory_L1MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", + "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", "Alias": "a" }, { @@ -12378,7 +12368,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12391,24 +12381,36 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_RFO", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", + "MetricName": "Info_Memory_L2MPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", "Level": 1, - "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.RFO_MISS", + "Name": "OFFCORE_REQUESTS.ALL_DATA_RD", "Alias": "a" }, { - "Name": "INST_RETIRED.ANY", + "Name": "OFFCORE_REQUESTS.DEMAND_DATA_RD", "Alias": "b" + }, + { + "Name": "L2_RQSTS.ALL_DEMAND_MISS", + "Alias": "c" + }, + { + "Name": "L2_RQSTS.SWPF_MISS", + "Alias": "d" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "e" } ], "Constants": [], - "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", + "Formula": "1000 * ( ( a - b ) + c + d ) / ( e )", + "BaseFormula": "1000 * ( ( offcore_requests.all_data_rd - offcore_requests.demand_data_rd ) + l2_rqsts.all_demand_miss + l2_rqsts.swpf_miss ) / tma_info_inst_mix_instructions", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12417,18 +12419,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheMisses;Offcore", + "MetricGroup": "CacheHits;Mem;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", + "MetricName": "Info_Memory_L2MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", + "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", "Alias": "a" }, { @@ -12438,7 +12440,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12451,14 +12453,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L3MPKI", - "LegacyName": "metric_TMA_Info_Memory_L3MPKI", + "MetricName": "Info_Memory_L2MPKI_RFO", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", "Level": 1, - "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L3_MISS", + "Name": "L2_RQSTS.RFO_MISS", "Alias": "a" }, { @@ -12468,7 +12470,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12477,18 +12479,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem", + "MetricGroup": "CacheMisses;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_FB_HPKI", - "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", + "MetricName": "Info_Memory_L2HPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", "Level": 1, - "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", + "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.FB_HIT", + "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", "Alias": "a" }, { @@ -12498,7 +12500,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13260,37 +13262,6 @@ "MetricGroup": "Summary;Power", "LocateWith": "" }, - { - "MetricName": "Info_System_Uncore_Frequency", - "LegacyName": "metric_TMA_Info_System_Uncore_Frequency", - "Level": 1, - "BriefDescription": "Measured Average Uncore Frequency for the SoC [GHz]", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "UNC_CHA_CLOCKTICKS:one_unit", - "Alias": "a" - } - ], - "Constants": [ - { - "Name": "DURATIONTIMEINMILLISECONDS", - "Alias": "durationtimeinmilliseconds" - } - ], - "Formula": "( a ) / 1e9 / ( ( durationtimeinmilliseconds / 1000 ) )", - "BaseFormula": "tma_info_system_socket_clks / 1e9 / tma_info_system_time", - "Category": "TMA", - "CountDomain": "System_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "SOCKET, SYSTEM", - "MetricGroup": "SoC", - "LocateWith": "" - }, { "MetricName": "Info_System_GFLOPs", "LegacyName": "metric_TMA_Info_System_GFLOPs", @@ -13368,186 +13339,6 @@ "MetricGroup": "Power", "LocateWith": "" }, - { - "MetricName": "Info_System_Power_License0_Utilization", - "LegacyName": "metric_TMA_Info_System_Power_License0_Utilization", - "Level": 1, - "BriefDescription": "Fraction of Core cycles where the core was running with power-delivery for baseline license level 0. This includes non-AVX codes, SSE, AVX 128-bit, and low-current AVX 256-bit codes.", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CORE_POWER.LVL0_TURBO_LICENSE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", - "Alias": "b" - }, - { - "Name": "CPU_CLK_UNHALTED.THREAD", - "Alias": "c" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "a / ( b if smt_on else ( c ) )", - "BaseFormula": "core_power.lvl0_turbo_license / tma_info_core_core_clks", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "Power", - "LocateWith": "" - }, - { - "MetricName": "Info_System_Power_License1_Utilization", - "LegacyName": "metric_TMA_Info_System_Power_License1_Utilization", - "Level": 1, - "BriefDescription": "Fraction of Core cycles where the core was running with power-delivery for license level 1. This includes high current AVX 256-bit instructions as well as low current AVX 512-bit instructions.", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CORE_POWER.LVL1_TURBO_LICENSE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", - "Alias": "b" - }, - { - "Name": "CPU_CLK_UNHALTED.THREAD", - "Alias": "c" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "a / ( b if smt_on else ( c ) )", - "BaseFormula": "core_power.lvl1_turbo_license / tma_info_core_core_clks", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "ThresholdMetrics": [ - { - "Alias": "a", - "Value": "metric_TMA_Info_System_Power_License1_Utilization" - } - ], - "Formula": "a > 0.5", - "BaseFormula": "metric_TMA_Info_System_Power_License1_Utilization > 0.5", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "Power", - "LocateWith": "" - }, - { - "MetricName": "Info_System_Power_License2_Utilization", - "LegacyName": "metric_TMA_Info_System_Power_License2_Utilization", - "Level": 1, - "BriefDescription": "Fraction of Core cycles where the core was running with power-delivery for license level 2 (introduced in SKX). This includes high current AVX 512-bit instructions.", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CORE_POWER.LVL2_TURBO_LICENSE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", - "Alias": "b" - }, - { - "Name": "CPU_CLK_UNHALTED.THREAD", - "Alias": "c" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "a / ( b if smt_on else ( c ) )", - "BaseFormula": "core_power.lvl2_turbo_license / tma_info_core_core_clks", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "ThresholdMetrics": [ - { - "Alias": "a", - "Value": "metric_TMA_Info_System_Power_License2_Utilization" - } - ], - "Formula": "a > 0.5", - "BaseFormula": "metric_TMA_Info_System_Power_License2_Utilization > 0.5", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "Power", - "LocateWith": "" - }, - { - "MetricName": "Info_System_SMT_2T_Utilization", - "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", - "Level": 1, - "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", - "Alias": "b" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "1 - a / b if smt_on else 0", - "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "SMT", - "LocateWith": "" - }, { "MetricName": "Info_System_Kernel_Utilization", "LegacyName": "metric_TMA_Info_System_Kernel_Utilization", @@ -13921,8 +13712,8 @@ "Value": "metric_TMA_Info_System_MUX" } ], - "Formula": "a > 1.1 | a < 0.9", - "BaseFormula": "metric_TMA_Info_System_MUX > 1.1 | metric_TMA_Info_System_MUX < 0.9", + "Formula": "( a > 1.1 ) | ( a < 0.9 )", + "BaseFormula": "( metric_TMA_Info_System_MUX > 1.1 ) | ( metric_TMA_Info_System_MUX < 0.9 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -13990,6 +13781,45 @@ "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", "MetricGroup": "Branches;OS", "LocateWith": "" + }, + { + "MetricName": "Info_System_SMT_2T_Utilization", + "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", + "Level": 1, + "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", + "Alias": "a" + }, + { + "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", + "Alias": "b" + } + ], + "Constants": [ + { + "Name": "HYPERTHREADING_ON", + "Alias": "smt_on" + }, + { + "Name": "THREADS_PER_CORE", + "Alias": "threads" + } + ], + "Formula": "1 - a / b if smt_on else 0", + "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", + "Category": "TMA", + "CountDomain": "Core_Metric", + "Threshold": { + "Formula": "", + "BaseFormula": "", + "ThresholdIssues": "" + }, + "ResolutionLevels": "CORE, SOCKET, SYSTEM", + "MetricGroup": "SMT", + "LocateWith": "" } ] } \ No newline at end of file diff --git a/mapfile.csv b/mapfile.csv index 35b6a685..6a39bebd 100644 --- a/mapfile.csv +++ b/mapfile.csv @@ -150,11 +150,11 @@ GenuineIntel-6-CF,V1.3,/EMR/metrics/emeraldrapids_metrics.json,metrics,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_core.json,core,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_uncore.json,uncore,,, GenuineIntel-6-6A,V1.30,/ICX/events/icelakex_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-6A,V1.1,/ICX/metrics/icelakex_metrics.json,metrics,,, +GenuineIntel-6-6A,V1.2,/ICX/metrics/icelakex_metrics.json,metrics,,, GenuineIntel-6-6C,V1.30,/ICX/events/icelakex_core.json,core,,, GenuineIntel-6-6C,V1.30,/ICX/events/icelakex_uncore.json,uncore,,, GenuineIntel-6-6C,V1.30,/ICX/events/icelakex_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-6C,V1.1,/ICX/metrics/icelakex_metrics.json,metrics,,, +GenuineIntel-6-6C,V1.2,/ICX/metrics/icelakex_metrics.json,metrics,,, GenuineIntel-6-96,V1.05,/EHL/events/elkhartlake_core.json,core,,, GenuineIntel-6-9C,V1.05,/EHL/events/elkhartlake_core.json,core,,, GenuineIntel-6-97,V1.39,/ADL/events/alderlake_gracemont_core.json,hybridcore,0x20,0x000001,Atom From 7d4be9816c03e4f48187f368d82f71d9144a7b7c Mon Sep 17 00:00:00 2001 From: Ed Baker Date: Mon, 8 Jun 2026 15:01:13 -0700 Subject: [PATCH 4/5] SPR: Release metric updates This commit releases SPR metric updates. --- SPR/metrics/sapphirerapids_metrics.json | 943 ++++++++++++------------ mapfile.csv | 2 +- 2 files changed, 455 insertions(+), 490 deletions(-) diff --git a/SPR/metrics/sapphirerapids_metrics.json b/SPR/metrics/sapphirerapids_metrics.json index 21cf2f2b..43c0f814 100644 --- a/SPR/metrics/sapphirerapids_metrics.json +++ b/SPR/metrics/sapphirerapids_metrics.json @@ -1,11 +1,11 @@ { "Header": { - "Copyright": "Copyright (c) 2001 - 2025 Intel Corporation. All rights reserved.", + "Copyright": "Copyright (c) 2001 - 2026 Intel Corporation. All rights reserved.", "Info": "Performance Monitoring Metrics for 4th Generation Intel(R) Xeon(R) Processor Scalable Family based on Sapphire Rapids microarchitecture0", - "DatePublished": "09/12/2025", - "Version": "1.2", + "DatePublished": "06/02/2026", + "Version": "1.3", "Legend": "", - "TmaVersion": "5.1", + "TmaVersion": "5.2", "TmaFlavor": "Full" }, "Metrics": [ @@ -150,7 +150,7 @@ "MetricName": "l1d_demand_data_read_hits_per_instr", "LegacyName": "metric_L1D demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of demand load requests hitting in L1 data cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -194,7 +194,7 @@ "MetricName": "l2_demand_data_read_hits_per_instr", "LegacyName": "metric_L2 demand data read hits per instr", "Level": 1, - "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions ", + "BriefDescription": "Ratio of number of completed demand load requests hitting in L2 cache to the total number of completed instructions", "UnitOfMeasure": "per instruction", "Events": [ { @@ -1759,36 +1759,20 @@ "Alias": "a_g" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a_i" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a_j" }, - { - "Name": "MEM_INST_RETIRED.ALL_STORES", - "Alias": "a_k" - }, - { - "Name": "L2_RQSTS.RFO_HIT", - "Alias": "a_l" - }, - { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", - "Alias": "a_m" - }, { "Name": "L1D_PEND_MISS.PENDING", - "Alias": "a_n" + "Alias": "a_k" }, { "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", - "Alias": "a_o" - }, - { - "Name": "LD_BLOCKS.NO_SR", - "Alias": "a_p" + "Alias": "a_l" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -1831,7 +1815,7 @@ "Alias": "k" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "l" }, { @@ -1897,8 +1881,8 @@ "Alias": "q" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( s * ( t / ( t + u ) ) ) + ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( v ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y + s * ( 1 - ( t / ( t + u ) ) ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( 1 + ( w / x ) / 2 ) ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_a / ( g ) ) / ( ( min( ( 7 ) * a_b + a_c , max( a_d - a_e , 0 ) ) / ( g ) ) + ( 13 * a_f / ( g ) ) + ( min( 2 * ( a_g - w - x ) * dependentloadsweight / 100 , max( a_d - a_e , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_i - a_j ) + ( a_i / a_k ) * ( ( 10 ) * a_l + ( min( g , a_m ) ) ) ) / ( g ) ) + ( ( a_n / a_o ) * a_p / ( g ) ) + ( a_a / ( g ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) ) / ( ( ( min( g , l ) ) / ( g ) ) + ( ( min( g , m ) ) / ( g ) - ( ( min( g , l ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( n + o ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( s * ( t / ( t + u ) ) ) + ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( v ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( y + s * ( 1 - ( t / ( t + u ) ) ) ) * ( 1 + ( w / x ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / p ) * q / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z * ( 1 + ( w / x ) / 2 ) ) / ( g ) ) + ( ( n + o ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_a / ( g ) ) / ( ( min( ( 7 ) * a_b + a_c , max( a_d - a_e , 0 ) ) / ( g ) ) + ( 13 * a_f / ( g ) ) + ( min( 2 * ( a_g - w - x ) * dependentloadsweight / 100 , max( a_d - a_e , 0 ) ) / ( g ) ) + ( a_i / ( g ) ) + ( a_j * ( a_k / a_l ) / ( g ) ) + ( a_a / ( g ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_bandwidth / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_sq_full / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_fb_full / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -1952,72 +1936,68 @@ "Alias": "a_g" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a_h" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a_i" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "a_j" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "a_k" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "L1D_PEND_MISS.FB_FULL", "Alias": "a_l" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_INST_RETIRED.SPLIT_STORES", "Alias": "a_m" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", "Alias": "a_n" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "a_o" }, { - "Name": "L1D_PEND_MISS.FB_FULL", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "a_p" }, { - "Name": "MEM_INST_RETIRED.SPLIT_STORES", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "a_q" }, { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "a_r" }, - { - "Name": "MEM_STORE_RETIRED.L2_HIT", - "Alias": "a_s" - }, { "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", - "Alias": "a_t" + "Alias": "a_s" }, { "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", - "Alias": "a_u" + "Alias": "a_t" }, { "Name": "OCR.STREAMING_WR.ANY_RESPONSE", - "Alias": "a_v" + "Alias": "a_u" }, { "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", - "Alias": "a_w" + "Alias": "a_v" }, { "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", - "Alias": "a_x" + "Alias": "a_w" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -2064,7 +2044,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "m" }, { @@ -2134,8 +2114,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( t * ( u / ( u + v ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( x + t * ( 1 - ( u / ( u + v ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) + ( ( y + z ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( a_m / a_n ) * a_o / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( ( 16 * max( 0 , a_h - a_i ) + ( a_h / a_j ) * ( ( 10 ) * a_k + ( min( g , a_l ) ) ) ) / ( g ) ) + ( ( a_m / a_n ) * a_o / ( g ) ) + ( a_p / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_q / ( a_r if smt_on else ( g ) ) ) / ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_u ) / ( g ) ) + ( a_q / ( a_r if smt_on else ( g ) ) ) + ( 9 * a_v / ( g ) ) + ( ( ( 7 ) * a_w + a_x ) / ( a_r if smt_on else ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) / ( ( ( ( a_s * ( 10 ) * ( 1 - ( a_h / a_j ) ) ) + ( 1 - ( a_h / a_j ) ) * ( min( g , a_l ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_u ) / ( g ) ) + ( a_q / ( a_r if smt_on else ( g ) ) ) + ( 9 * a_v / ( g ) ) + ( ( ( 7 ) * a_w + a_x ) / ( a_r if smt_on else ( g ) ) ) ) ) ) )", - "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( ( a / ( b + c + d + e ) ) * ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( t * ( u / ( u + v ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( x + t * ( 1 - ( u / ( u + v ) ) ) ) * ( 1 + ( r / s ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( q * ( 1 + ( r / s ) / 2 ) ) / ( g ) ) + ( ( y + z ) / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( i - j ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_h / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( max( ( h - i ) / ( g ) , 0 ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_i * ( a_j / a_k ) / ( g ) ) / ( ( min( ( 7 ) * a_e + a_f , max( a_c - a_d , 0 ) ) / ( g ) ) + ( 13 * a_g / ( g ) ) + ( min( 2 * ( a_a - r - s ) * dependentloadsweight / 100 , max( a_c - a_d , 0 ) ) / ( g ) ) + ( a_h / ( g ) ) + ( a_i * ( a_j / a_k ) / ( g ) ) + ( a_l / ( g ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( a_m / ( a_n if smt_on else ( g ) ) ) / ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_s + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t ) / ( g ) ) + ( a_m / ( a_n if smt_on else ( g ) ) ) + ( 9 * a_u / ( g ) ) + ( ( ( 7 ) * a_v + a_w ) / ( a_n if smt_on else ( g ) ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) / ( ( ( ( a_o * ( 10 ) * ( 1 - ( a_p / a_q ) ) ) + ( 1 - ( a_p / a_q ) ) * ( min( g , a_r ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_s + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_t ) / ( g ) ) + ( a_m / ( a_n if smt_on else ( g ) ) ) + ( 9 * a_u / ( g ) ) + ( ( ( 7 ) * a_v + a_w ) / ( a_n if smt_on else ( g ) ) ) ) ) ) )", + "BaseFormula": "100 * ( ( tma_memory_bound * ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) ) + ( tma_memory_bound * ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l3_hit_latency / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) ) ) + ( tma_memory_bound * tma_l2_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_l1_latency_dependency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_lock_latency / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_l1_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_loads / ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_split_stores / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_store_latency / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2165,52 +2145,48 @@ "Alias": "a" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", "Alias": "a_a" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", "Alias": "a_b" }, { - "Name": "L1D_PEND_MISS.FB_FULL", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "a_c" }, { - "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "a_d" }, { - "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "a_e" }, { - "Name": "CPU_CLK_UNHALTED.DISTRIBUTED", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "a_f" }, - { - "Name": "MEM_STORE_RETIRED.L2_HIT", - "Alias": "a_g" - }, { "Name": "CPU_CLK_UNHALTED.REF_TSC", - "Alias": "a_h" + "Alias": "a_g" }, { "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", - "Alias": "a_k" + "Alias": "a_j" }, { "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", - "Alias": "a_l" + "Alias": "a_k" }, { "Name": "MEM_INST_RETIRED.SPLIT_STORES", - "Alias": "a_m" + "Alias": "a_l" }, { "Name": "OCR.STREAMING_WR.ANY_RESPONSE", - "Alias": "a_n" + "Alias": "a_m" }, { "Name": "PERF_METRICS.FRONTEND_BOUND", @@ -2285,34 +2261,34 @@ "Alias": "s" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "u" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "v" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "w" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "x" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "L1D_PEND_MISS.FB_FULL", "Alias": "y" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", "Alias": "z" } ], "Constants": [ { "Name": "SYSTEM_TSC_FREQ", - "Alias": "a_i" + "Alias": "a_h" }, { "Name": "20", @@ -2331,8 +2307,8 @@ "Alias": "threads" } ], - "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / max( ( a / ( b + c + d + e ) ) , ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) ) * ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) / max( ( max( ( f - g ) / ( h ) , 0 ) ) , ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) + ( 13 * p / ( h ) ) + ( min( 2 * ( q - r - s ) * dependentloadsweight / 100 , max( n - o , 0 ) ) / ( h ) ) + ( ( 16 * max( 0 , u - v ) + ( u / w ) * ( ( 10 ) * x + ( min( h , y ) ) ) ) / ( h ) ) + ( ( z / a_a ) * a_b / ( h ) ) + ( a_c / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( ( 7 ) * a_d + a_e ) / ( a_f if smt_on else ( h ) ) ) / ( ( ( ( a_g * ( 10 ) * ( 1 - ( u / w ) ) ) + ( 1 - ( u / w ) ) * ( min( h , y ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_h ) * a_i / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k + ( 81 * ( ( ( h ) / a_h ) * a_i / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_l ) / ( h ) ) + ( a_m / ( a_f if smt_on else ( h ) ) ) + ( 9 * a_n / ( h ) ) + ( ( ( 7 ) * a_d + a_e ) / ( a_f if smt_on else ( h ) ) ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", + "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( max( ( f - g ) / ( h ) , 0 ) ) / max( ( a / ( b + c + d + e ) ) , ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) ) * ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) / max( ( max( ( f - g ) / ( h ) , 0 ) ) , ( ( min( ( 7 ) * l + m , max( n - o , 0 ) ) / ( h ) ) + ( 13 * p / ( h ) ) + ( min( 2 * ( q - r - s ) * dependentloadsweight / 100 , max( n - o , 0 ) ) / ( h ) ) + ( u / ( h ) ) + ( v * ( w / x ) / ( h ) ) + ( y / ( h ) ) ) ) ) + ( ( a / ( b + c + d + e ) ) * ( ( k / ( h ) ) / ( ( max( ( f - g ) / ( h ) , 0 ) ) + ( ( g - i ) / ( h ) ) + ( ( i - j ) / ( h ) ) + ( ( j / ( h ) ) ) + ( k / ( h ) ) ) ) * ( ( ( ( 7 ) * z + a_a ) / ( a_b if smt_on else ( h ) ) ) / ( ( ( ( a_c * ( 10 ) * ( 1 - ( a_d / a_e ) ) ) + ( 1 - ( a_d / a_e ) ) * ( min( h , a_f ) ) ) / ( h ) ) + ( ( ( 170 * ( ( ( h ) / a_g ) * a_h / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_j + ( 81 * ( ( ( h ) / a_g ) * a_h / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_k ) / ( h ) ) + ( a_l / ( a_b if smt_on else ( h ) ) ) + ( 9 * a_m / ( h ) ) + ( ( ( 7 ) * z + a_a ) / ( a_b if smt_on else ( h ) ) ) ) ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( tma_l1_bound / max( tma_memory_bound , ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) ) * ( tma_dtlb_load / max( tma_l1_bound , ( tma_dtlb_load + tma_store_fwd_blk + tma_l1_latency_dependency + tma_lock_latency + tma_split_loads + tma_fb_full ) ) ) + ( tma_memory_bound * ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_dtlb_store / ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2486,7 +2462,7 @@ "Alias": "l" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "m" }, { @@ -2553,7 +2529,7 @@ } ], "Formula": "100 * ( ( a / ( b + c + d + e ) ) * ( ( ( ( f / ( g ) ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) / ( ( ( min( g , m ) ) / ( g ) ) + ( ( min( g , l ) ) / ( g ) - ( ( min( g , m ) ) / ( g ) ) ) ) ) * ( ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * q + ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * r ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) / ( ( ( ( 109 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * u * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 190 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * v * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * q + ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * r ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) ) + ( ( ( j - f ) / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w * ( x / ( x + y ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_a + w * ( 1 - ( x / ( x + y ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) ) / ( ( ( ( ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( w * ( x / ( x + y ) ) ) + ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( z ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 79 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_a + w * ( 1 - ( x / ( x + y ) ) ) ) * ( 1 + ( s / t ) / 2 ) / ( g ) ) + ( ( ( 37 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_b * ( 1 + ( s / t ) / 2 ) ) / ( g ) ) + ( ( a_c + a_d ) / ( g ) ) ) + ( ( k / ( g ) ) / ( ( max( ( h - i ) / ( g ) , 0 ) ) + ( ( i - j ) / ( g ) ) + ( ( j - f ) / ( g ) ) + ( ( f / ( g ) ) ) + ( k / ( g ) ) ) ) * ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_e + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_f ) / ( g ) ) / ( ( ( ( ( a_g * ( 10 ) * ( 1 - ( a_h / a_i ) ) ) + ( 1 - ( a_h / a_i ) ) * ( min( g , a_j ) ) ) / ( g ) ) + ( ( ( 170 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_e + ( 81 * ( ( ( g ) / n ) * o / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * a_f ) / ( g ) ) + ( a_k / ( a_l if smt_on else ( g ) ) ) + ( 9 * a_m / ( g ) ) + ( ( ( 7 ) * a_n + a_o ) / ( a_l if smt_on else ( g ) ) ) ) - ( ( ( a_g * ( 10 ) * ( 1 - ( a_h / a_i ) ) ) + ( 1 - ( a_h / a_i ) ) * ( min( g , a_j ) ) ) / ( g ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - a_s / a_t ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - a_p / ( a_q ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( a_r / ( b + c + d + e ) ) ) ) * ( 1 - a_s / a_t ) , 0.0001 ) ) ) ) )", - "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_dram_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", + "BaseFormula": "100 * ( tma_memory_bound * ( ( tma_l3_miss_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_mem_latency / ( tma_mem_bandwidth + tma_mem_latency ) ) * tma_remote_cache / ( tma_local_mem + tma_remote_mem + tma_remote_cache ) + ( tma_l3_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * ( tma_contested_accesses + tma_data_sharing ) / ( tma_contested_accesses + tma_data_sharing + tma_l3_hit_latency + tma_sq_full ) + ( tma_store_bound / ( tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_l3_miss_bound + tma_store_bound ) ) * tma_false_sharing / ( ( tma_store_latency + tma_false_sharing + tma_split_stores + tma_streaming_stores + tma_dtlb_store ) - tma_store_latency ) ) + tma_machine_clears * ( 1 - tma_other_nukes / ( tma_other_nukes ) ) )", "Category": "TMA", "CountDomain": "Scaled_Slots", "Threshold": { @@ -2917,7 +2893,7 @@ "Alias": "a_f" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "a_g" }, { @@ -3001,152 +2977,148 @@ "Alias": "b_b" }, { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "b_d" }, { - "Name": "L2_RQSTS.ALL_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "b_e" }, { - "Name": "MEM_INST_RETIRED.ALL_STORES", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "b_f" }, { - "Name": "L2_RQSTS.RFO_HIT", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "b_g" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", + "Name": "MEM_INST_RETIRED.SPLIT_STORES", "Alias": "b_h" }, { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_STORE_RETIRED.L2_HIT", "Alias": "b_i" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "MEM_INST_RETIRED.LOCK_LOADS", "Alias": "b_j" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_INST_RETIRED.ALL_STORES", "Alias": "b_k" }, { - "Name": "MEM_INST_RETIRED.SPLIT_STORES", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", "Alias": "b_l" }, { - "Name": "MEM_STORE_RETIRED.L2_HIT", + "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", "Alias": "b_m" }, { - "Name": "OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002", + "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", "Alias": "b_n" }, { - "Name": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", + "Name": "OCR.STREAMING_WR.ANY_RESPONSE", "Alias": "b_o" }, { - "Name": "OCR.STREAMING_WR.ANY_RESPONSE", + "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", "Alias": "b_p" }, { - "Name": "DTLB_STORE_MISSES.STLB_HIT:c1", + "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", "Alias": "b_q" }, { - "Name": "DTLB_STORE_MISSES.WALK_ACTIVE", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", "Alias": "b_r" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD", "Alias": "b_s" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD", + "Name": "MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM", "Alias": "b_t" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM", + "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", "Alias": "b_u" }, { - "Name": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", + "Name": "MACHINE_CLEARS.MEMORY_ORDERING", "Alias": "b_v" }, { - "Name": "MACHINE_CLEARS.MEMORY_ORDERING", + "Name": "ARITH.DIV_ACTIVE", "Alias": "b_w" }, { - "Name": "ARITH.DIV_ACTIVE", + "Name": "RESOURCE_STALLS.SCOREBOARD", "Alias": "b_x" }, { - "Name": "RESOURCE_STALLS.SCOREBOARD", + "Name": "CPU_CLK_UNHALTED.C02", "Alias": "b_y" }, { - "Name": "CPU_CLK_UNHALTED.C02", + "Name": "EXE.AMX_BUSY", "Alias": "b_z" }, { "Name": "PERF_METRICS.BAD_SPECULATION", "Alias": "c" }, - { - "Name": "EXE.AMX_BUSY", - "Alias": "c_a" - }, { "Name": "EXE_ACTIVITY.EXE_BOUND_0_PORTS", - "Alias": "c_b" + "Alias": "c_a" }, { "Name": "RS.EMPTY_RESOURCE", - "Alias": "c_c" + "Alias": "c_b" }, { "Name": "CYCLE_ACTIVITY.STALLS_TOTAL", - "Alias": "c_d" + "Alias": "c_c" }, { "Name": "EXE_ACTIVITY.1_PORTS_UTIL", - "Alias": "c_e" + "Alias": "c_d" }, { "Name": "EXE_ACTIVITY.2_3_PORTS_UTIL", - "Alias": "c_f" + "Alias": "c_e" }, { "Name": "UOPS_EXECUTED.CYCLES_GE_3", - "Alias": "c_g" + "Alias": "c_f" }, { "Name": "EXE_ACTIVITY.2_PORTS_UTIL", - "Alias": "c_h" + "Alias": "c_g" }, { "Name": "PERF_METRICS.HEAVY_OPERATIONS", - "Alias": "c_i" + "Alias": "c_h" }, { "Name": "ASSISTS.ANY", - "Alias": "c_j" + "Alias": "c_i" }, { "Name": "BR_INST_RETIRED.ALL_BRANCHES", - "Alias": "c_k" + "Alias": "c_j" }, { "Name": "BR_INST_RETIRED.NEAR_CALL", - "Alias": "c_l" + "Alias": "c_k" }, { "Name": "INST_RETIRED.NOP", - "Alias": "c_m" + "Alias": "c_l" }, { "Name": "PERF_METRICS.RETIRING", @@ -3263,7 +3235,7 @@ "Alias": "threads" } ], - "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_v / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( b_i / b_j ) * b_k / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_l / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / max( ( a_a / ( b + c + d + e ) ) , ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) ) * ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) / max( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) , ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( ( 16 * max( 0 , b_d - b_e ) + ( b_d / b_f ) * ( ( 10 ) * b_g + ( min( i , b_h ) ) ) ) / ( i ) ) + ( ( b_i / b_j ) * b_k / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) / ( ( ( ( 109 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_u * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 190 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_v * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) / ( ( ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_o ) / ( i ) ) + ( b_l / ( z if smt_on else ( i ) ) ) + ( 9 * b_p / ( i ) ) + ( ( ( 7 ) * b_q + b_r ) / ( z if smt_on else ( i ) ) ) ) - ( ( ( b_m * ( 10 ) * ( 1 - ( b_d / b_f ) ) ) + ( 1 - ( b_d / b_f ) ) * ( min( i , b_h ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_x / ( i ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( c_a / ( z if smt_on else ( i ) ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) * ( ( c_g / ( i ) ) / ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) + ( c_e / ( i ) ) + ( c_h / ( i ) ) + ( c_g / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_w / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( b_y / ( i ) + ( b_z / ( i ) ) ) + c_c / ( i ) * ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) ) / ( ( b_x / ( i ) ) + ( b_y / ( i ) + ( b_z / ( i ) ) ) + ( c_a / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_b + max( c_c - b_y , 0 ) ) / ( i ) * ( c_d - a_c ) / ( i ) ) * ( i ) + ( c_e + ( d / ( b + c + d + e ) ) * c_f ) ) / ( i ) if ( b_x < ( c_d - a_c ) ) else ( c_e + ( d / ( b + c + d + e ) ) * c_f ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_i / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_j / ( g ) ) / ( r / ( g ) ) ) ) * ( c_i / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_k + 2 * c_l + c_m ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_k + 2 * c_l + c_m ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_i / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_j / ( g ) ) / ( r / ( g ) ) ) ) * ( c_i / ( b + c + d + e ) ) ) ) ) )", + "Formula": "100 - ( ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) + ( 100 * ( ( b / ( b + c + d + e ) - f / ( g ) ) - ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) - ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) ) - ( 100 * ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( h / ( i ) ) + ( j / ( i ) ) + ( k / ( i ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( 1 - ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) ) * ( ( s / ( b + c + d + e ) ) + ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_g ) ) / ( i ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( a_i + a_j ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( a_v / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_d - a_e ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_d / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_e * ( b_f / b_g ) / ( i ) ) / ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( b_h / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) / max( ( a_a / ( b + c + d + e ) ) , ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) ) * ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) / max( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) , ( ( min( ( 7 ) * a_w + a_x , max( a_y - a_z , 0 ) ) / ( i ) ) + ( 13 * b_a / ( i ) ) + ( min( 2 * ( b_b - a_r - a_s ) * dependentloadsweight / 100 , max( a_y - a_z , 0 ) ) / ( i ) ) + ( b_d / ( i ) ) + ( b_e * ( b_f / b_g ) / ( i ) ) + ( a_v / ( i ) ) ) ) ) + ( ( a_a / ( b + c + d + e ) ) * ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) / ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) ) ) ) ) + ( 100 * ( ( a_a / ( b + c + d + e ) ) * ( ( ( ( a_b / ( i ) ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) / ( ( ( min( i , a_g ) ) / ( i ) ) + ( ( min( i , a_h ) ) / ( i ) - ( ( min( i , a_g ) ) / ( i ) ) ) ) ) * ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_r + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) / ( ( ( ( 109 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_t * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 190 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_u * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_r + ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * b_s ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) + ( ( ( a_e - a_b ) / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) ) / ( ( ( ( ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_n * ( a_o / ( a_o + a_p ) ) ) + ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_q ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 79 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_t + a_n * ( 1 - ( a_o / ( a_o + a_p ) ) ) ) * ( 1 + ( a_r / a_s ) / 2 ) / ( i ) ) + ( ( ( 37 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) - ( 4.4 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) ) * ( a_u * ( 1 + ( a_r / a_s ) / 2 ) ) / ( i ) ) + ( ( a_i + a_j ) / ( i ) ) ) + ( ( a_f / ( i ) ) / ( ( max( ( a_c - a_d ) / ( i ) , 0 ) ) + ( ( a_d - a_e ) / ( i ) ) + ( ( a_e - a_b ) / ( i ) ) + ( ( a_b / ( i ) ) ) + ( a_f / ( i ) ) ) ) * ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) / ( ( ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) + ( ( ( 170 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_m + ( 81 * ( ( ( i ) / a_k ) * a_l / ( 1000000000 ) / ( ( durationtimeinmilliseconds / 1000 ) ) ) ) * b_n ) / ( i ) ) + ( b_h / ( z if smt_on else ( i ) ) ) + ( 9 * b_o / ( i ) ) + ( ( ( 7 ) * b_p + b_q ) / ( z if smt_on else ( i ) ) ) ) - ( ( ( b_i * ( 10 ) * ( 1 - ( b_j / b_k ) ) ) + ( 1 - ( b_j / b_k ) ) * ( min( i , b_l ) ) ) / ( i ) ) ) ) + ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) ) ) ) ) + ( 100 * ( ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_w / ( i ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( b_z / ( z if smt_on else ( i ) ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) * ( ( c_f / ( i ) ) / ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) + ( c_d / ( i ) ) + ( c_g / ( i ) ) + ( c_f / ( i ) ) ) ) ) ) ) + ( 100 * ( ( ( 1 - w / x ) * ( ( ( a / ( b + c + d + e ) - f / ( g ) ) ) * ( ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) * ( ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) / ( ( ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) * l / ( i ) ) + ( ( 1 - ( ( s / ( b + c + d + e ) ) / ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) ) ) * l / ( i ) ) + ( k / ( i ) ) ) ) / ( ( j / ( i ) ) + ( h / ( i ) ) + ( l / ( i ) + ( k / ( i ) ) ) + ( ( 3 ) * m / ( n / o ) / ( i ) ) + ( p / ( i ) ) + ( q / ( i ) ) ) + ( max( y , x / ( n / o ) ) / ( z if smt_on else ( i ) ) / 2.4 ) ) ) + ( 10 * ( r / ( g ) ) * ( max( ( s / ( b + c + d + e ) ) * ( 1 - t / ( u - v ) ) , 0.0001 ) ) / ( s / ( b + c + d + e ) ) ) * ( s / ( b + c + d + e ) ) + ( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) / ( ( max( ( max( 0 , ( max( 1 - ( ( b / ( b + c + d + e ) - f / ( g ) ) + ( e / ( b + c + d + e ) ) + ( d / ( b + c + d + e ) ) ) , 0 ) ) - ( s / ( b + c + d + e ) ) ) ) * ( 1 - b_v / v ) , 0.0001 ) ) ) ) + ( ( max( 0 , ( e / ( b + c + d + e ) ) - ( a_a / ( b + c + d + e ) ) ) ) * ( ( b_x / ( i ) + ( b_y / ( i ) ) ) + c_b / ( i ) * ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) ) / ( ( b_w / ( i ) ) + ( b_x / ( i ) + ( b_y / ( i ) ) ) + ( b_z / ( z if smt_on else ( i ) ) ) + ( ( ( ( c_a + max( c_b - b_x , 0 ) ) / ( i ) * ( c_c - a_c ) / ( i ) ) * ( i ) + ( c_d + ( d / ( b + c + d + e ) ) * c_e ) ) / ( i ) if ( b_w < ( c_c - a_c ) ) else ( c_d + ( d / ( b + c + d + e ) ) * c_e ) / ( i ) ) ) ) + ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_h / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_i / ( g ) ) / ( r / ( g ) ) ) ) * ( c_h / ( b + c + d + e ) ) ) ) ) + ( 100 * ( ( c_j + 2 * c_k + c_l ) / ( g ) ) ) + ( 100 * ( ( d / ( b + c + d + e ) ) - ( ( c_j + 2 * c_k + c_l ) / ( g ) ) - ( ( ( ( r / ( g ) ) / ( ( max( 0 , ( c_h / ( b + c + d + e ) ) - ( r / ( g ) ) ) ) + ( r / ( g ) ) ) ) * ( ( ( ( 99 * 3 + 63 + 30 ) / 5 ) * c_i / ( g ) ) / ( r / ( g ) ) ) ) * ( c_h / ( b + c + d + e ) ) ) ) ) )", "BaseFormula": "100 - ( tma_bottleneck_big_code + tma_bottleneck_instruction_fetch_bw + tma_bottleneck_mispredictions + tma_bottleneck_data_cache_memory_bandwidth + tma_bottleneck_data_cache_memory_latency + tma_bottleneck_memory_data_tlbs + tma_bottleneck_memory_synchronization + tma_bottleneck_compute_bound_est + tma_bottleneck_irregular_overhead + tma_bottleneck_branching_overhead + tma_bottleneck_useful_work )", "Category": "TMA", "CountDomain": "Scaled_Slots", @@ -3503,8 +3475,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3548,8 +3520,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3601,8 +3573,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Hit(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Hit(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3650,8 +3622,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_L2_Miss(%) > 5 & metric_TMA_....ICache_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_L2_Miss(%) > 5 ) & ( metric_TMA_....ICache_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3695,8 +3667,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3748,8 +3720,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Hit(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Hit(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3797,8 +3769,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3858,8 +3830,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_4K(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3919,8 +3891,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 10 & e > 15", - "BaseFormula": "metric_TMA_........Code_STLB_Miss_2M(%) > 5 & metric_TMA_......Code_STLB_Miss(%) > 5 & metric_TMA_....ITLB_Misses(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 10 ) & ( e > 15 )", + "BaseFormula": "( metric_TMA_........Code_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_......Code_STLB_Miss(%) > 5 ) & ( metric_TMA_....ITLB_Misses(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -3968,8 +3940,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4045,8 +4017,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Mispredicts_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Mispredicts_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4122,8 +4094,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Clears_Resteers(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Clears_Resteers(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4171,8 +4143,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 15", - "BaseFormula": "metric_TMA_......Unknown_Branches(%) > 5 & metric_TMA_....Branch_Resteers(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 15 )", + "BaseFormula": "( metric_TMA_......Unknown_Branches(%) > 5 ) & ( metric_TMA_....Branch_Resteers(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4224,8 +4196,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....MS_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....MS_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueMC, $issueMS, $issueMV, $issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4269,8 +4241,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....LCP(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....LCP(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4314,8 +4286,8 @@ "Value": "metric_TMA_Frontend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....DSB_Switches(%) > 5 & metric_TMA_..Fetch_Latency(%) > 10 & metric_TMA_Frontend_Bound(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....DSB_Switches(%) > 5 ) & ( metric_TMA_..Fetch_Latency(%) > 10 ) & ( metric_TMA_Frontend_Bound(%) > 15 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4429,8 +4401,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4491,8 +4463,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_......Decoder0_Alone(%) > 10 & metric_TMA_....MITE(%) > 10 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_......Decoder0_Alone(%) > 10 ) & ( metric_TMA_....MITE(%) > 10 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4549,8 +4521,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 15 & b > 20", - "BaseFormula": "metric_TMA_....DSB(%) > 15 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 15 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....DSB(%) > 15 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4615,8 +4587,8 @@ "Value": "metric_TMA_..Fetch_Bandwidth(%)" } ], - "Formula": "a > 5 & b > 20", - "BaseFormula": "metric_TMA_....MS(%) > 5 & metric_TMA_..Fetch_Bandwidth(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_....MS(%) > 5 ) & ( metric_TMA_..Fetch_Bandwidth(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4720,8 +4692,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueBM" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4789,8 +4761,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Mispredicts(%) > 5 & metric_TMA_..Branch_Mispredicts(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Mispredicts(%) > 5 ) & ( metric_TMA_..Branch_Mispredicts(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4850,8 +4822,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 10 & b > 15", - "BaseFormula": "metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 10 ) & ( b > 15 )", + "BaseFormula": "( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "$issueMC, $issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -4923,8 +4895,8 @@ "Value": "metric_TMA_Bad_Speculation(%)" } ], - "Formula": "a > 5 & b > 10 & c > 15", - "BaseFormula": "metric_TMA_....Other_Nukes(%) > 5 & metric_TMA_..Machine_Clears(%) > 10 & metric_TMA_Bad_Speculation(%) > 15", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 15 )", + "BaseFormula": "( metric_TMA_....Other_Nukes(%) > 5 ) & ( metric_TMA_..Machine_Clears(%) > 10 ) & ( metric_TMA_Bad_Speculation(%) > 15 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5020,8 +4992,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20", - "BaseFormula": "metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5069,8 +5041,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1, $issueMC" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5130,8 +5102,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5195,8 +5167,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5248,8 +5220,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5317,8 +5289,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_4K(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5386,8 +5358,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_2M(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5455,8 +5427,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 10 & d > 10 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Load_STLB_Miss_1G(%) > 5 & metric_TMA_........Load_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Load(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 10 ) & ( d > 10 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Load_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Load_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Load(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5504,8 +5476,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Fwd_Blk(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Fwd_Blk(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5574,8 +5546,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L1_Latency_Dependency(%) > 10 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L1_Latency_Dependency(%) > 10 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5591,33 +5563,17 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "MEM_INST_RETIRED.LOCK_LOADS", + "Name": "LOCK_CYCLES.CACHE_LOCK_DURATION", "Alias": "a" }, - { - "Name": "L2_RQSTS.ALL_RFO", - "Alias": "b" - }, - { - "Name": "MEM_INST_RETIRED.ALL_STORES", - "Alias": "c" - }, - { - "Name": "L2_RQSTS.RFO_HIT", - "Alias": "d" - }, { "Name": "CPU_CLK_UNHALTED.THREAD", - "Alias": "e" - }, - { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO", - "Alias": "f" + "Alias": "b" } ], "Constants": [], - "Formula": "100 * ( ( 16 * max( 0 , a - b ) + ( a / c ) * ( ( 10 ) * d + ( min( e , f ) ) ) ) / ( e ) )", - "BaseFormula": "( 16 * max( 0 , mem_inst_retired.lock_loads - l2_rqsts.all_rfo ) + ( mem_inst_retired.lock_loads / mem_inst_retired.all_stores ) * ( ( 10 ) * l2_rqsts.rfo_hit + ( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.cycles_with_demand_rfo ) ) ) ) / tma_info_thread_clks", + "Formula": "100 * ( a / ( b ) )", + "BaseFormula": "lock_cycles.cache_lock_duration / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks", "Threshold": { @@ -5639,8 +5595,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Lock_Latency(%) > 20 & metric_TMA_....L1_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Lock_Latency(%) > 20 ) & ( metric_TMA_....L1_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5656,15 +5612,15 @@ "UnitOfMeasure": "percent", "Events": [ { - "Name": "L1D_PEND_MISS.PENDING", + "Name": "MEM_INST_RETIRED.SPLIT_LOADS", "Alias": "a" }, { - "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "Name": "L1D_PEND_MISS.PENDING", "Alias": "b" }, { - "Name": "LD_BLOCKS.NO_SR", + "Name": "MEM_LOAD_COMPLETED.L1_MISS_ANY", "Alias": "c" }, { @@ -5673,8 +5629,8 @@ } ], "Constants": [], - "Formula": "100 * ( ( a / b ) * c / ( d ) )", - "BaseFormula": "tma_info_memory_load_miss_real_latency * ld_blocks.no_sr / tma_info_thread_clks", + "Formula": "100 * ( a * ( b / c ) / ( d ) )", + "BaseFormula": "mem_inst_retired.split_loads * tma_info_memory_load_miss_real_latency / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks_Calculated", "Threshold": { @@ -5770,8 +5726,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5840,8 +5796,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L2_Hit_Latency(%) > 5 & metric_TMA_....L2_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L2_Hit_Latency(%) > 5 ) & ( metric_TMA_....L2_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5889,8 +5845,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5971,8 +5927,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Contested_Accesses(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Contested_Accesses(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -5984,7 +5940,7 @@ "LegacyName": "metric_TMA_......Data_Sharing(%)", "ParentCategory": "L3_Bound", "Level": 4, - "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", + "BriefDescription": "This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to L3 data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.", "UnitOfMeasure": "percent", "Events": [ { @@ -6053,8 +6009,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Data_Sharing(%) > 5 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Data_Sharing(%) > 5 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6123,8 +6079,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......L3_Hit_Latency(%) > 10 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......L3_Hit_Latency(%) > 10 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6176,8 +6132,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 30 & b > 5 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......SQ_Full(%) > 30 & metric_TMA_....L3_Bound(%) > 5 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 30 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......SQ_Full(%) > 30 ) & ( metric_TMA_....L3_Bound(%) > 5 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6185,8 +6141,8 @@ "LocateWith": "" }, { - "MetricName": "DRAM_Bound", - "LegacyName": "metric_TMA_....DRAM_Bound(%)", + "MetricName": "L3_Miss_Bound", + "LegacyName": "metric_TMA_....L3_Miss_Bound(%)", "ParentCategory": "Memory_Bound", "Level": 3, "BriefDescription": "This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.", @@ -6210,7 +6166,7 @@ "ThresholdMetrics": [ { "Alias": "a", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "b", @@ -6221,18 +6177,18 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "MemoryBound;TmaL3mem", + "MetricGroup": "MemoryBound;TmaL3mem;Offcore", "LocateWith": "MEM_LOAD_RETIRED.L3_MISS" }, { "MetricName": "MEM_Bandwidth", "LegacyName": "metric_TMA_......MEM_Bandwidth(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6242,13 +6198,13 @@ "Alias": "a" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "b" } ], "Constants": [], "Formula": "100 * ( ( min( a , b ) ) / ( a ) )", - "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.all_data_rd:c4 ) ) / tma_info_thread_clks", + "BaseFormula": "( min( cpu_clk_unhalted.thread , offcore_requests_outstanding.all_data_rd:c12 ) ) / tma_info_thread_clks", "Category": "TMA", "CountDomain": "Clocks", "Threshold": { @@ -6259,7 +6215,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6270,8 +6226,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueBW" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6312,7 +6268,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6323,8 +6279,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........MBA_Stalls(%) > 10 & metric_TMA_......MEM_Bandwidth(%) > 20 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........MBA_Stalls(%) > 10 ) & ( metric_TMA_......MEM_Bandwidth(%) > 20 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6334,7 +6290,7 @@ { "MetricName": "MEM_Latency", "LegacyName": "metric_TMA_......MEM_Latency(%)", - "ParentCategory": "DRAM_Bound", + "ParentCategory": "L3_Miss_Bound", "Level": 4, "BriefDescription": "This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).", "UnitOfMeasure": "percent", @@ -6348,7 +6304,7 @@ "Alias": "b" }, { - "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4", + "Name": "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12", "Alias": "c" } ], @@ -6365,7 +6321,7 @@ }, { "Alias": "b", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "c", @@ -6376,8 +6332,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueLat" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6439,7 +6395,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6450,8 +6406,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Local_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Local_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6513,7 +6469,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6524,8 +6480,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_MEM(%) > 10 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_MEM(%) > 10 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6591,7 +6547,7 @@ }, { "Alias": "c", - "Value": "metric_TMA_....DRAM_Bound(%)" + "Value": "metric_TMA_....L3_Miss_Bound(%)" }, { "Alias": "d", @@ -6602,8 +6558,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Remote_Cache(%) > 5 & metric_TMA_......MEM_Latency(%) > 10 & metric_TMA_....DRAM_Bound(%) > 10 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Remote_Cache(%) > 5 ) & ( metric_TMA_......MEM_Latency(%) > 10 ) & ( metric_TMA_....L3_Miss_Bound(%) > 10 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6647,8 +6603,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20", - "BaseFormula": "metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6708,8 +6664,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Store_Latency(%) > 10 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Store_Latency(%) > 10 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueRFO, $issueSL, ~overlap" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6774,8 +6730,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......False_Sharing(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......False_Sharing(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSyncxn" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6836,8 +6792,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Split_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Split_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSpSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6885,8 +6841,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......Streaming_Stores(%) > 20 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Streaming_Stores(%) > 20 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSmSt" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -6951,8 +6907,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 20 & c > 20 & d > 20", - "BaseFormula": "metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 20 ) & ( c > 20 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueTLB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7021,8 +6977,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Hit(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Hit(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7087,8 +7043,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 20 & d > 20 & e > 20", - "BaseFormula": "metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 20 ) & ( d > 20 ) & ( e > 20 )", + "BaseFormula": "( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7169,8 +7125,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_4K(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_4K(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7251,8 +7207,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_2M(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_2M(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7333,8 +7289,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 5 & c > 5 & d > 20 & e > 20 & f > 20", - "BaseFormula": "metric_TMA_..........Store_STLB_Miss_1G(%) > 5 & metric_TMA_........Store_STLB_Miss(%) > 5 & metric_TMA_......DTLB_Store(%) > 5 & metric_TMA_....Store_Bound(%) > 20 & metric_TMA_..Memory_Bound(%) > 20 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 5 ) & ( c > 5 ) & ( d > 20 ) & ( e > 20 ) & ( f > 20 )", + "BaseFormula": "( metric_TMA_..........Store_STLB_Miss_1G(%) > 5 ) & ( metric_TMA_........Store_STLB_Miss(%) > 5 ) & ( metric_TMA_......DTLB_Store(%) > 5 ) & ( metric_TMA_....Store_Bound(%) > 20 ) & ( metric_TMA_..Memory_Bound(%) > 20 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7386,8 +7342,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 20", - "BaseFormula": "metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 20 )", + "BaseFormula": "( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7431,8 +7387,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7480,8 +7436,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......FP_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......FP_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7533,8 +7489,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 20 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......INT_Divider(%) > 20 & metric_TMA_....Divider(%) > 20 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 20 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......INT_Divider(%) > 20 ) & ( metric_TMA_....Divider(%) > 20 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7582,8 +7538,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueSO" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7631,8 +7587,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Slow_Pause(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Slow_Pause(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7680,8 +7636,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C01_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C01_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7729,8 +7685,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......C02_Wait(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......C02_Wait(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7778,8 +7734,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 5 & b > 10 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Memory_Fence(%) > 5 & metric_TMA_....Serializing_Operation(%) > 10 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 5 ) & ( b > 10 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Memory_Fence(%) > 5 ) & ( metric_TMA_....Serializing_Operation(%) > 10 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7836,8 +7792,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 50 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....AMX_Busy(%) > 50 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 50 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....AMX_Busy(%) > 50 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7925,8 +7881,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 10 & c > 20", - "BaseFormula": "metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 10 ) & ( c > 20 )", + "BaseFormula": "( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -7990,8 +7946,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_0(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_0(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8076,8 +8032,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 20 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_1(%) > 20 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 20 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_1(%) > 20 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issueL1" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8125,8 +8081,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 15 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_2(%) > 15 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 15 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_2(%) > 15 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8174,8 +8130,8 @@ "Value": "metric_TMA_Backend_Bound(%)" } ], - "Formula": "a > 40 & b > 15 & c > 10 & d > 20", - "BaseFormula": "metric_TMA_......Ports_Utilized_3m(%) > 40 & metric_TMA_....Ports_Utilization(%) > 15 & metric_TMA_..Core_Bound(%) > 10 & metric_TMA_Backend_Bound(%) > 20", + "Formula": "( a > 40 ) & ( b > 15 ) & ( c > 10 ) & ( d > 20 )", + "BaseFormula": "( metric_TMA_......Ports_Utilized_3m(%) > 40 ) & ( metric_TMA_....Ports_Utilization(%) > 15 ) & ( metric_TMA_..Core_Bound(%) > 10 ) & ( metric_TMA_Backend_Bound(%) > 20 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8538,8 +8494,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 70 | b > 10", - "BaseFormula": "metric_TMA_Retiring(%) > 70 | metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 70 ) | ( b > 10 )", + "BaseFormula": "( metric_TMA_Retiring(%) > 70 ) | ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8664,8 +8620,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 20 & b > 60", - "BaseFormula": "metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 20 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8725,8 +8681,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......X87_Use(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......X87_Use(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8790,8 +8746,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Scalar(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Scalar(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8855,8 +8811,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 20 & c > 60", - "BaseFormula": "metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 20 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -8928,8 +8884,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_128b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_128b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9001,8 +8957,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_256b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_256b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9074,8 +9030,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 20 & d > 60", - "BaseFormula": "metric_TMA_........FP_Vector_512b(%) > 10 & metric_TMA_......FP_Vector(%) > 10 & metric_TMA_....FP_Arith(%) > 20 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 20 ) & ( d > 60 )", + "BaseFormula": "( metric_TMA_........FP_Vector_512b(%) > 10 ) & ( metric_TMA_......FP_Vector(%) > 10 ) & ( metric_TMA_....FP_Arith(%) > 20 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9147,8 +9103,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9212,8 +9168,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_128b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_128b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9281,8 +9237,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 10 & c > 60", - "BaseFormula": "metric_TMA_......Int_Vector_256b(%) > 10 & metric_TMA_....Int_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 10 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Int_Vector_256b(%) > 10 ) & ( metric_TMA_....Int_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "$issue2P" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9342,8 +9298,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Memory_Operations(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Memory_Operations(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9403,8 +9359,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Fused_Instructions(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Fused_Instructions(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9468,8 +9424,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 60", - "BaseFormula": "metric_TMA_....Non_Fused_Branches(%) > 10 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Non_Fused_Branches(%) > 10 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9581,8 +9537,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 30 & b > 60", - "BaseFormula": "metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 30 ) & ( b > 60 )", + "BaseFormula": "( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9646,8 +9602,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Nop_Instructions(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Nop_Instructions(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9711,8 +9667,8 @@ "Value": "metric_TMA_..Light_Operations(%)" } ], - "Formula": "a > 10 & b > 30 & c > 60", - "BaseFormula": "metric_TMA_......Shuffles_256b(%) > 10 & metric_TMA_....Other_Light_Ops(%) > 30 & metric_TMA_..Light_Operations(%) > 60", + "Formula": "( a > 10 ) & ( b > 30 ) & ( c > 60 )", + "BaseFormula": "( metric_TMA_......Shuffles_256b(%) > 10 ) & ( metric_TMA_....Other_Light_Ops(%) > 30 ) & ( metric_TMA_..Light_Operations(%) > 60 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9821,8 +9777,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Few_Uops_Instructions(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Few_Uops_Instructions(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueD0" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9862,8 +9818,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 5 & b > 10", - "BaseFormula": "metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 5 ) & ( b > 10 )", + "BaseFormula": "( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "$issueMC, $issueMS" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -9907,8 +9863,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......Assists(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......Assists(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -10067,8 +10023,8 @@ "Value": "metric_TMA_..Heavy_Operations(%)" } ], - "Formula": "a > 10 & b > 5 & c > 10", - "BaseFormula": "metric_TMA_......CISC(%) > 10 & metric_TMA_....Microcode_Sequencer(%) > 5 & metric_TMA_..Heavy_Operations(%) > 10", + "Formula": "( a > 10 ) & ( b > 5 ) & ( c > 10 )", + "BaseFormula": "( metric_TMA_......CISC(%) > 10 ) & ( metric_TMA_....Microcode_Sequencer(%) > 5 ) & ( metric_TMA_..Heavy_Operations(%) > 10 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -11096,7 +11052,7 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Flops;FpScalar;InsType;Server", + "MetricGroup": "Flops;FpScalar;InsType", "LocateWith": "" }, { @@ -11303,6 +11259,42 @@ "MetricGroup": "Flops;FpVector;InsType", "LocateWith": "" }, + { + "MetricName": "Info_Inst_Mix_VectorMixPKI", + "LegacyName": "metric_TMA_Info_Inst_Mix_VectorMixPKI", + "Level": 1, + "BriefDescription": "AVX preserve/restore assists per kilo instruction", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "ASSISTS.SSE_AVX_MIX", + "Alias": "a" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "b" + } + ], + "Constants": [], + "Formula": "1000 * a / b", + "BaseFormula": "1000 * assists.sse_avx_mix / inst_retired.any", + "Category": "TMA", + "CountDomain": "Inst_Metric", + "Threshold": { + "ThresholdMetrics": [ + { + "Alias": "a", + "Value": "metric_TMA_Info_Inst_Mix_VectorMixPKI" + } + ], + "Formula": "a > 0.05", + "BaseFormula": "metric_TMA_Info_Inst_Mix_VectorMixPKI > 0.05", + "ThresholdIssues": "$issueMV" + }, + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "", + "LocateWith": "" + }, { "MetricName": "Info_Inst_Mix_IpPause", "LegacyName": "metric_TMA_Info_Inst_Mix_IpPause", @@ -11658,13 +11650,17 @@ "Alias": "a" }, { - "Name": "UOPS_ISSUED.ANY", + "Name": "IDQ.MITE_UOPS", "Alias": "b" + }, + { + "Name": "IDQ.MS_UOPS", + "Alias": "c" } ], "Constants": [], - "Formula": "a / ( b )", - "BaseFormula": "idq.dsb_uops / ( uops_issued.any )", + "Formula": "a / ( a + b + c )", + "BaseFormula": "idq.dsb_uops / ( idq.dsb_uops + idq.mite_uops + idq.ms_uops )", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -11678,8 +11674,8 @@ "Value": "metric_TMA_Info_Thread_IPC" } ], - "Formula": "a < 0.7 & b / 6 > 0.35", - "BaseFormula": "metric_TMA_Info_Frontend_DSB_Coverage < 0.7 & metric_TMA_Info_Thread_IPC / 6 > 0.35", + "Formula": "( a < 0.7 ) & ( b / 6 > 0.35 )", + "BaseFormula": "( metric_TMA_Info_Frontend_DSB_Coverage < 0.7 ) & ( metric_TMA_Info_Thread_IPC / 6 > 0.35 )", "ThresholdIssues": "$issueFB" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -12859,14 +12855,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L1MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", + "MetricName": "Info_Memory_L2MPKI", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI", "Level": 1, - "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", + "Name": "MEM_LOAD_RETIRED.L2_MISS", "Alias": "a" }, { @@ -12876,7 +12872,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12885,18 +12881,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "Mem;Backend;CacheHits", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI", + "MetricName": "Info_Memory_L3MPKI", + "LegacyName": "metric_TMA_Info_Memory_L3MPKI", "Level": 1, - "BriefDescription": "L2 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L2_MISS", + "Name": "MEM_LOAD_RETIRED.L3_MISS", "Alias": "a" }, { @@ -12906,7 +12902,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l2_miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12915,18 +12911,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem;Backend;CacheHits", + "MetricGroup": "Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", + "MetricName": "Info_Memory_FB_HPKI", + "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", + "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.MISS", + "Name": "MEM_LOAD_RETIRED.FB_HIT", "Alias": "a" }, { @@ -12936,7 +12932,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", + "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12945,18 +12941,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem;Offcore", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", + "MetricName": "Info_Memory_L1MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L1MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "L1 cache true misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", + "Name": "L2_RQSTS.ALL_DEMAND_DATA_RD", "Alias": "a" }, { @@ -12966,7 +12962,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.all_demand_data_rd / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -12979,14 +12975,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2MPKI_RFO", - "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", + "MetricName": "Info_Memory_L2MPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_All", "Level": 1, - "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.RFO_MISS", + "Name": "L2_RQSTS.MISS", "Alias": "a" }, { @@ -12996,7 +12992,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13005,32 +13001,28 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheMisses;Offcore", + "MetricGroup": "CacheHits;Mem;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_All", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", + "MetricName": "Info_Memory_L2MPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_Load", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", + "BriefDescription": "L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.REFERENCES", + "Name": "L2_RQSTS.DEMAND_DATA_RD_MISS", "Alias": "a" }, - { - "Name": "L2_RQSTS.MISS", - "Alias": "b" - }, { "Name": "INST_RETIRED.ANY", - "Alias": "c" + "Alias": "b" } ], "Constants": [], - "Formula": "1000 * ( a - b ) / c", - "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", + "Formula": "1000 * a / b", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13043,14 +13035,14 @@ "LocateWith": "" }, { - "MetricName": "Info_Memory_L2HPKI_Load", - "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", + "MetricName": "Info_Memory_L2MPKI_RFO", + "LegacyName": "metric_TMA_Info_Memory_L2MPKI_RFO", "Level": 1, - "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", + "BriefDescription": "Offcore requests (L2 cache miss) per kilo instruction for demand RFOs", "UnitOfMeasure": "", "Events": [ { - "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", + "Name": "L2_RQSTS.RFO_MISS", "Alias": "a" }, { @@ -13060,7 +13052,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.rfo_miss / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13069,28 +13061,32 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "CacheHits;Mem", + "MetricGroup": "CacheMisses;Offcore", "LocateWith": "" }, { - "MetricName": "Info_Memory_L3MPKI", - "LegacyName": "metric_TMA_Info_Memory_L3MPKI", + "MetricName": "Info_Memory_L2HPKI_All", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_All", "Level": 1, - "BriefDescription": "L3 cache true misses per kilo instruction for retired demand loads", + "BriefDescription": "L2 cache hits per kilo instruction for all request types (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.L3_MISS", + "Name": "L2_RQSTS.REFERENCES", "Alias": "a" }, { - "Name": "INST_RETIRED.ANY", + "Name": "L2_RQSTS.MISS", "Alias": "b" + }, + { + "Name": "INST_RETIRED.ANY", + "Alias": "c" } ], "Constants": [], - "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.l3_miss / inst_retired.any", + "Formula": "1000 * ( a - b ) / c", + "BaseFormula": "1000 * ( l2_rqsts.references - l2_rqsts.miss ) / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -13099,18 +13095,18 @@ "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", - "MetricGroup": "Mem", + "MetricGroup": "CacheHits;Mem", "LocateWith": "" }, { - "MetricName": "Info_Memory_FB_HPKI", - "LegacyName": "metric_TMA_Info_Memory_FB_HPKI", + "MetricName": "Info_Memory_L2HPKI_Load", + "LegacyName": "metric_TMA_Info_Memory_L2HPKI_Load", "Level": 1, - "BriefDescription": "Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries)", + "BriefDescription": "L2 cache hits per kilo instruction for all demand loads (including speculative)", "UnitOfMeasure": "", "Events": [ { - "Name": "MEM_LOAD_RETIRED.FB_HIT", + "Name": "L2_RQSTS.DEMAND_DATA_RD_HIT", "Alias": "a" }, { @@ -13120,7 +13116,7 @@ ], "Constants": [], "Formula": "1000 * a / b", - "BaseFormula": "1000 * mem_load_retired.fb_hit / inst_retired.any", + "BaseFormula": "1000 * l2_rqsts.demand_data_rd_hit / inst_retired.any", "Category": "TMA", "CountDomain": "Metric", "Threshold": { @@ -14002,37 +13998,6 @@ "MetricGroup": "Summary;Power", "LocateWith": "" }, - { - "MetricName": "Info_System_Uncore_Frequency", - "LegacyName": "metric_TMA_Info_System_Uncore_Frequency", - "Level": 1, - "BriefDescription": "Measured Average Uncore Frequency for the SoC [GHz]", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "UNC_CHA_CLOCKTICKS:one_unit", - "Alias": "a" - } - ], - "Constants": [ - { - "Name": "DURATIONTIMEINMILLISECONDS", - "Alias": "durationtimeinmilliseconds" - } - ], - "Formula": "( a ) / 1e9 / ( ( durationtimeinmilliseconds / 1000 ) )", - "BaseFormula": "tma_info_system_socket_clks / 1e9 / tma_info_system_time", - "Category": "TMA", - "CountDomain": "System_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "SOCKET, SYSTEM", - "MetricGroup": "SoC", - "LocateWith": "" - }, { "MetricName": "Info_System_GFLOPs", "LegacyName": "metric_TMA_Info_System_GFLOPs", @@ -14130,45 +14095,6 @@ "MetricGroup": "Power", "LocateWith": "" }, - { - "MetricName": "Info_System_SMT_2T_Utilization", - "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", - "Level": 1, - "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", - "UnitOfMeasure": "", - "Events": [ - { - "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", - "Alias": "a" - }, - { - "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", - "Alias": "b" - } - ], - "Constants": [ - { - "Name": "HYPERTHREADING_ON", - "Alias": "smt_on" - }, - { - "Name": "THREADS_PER_CORE", - "Alias": "threads" - } - ], - "Formula": "1 - a / b if smt_on else 0", - "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", - "Category": "TMA", - "CountDomain": "Core_Metric", - "Threshold": { - "Formula": "", - "BaseFormula": "", - "ThresholdIssues": "" - }, - "ResolutionLevels": "CORE, SOCKET, SYSTEM", - "MetricGroup": "SMT", - "LocateWith": "" - }, { "MetricName": "Info_System_Kernel_Utilization", "LegacyName": "metric_TMA_Info_System_Kernel_Utilization", @@ -14596,8 +14522,8 @@ "Value": "metric_TMA_Info_System_MUX" } ], - "Formula": "a > 1.1 | a < 0.9", - "BaseFormula": "metric_TMA_Info_System_MUX > 1.1 | metric_TMA_Info_System_MUX < 0.9", + "Formula": "( a > 1.1 ) | ( a < 0.9 )", + "BaseFormula": "( metric_TMA_Info_System_MUX > 1.1 ) | ( metric_TMA_Info_System_MUX < 0.9 )", "ThresholdIssues": "" }, "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", @@ -14666,6 +14592,45 @@ "MetricGroup": "Branches;OS", "LocateWith": "" }, + { + "MetricName": "Info_System_SMT_2T_Utilization", + "LegacyName": "metric_TMA_Info_System_SMT_2T_Utilization", + "Level": 1, + "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", + "UnitOfMeasure": "", + "Events": [ + { + "Name": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", + "Alias": "a" + }, + { + "Name": "CPU_CLK_UNHALTED.REF_DISTRIBUTED", + "Alias": "b" + } + ], + "Constants": [ + { + "Name": "HYPERTHREADING_ON", + "Alias": "smt_on" + }, + { + "Name": "THREADS_PER_CORE", + "Alias": "threads" + } + ], + "Formula": "1 - a / b if smt_on else 0", + "BaseFormula": "1 - cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_distributed if smt_on else 0", + "Category": "TMA", + "CountDomain": "Core_Metric", + "Threshold": { + "Formula": "", + "BaseFormula": "", + "ThresholdIssues": "" + }, + "ResolutionLevels": "CORE, SOCKET, SYSTEM", + "MetricGroup": "SMT", + "LocateWith": "" + }, { "MetricName": "Info_Memory_SoC_R2C_Offcore_BW", "LegacyName": "metric_TMA_Info_Memory_SoC_R2C_Offcore_BW", diff --git a/mapfile.csv b/mapfile.csv index 6a39bebd..5171b322 100644 --- a/mapfile.csv +++ b/mapfile.csv @@ -142,7 +142,7 @@ GenuineIntel-6-8D,V1.1,/TGL/metrics/tigerlake_metrics.json,metrics,,, GenuineIntel-6-8F,V1.39,/SPR/events/sapphirerapids_core.json,core,,, GenuineIntel-6-8F,V1.39,/SPR/events/sapphirerapids_uncore.json,uncore,,, GenuineIntel-6-8F,V1.39,/SPR/events/sapphirerapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-8F,V1.2,/SPR/metrics/sapphirerapids_metrics.json,metrics,,, +GenuineIntel-6-8F,V1.3,/SPR/metrics/sapphirerapids_metrics.json,metrics,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_core.json,core,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_uncore.json,uncore,,, GenuineIntel-6-CF,V1.24,/EMR/events/emeraldrapids_uncore_experimental.json,uncore experimental,,, From f9358e8da04bec945d8023e3f9b20a887ad46c45 Mon Sep 17 00:00:00 2001 From: Ed Baker Date: Mon, 8 Jun 2026 15:15:05 -0700 Subject: [PATCH 5/5] TMA: Release v5.2 Update TMA spreadsheets to v5.2. --- TMA_Metrics-full.csv | 792 +++++++++++++++++++++--------------------- TMA_Metrics-full.xlsx | Bin 243848 -> 172028 bytes 2 files changed, 396 insertions(+), 396 deletions(-) mode change 100644 => 100755 TMA_Metrics-full.xlsx diff --git a/TMA_Metrics-full.csv b/TMA_Metrics-full.csv index b24bdbe3..65540493 100755 --- a/TMA_Metrics-full.csv +++ b/TMA_Metrics-full.csv @@ -1,396 +1,396 @@ -TMA,Version,5.1-full,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5.0730-full,,,full,full,full;bot;,full,full,full,full -.,,,Confidential,,,,,Server,,Server,Server,Server,,,,Server,,Server,Server,,Server,,Server,,Server,,Server,,Server,,,,,,,,,,,;bot;EDP;perf,,,, -Key,Level1,Level2,Level3,Level4,Level5,Level6,LNL/ARL,GNR,MTL,EMR,SPR-HBM,SPR,ADL/RPL,TGL,RKL,ICX,ICL,CPX,CLX,KBLR/CFL/CML,SKX,SKL/KBL,BDX,BDW,HSX,HSW,IVT,IVB,JKT/SNB-EP,SNB,Locate-with,Count Domain,Metric Description,Threshold,Version,Metric Group,Metric Max,flavor,level,Tool;bot;,ToolAlias,Attribute,Tuning Hint,Link -Bottleneck,Mispredictions,,,,,,,,,,,,,,,,,,,,,100 * ( 1 - #Umisp ) * ( Branch_Mispredicts + Fetch_Latency * Mispredicts_Resteers / ##Fetch_Latency ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Branch Misprediction related bottlenecks,> 20; $issueBM,4.7,Bad;BadSpec;BrMispredicts;BvMP,,pub/v4.3,0,;bot;EDP;perf,,InTree,, -Bottleneck,Big_Code,,,,,,,,,,,,,,,,,,,,,100 * Fetch_Latency * ( ITLB_Misses + ICache_Misses + Unknown_Branches ) / ##Fetch_Latency,,,,,,,,,,Scaled_Slots,Total pipeline cost of instruction fetch related bottlenecks by large code footprint programs (i-side cache; TLB and BTB misses),> 20,4.6,BvBC;BigFootprint;Fed;Frontend;IcMiss;MemoryTLB,,pub/v4.3,0,;bot;EDP;perf,,InTree,, -Bottleneck,Instruction_Fetch_BW,,,,,,,,,,,,,,,,,,,,,100 * ( Frontend_Bound - ( 1 - #Umisp ) * Fetch_Latency * Mispredicts_Resteers / ##Fetch_Latency - #Assist_Frontend ) - Big_Code,,,,,,,,,,Scaled_Slots,Total pipeline cost of instruction fetch bandwidth related bottlenecks (when the front-end could not sustain operations delivery to the back-end),> 20,5.1,BvFB;Fed;FetchBW;Frontend,,pub/v4.3,0,;bot;EDP;perf,,Tree+#Repeat_Fraction,, -Bottleneck,Data_Cache_Memory_Bandwidth,,,,,,,100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##DRAM_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ),,,( 100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##DRAM_Bound ) ) + ( Memory_Bound * HBM_Bound / ##Memory_Bound ) * MEM_Bandwidth / ##DRAM_Bound + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ) ),,,,,,,,,,,100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##DRAM_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of external Memory- or Cache-Bandwidth related bottlenecks,> 20; $issueBW,4.9,BvMB;Mem;MemoryBW;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, -Bottleneck,Data_Cache_Memory_Latency,,,,,,100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Latency / ##DRAM_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Capacity / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,,100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Latency / ##DRAM_Bound ) ) + ( Memory_Bound * HBM_Bound / ##Memory_Bound ) * MEM_Latency / ##DRAM_Bound + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,,,,,,,,,100 * ( ( Memory_Bound * ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Latency / ##DRAM_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of external Memory- or Cache-Latency related bottlenecks,> 20; $issueLat,5.0,BvML;Mem;MemoryLat;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, -Bottleneck,Memory_Data_TLBs,,,,,,,,100 * ( ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( DTLB_Load / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( DTLB_Store / ##Store_Bound ) ) ),,,,,,,,,,,,,"100 * ( Memory_Bound * ( L1_Bound / max( Memory_Bound , ##Memory_Bound ) ) * ( DTLB_Load / max( L1_Bound , ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( DTLB_Store / ##Store_Bound ) ) ) ",,,,,,,,,,Scaled_Slots,Total pipeline cost of Memory Address Translation related bottlenecks (data-side TLBs),> 20; $issueTLB,5.0,BvMT;Mem;MemoryTLB;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, -Bottleneck,Memory_Synchronization,,,,,,,,,,,,,,,,,,,,100 * ( Memory_Bound * ( ( DRAM_Bound / ##Memory_Bound ) * ( MEM_Latency / ##DRAM_Bound ) * Remote_Cache / ##MEM_Latency + ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ) if #DS else 100 * ( Memory_Bound * ( ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ),100 * ( Memory_Bound * ( ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Memory Synchronization related bottlenecks (data transfers and coherency updates across processors),> 10; $issueSyncxn,5.0,BvMS;LockCont;Mem;Offcore,,pub/5.0,0,;bot;EDP;perf,,,, -Bottleneck,Compute_Bound_Est,,,,,,,,,,,100 * ( ( Core_Bound * Divider / ##Core_Bound ) + ( Core_Bound * AMX_Busy / ##Core_Bound ) + ( Core_Bound * ( Ports_Utilization / ##Core_Bound ) * ( Ports_Utilized_3m / ##Ports_Utilization ) ) ),,,,,,,,,,100 * ( ( Core_Bound * Divider / ##Core_Bound ) + ( Core_Bound * ( Ports_Utilization / ##Core_Bound ) * ( Ports_Utilized_3m / ##Ports_Utilization ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost when the execution is compute-bound - an estimation. Covers Core Bound when High ILP as well as when long-latency execution units are busy.,> 20; $issueComp,4.8,BvCB;Cor,,pub/5.0,0,;bot;EDP;perf,,Tree+ILP,, -Bottleneck,Irregular_Overhead,,,,,,,,,,,,,,,,,,,,,100 * ( #Assist_Frontend + #Umisp * Branch_Mispredicts + ( Machine_Clears * Other_Nukes / ##Machine_Clears ) + #Serialize_Core + #Assist_Retired ),,,,,,,,,,Scaled_Slots,"Total pipeline cost of irregular execution (e.g. FP-assists in HPC, Wait time with work imbalance multithreaded workloads, overhead in system services or virtualized environments)",> 10; $issueMS,5.1,Bad;BvIO;Cor;Ret,,pub/5.0,0,;bot;EDP;perf,,Tree+#Repeat_Fraction,, -Bottleneck,Other_Bottlenecks,,,,,,,,,,,,,,,,,,,,,100 - ( Big_Code + Instruction_Fetch_BW + Mispredictions + Data_Cache_Memory_Bandwidth + Data_Cache_Memory_Latency + Memory_Data_TLBs + Memory_Synchronization + Compute_Bound_Est + Irregular_Overhead + Branching_Overhead + Useful_Work ) ,,,,,,,,,,Scaled_Slots,Total pipeline cost of remaining bottlenecks in the back-end. Examples include data-dependencies (Core Bound when Low ILP) and other unlisted memory-related stalls.,> 20,5.0,BvOB;Cor;Offcore,,pub/5.0,0,;bot;EDP;perf,,,, -Bottleneck,Branching_Overhead,,,,,,,,,,,,,,,,,,,,,100 * #Branching_Retired,,,,,,,,,,Scaled_Slots,Total pipeline cost of instructions used for program control-flow - a subset of the Retiring category in TMA. Examples include function calls; loops and alignments. (A lower bound),> 5,4.8,BvBO;Ret,,pub/5.0,0,;bot;EDP;perf,,Tree+#Branching_Retired,Consider Loop Unrolling or function inlining optimizations, -Bottleneck,Useful_Work,,,,,,,,,,,,,,,,,,,,,100 * ( Retiring - #Branching_Retired - #Assist_Retired ),,,,,,,,,,Scaled_Slots,"Total pipeline cost of ""useful operations"" - the portion of Retiring category not covered by Branching_Overhead nor Irregular_Overhead.",> 20,4.8,BvUW;Ret,,pub/5.0,0,;bot;EDP;perf,,InTree,, -.,tree,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,5.0,,,pub,-,;bot;,,,, -FE,Frontend_Bound,,,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else IDQ_BUBBLES.CORE / SLOTS,,,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS if #PERF_METRICS_MSR else ( IDQ_BUBBLES.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS if #PERF_METRICS_MSR else ( IDQ_UOPS_NOT_DELIVERED.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,,,,,,,,,,IDQ_UOPS_NOT_DELIVERED.CORE / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/LNL ? #NA : FRONTEND_RETIRED.LATENCY_GE_4_PS,Slots,This category represents fraction of slots where the processor's Frontend undersupplies its Backend. Frontend denotes the first part of the processor core responsible to fetch operations that are executed later on by the Backend part. Within the Frontend; a branch predictor predicts the next address to fetch; cache-lines are fetched from the memory subsystem; parsed into instructions; and lastly decoded into micro-operations (uops). Ideally the Frontend can issue Pipeline_Width uops every cycle to the Backend. Frontend Bound denotes unutilized issue-slots when there is no Backend stall; i.e. bubbles where Frontend delivered no uops while Backend could have accepted them. For example; stalls due to instruction-cache misses would be categorized under Frontend Bound.,> 0.15,4.3,BvFB;BvIO;TmaL1;PGO,,pub/v3,L1,;bot;,,,, -FE,,Fetch_Latency,,,,,PERF_METRICS.FETCH_LATENCY / #PERF_METRICS_SUM if #PERF_METRICS_MSR else IDQ_BUBBLES.FETCH_LATENCY / CLKS,,,,,,( PERF_METRICS.FETCH_LATENCY / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS ) if #PERF_METRICS_MSR else ( IDQ_BUBBLES.CYCLES_0_UOPS_DELIV.CORE * #Pipeline_Width - INT_MISC.UOP_DROPPING ) / SLOTS,,,,( #Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,,#Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE / SLOTS,,#Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE / SLOTS,,,,,,#Pipeline_Width * #Frontend_Latency_Cycles / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? RS_EVENTS.EMPTY_END : FRONTEND_RETIRED.LATENCY_GE_16_PS;FRONTEND_RETIRED.LATENCY_GE_8_PS,Slots,This metric represents fraction of slots the CPU was stalled due to Frontend latency issues. For example; instruction-cache misses; iTLB misses or fetch stalls after a branch misprediction are categorized under Frontend Latency. In such cases; the Frontend eventually delivers no uops for some period.,> 0.1 & P,4.3,Frontend;TmaL2,,pub/v3,L2,;bot;,,,, -FE,,,ICache_Misses,,,,,,,,,,,,,,ICACHE_DATA.STALLS / CLKS,,,,,( ICACHE_16B.IFDATA_STALL + 2 * ICACHE_16B.IFDATA_STALL:c1:e1 ) / CLKS,,,,ICACHE.IFDATA_STALL / CLKS,,ICACHE.IFETCH_STALL / CLKS - ITLB_Misses,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.L2_MISS_PS;FRONTEND_RETIRED.L1I_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to instruction cache misses.,> 0.05 & P,4.6,BigFootprint;BvBC;FetchLat;IcMiss,,pub/v3,L3,;bot;,,,Using compiler's Profile-Guided Optimization (PGO) can reduce i-cache misses through improved hot code layout., -FE,,,,Code_L2_Hit,,,,,"max( 0 , FRONTEND_RETIRED.L1I_MISS*$PEBS / CLKS - Code_L2_Miss )",,,,,,,,"max( 0 , ICache_Misses - Code_L2_Miss )",,,,,,,,,,,,,,,Clocks_Retired,This metric estimates fraction of cycles the CPU was stalled due to instruction cache misses that hit in the L2 cache.,> 0.05 & P,5.0,IcMiss;FetchLat;Offcore,,,L4,,,,, -FE,,,,Code_L2_Miss,,,,,FRONTEND_RETIRED.L2_MISS*$PEBS / CLKS,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_CODE_RD / CLKS,,,,,,,,,,,,,,,Clocks_Retired,This metric estimates fraction of cycles the CPU was stalled due to instruction cache misses that miss in the L2 cache.,> 0.05 & P,5.0,IcMiss;FetchLat;Offcore,,,L4,,,,, -FE,,,ITLB_Misses,,,,,,,,,,,,,,,,,,,ICACHE_TAG.STALLS / CLKS,,,,,,,,#ITLB_Miss_Cycles / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? ITLB_MISSES.WALK_COMPLETED : FRONTEND_RETIRED.STLB_MISS_PS;FRONTEND_RETIRED.ITLB_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to Instruction TLB (ITLB) misses.,> 0.05 & P,4.6,BigFootprint;BvBC;FetchLat;MemoryTLB,,pub/v3,L3,;bot;,,,"Consider large 2M pages for code (selectively prefer hot large-size function, due to limited 2M entries). Linux options: standard binaries use libhugetlbfs; Hfsort.",https://github.com/libhugetlbfs/libhugetlbfs;https://research.fb.com/publications/optimizing-function-placement-for-large-scale-data-center-applications-2/ -FE,,,,Code_STLB_Hit,,,,,"max( 0 , FRONTEND_RETIRED.ITLB_MISS*$PEBS / CLKS - Code_STLB_Miss )",,,,,,,,,,,,,"max( 0 , ITLB_Misses - Code_STLB_Miss )",,,,,,,,#NA,,Clocks_Retired,"This metric roughly estimates the fraction of cycles where the (first level) ITLB was missed by instructions fetches, that later on hit in second-level TLB (STLB)",> 0.05 & P,5.0,FetchLat;MemoryTLB,,,L4,,,,, -FE,,,,Code_STLB_Miss,,,,,FRONTEND_RETIRED.STLB_MISS*$PEBS / CLKS,,,,,,,,,,,,,ITLB_MISSES.WALK_ACTIVE / CLKS,,,,,,,,#NA,,Clocks_Retired,"This metric estimates the fraction of cycles where the Second-level TLB (STLB) was missed by instruction fetches, performing a hardware page walk",> 0.05 & P,5.0,FetchLat;MemoryTLB,1.0,,L4,,,,, -FE,,,,,Code_STLB_Miss_4K,,,,ITLB_MISSES.WALK_ACTIVE / CLKS * ITLB_MISSES.WALK_COMPLETED_4K / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,,,,Code_STLB_Miss * ITLB_MISSES.WALK_COMPLETED_4K / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for (instruction) code accesses.,> 0.05 & P,5.0,FetchLat;MemoryTLB,,,L5,,,ZeroOk,, -FE,,,,,Code_STLB_Miss_2M,,,,ITLB_MISSES.WALK_ACTIVE / CLKS * ITLB_MISSES.WALK_COMPLETED_2M_4M / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,,,,Code_STLB_Miss * ITLB_MISSES.WALK_COMPLETED_2M_4M / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for (instruction) code accesses.,> 0.05 & P,5.0,FetchLat;MemoryTLB,,,L5,,,ZeroOk,, -FE,,,Branch_Resteers,,,,,,,,,,INT_MISC.CLEAR_RESTEER_CYCLES / CLKS + Unknown_Branches,,,,,,,,,INT_MISC.CLEAR_RESTEER_CYCLES / CLKS + #BAClear_Cost * BACLEARS.ANY / CLKS,,,,,,,,#BAClear_Cost * ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ) / CLKS,BR_MISP_RETIRED.ALL_BRANCHES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers. Branch Resteers estimates the Frontend delay in fetching operations from corrected path; following all sorts of miss-predicted branches. For example; branchy code with lots of miss-predictions might get categorized under Branch Resteers. Note the value of this node may overlap with its siblings.,> 0.05 & P; ~overlap,4.6,FetchLat,,pub/v3,L3,;bot;,,,, -FE,,,,Mispredicts_Resteers,,,,,,,,,,,,,,,,,,#Mispred_Clears_Fraction * INT_MISC.CLEAR_RESTEER_CYCLES / CLKS,,BR_MISP_RETIRED.ALL_BRANCHES * Branch_Resteers / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ),,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : INT_MISC.CLEAR_RESTEER_CYCLES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers as a result of Branch Misprediction at execution stage. ,> 0.05 & P; $issueBM,4.3,BadSpec;BrMispredicts;BvMP,,pub/v4.3,L4,;bot;,,,, -FE,,,,Clears_Resteers,,,,,,,,,,,,,,,,,,( 1 - #Mispred_Clears_Fraction ) * INT_MISC.CLEAR_RESTEER_CYCLES / CLKS,,MACHINE_CLEARS.COUNT * Branch_Resteers / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ),,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : INT_MISC.CLEAR_RESTEER_CYCLES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers as a result of Machine Clears. ,> 0.05 & P; $issueMC,4.3,BadSpec;MachineClears,,pub/v4.3,L4,;bot;,,,, -FE,,,,Unknown_Branches,,,,,,,,,INT_MISC.UNKNOWN_BRANCH_CYCLES / CLKS,,,,,,,,,#BAClear_Cost * BACLEARS.ANY / CLKS,,Branch_Resteers - Mispredicts_Resteers - Clears_Resteers,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/TGL/RKL ? BACLEARS.ANY : FRONTEND_RETIRED.UNKNOWN_BRANCH,Clocks,This metric represents fraction of cycles the CPU was stalled due to new branch address clears. These are fetched branches the Branch Prediction Unit was unable to recognize (e.g. first time the branch is fetched or hitting BTB capacity limit) hence called Unknown Branches,> 0.05 & P,4.3,BigFootprint;BvBC;FetchLat,,pub/v4.3,L3,;bot;,,,, -FE,,,MS_Switches,,,,#MS_Switches_Cost * IDQ.MS_SWITCHES / CLKS,,,,,,#MS_Switches_Cost * UOPS_RETIRED.MS:c1:e1 / #Retire_Fraction / CLKS,,,,,,,,,,,,,,,,,#MS_Switches_Cost * IDQ.MS_SWITCHES / CLKS,MTL/ADL/SPR/SPR-HBM ? FRONTEND_RETIRED.MS_FLOWS : IDQ.MS_SWITCHES,Clocks_Estimated,This metric estimates the fraction of cycles when the CPU was stalled due to switches of uop delivery to the Microcode Sequencer (MS). Commonly used instructions are optimized for delivery by the DSB (decoded i-cache) or MITE (legacy instruction decode) pipelines. Certain operations cannot be handled natively by the execution pipeline; and must be performed by microcode (small programs injected into the execution stream). Switching to the MS too often can negatively impact performance. The MS is designated to deliver long uop flows required by CISC instructions like CPUID; or uncommon conditions like Floating Point Assists when dealing with Denormals.,> 0.05 & P; $issueMC; $issueMS; $issueMV; $issueSO,4.6,FetchLat;MicroSeq,1.0,pub/v3.4,L3,;bot;,,,, -FE,,,LCP,,,,,,,,,,,,,,,,,,,DECODE.LCP / CLKS,,,,,,,,ILD_STALL.LCP / CLKS,,Clocks,This metric represents fraction of cycles CPU was stalled due to Length Changing Prefixes (LCPs). Using proper compiler flags or Intel Compiler by default will certainly avoid this. #Link: Optimization Guide about LCP BKMs.,> 0.05 & P; $issueFB,4.6,FetchLat,,pub/v4.4,L3,;bot;,,,See section 'Length-Changing Prefixes (LCP)' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -FE,,,DSB_Switches,,,,,,,,,,,,,,,,,,,,,,,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.DSB_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to switches from DSB to MITE pipelines. The DSB (decoded i-cache) is a Uop Cache where the front-end directly delivers Uops (micro operations) avoiding heavy x86 decoding. The DSB pipeline has shorter latency and delivered higher bandwidth than the MITE (legacy instruction decode pipeline). Switching between the two pipelines can cause penalties hence this metric measures the exposed penalty.,> 0.05 & P; $issueFB,4.3,DSBmiss;FetchLat,,pub/v3.6,L3,;bot;,,,See section 'Optimization for Decoded Icache' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -FE,,Fetch_Bandwidth,,,,,,,,,,,,,,,"max( 0 , Frontend_Bound - Fetch_Latency )",,,,,,,,,,,,,Frontend_Bound - Fetch_Latency,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/LNL ? #NA : FRONTEND_RETIRED.LATENCY_GE_2_BUBBLES_GE_1;FRONTEND_RETIRED.LATENCY_GE_1;FRONTEND_RETIRED.LATENCY_GE_2,Slots,This metric represents fraction of slots the CPU was stalled due to Frontend bandwidth issues. For example; inefficiencies at the instruction decoders; or restrictions for caching in the DSB (decoded uops cache) are categorized under Fetch Bandwidth. In such cases; the Frontend typically delivers suboptimal amount of uops to the Backend.,> 0.2; $issueFB,4.7,FetchBW;Frontend;TmaL2,,pub/v3,L2,;bot;,,,, -FE,,,MITE,,,,( IDQ.MITE_UOPS:c8:i1:eq1 / 2 + IDQ.MITE_UOPS / ( IDQ.DSB_UOPS + IDQ.MITE_UOPS ) * ( IDQ_BUBBLES.STARVATION_CYCLES - IDQ_BUBBLES.FETCH_LATENCY ) ) / CLKS ,,,,,,( IDQ.MITE_CYCLES_ANY - IDQ.MITE_CYCLES_OK ) / CORE_CLKS / 2,,,,( IDQ.MITE_CYCLES_ANY - IDQ.MITE_CYCLES_OK ) / CORE_CLKS / 2,,,,,,,,,,,( IDQ.ALL_MITE_CYCLES_ANY_UOPS - IDQ.ALL_MITE_CYCLES_4_UOPS ) / CORE_CLKS / 2,,,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.ANY_DSB_MISS,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to the MITE pipeline (the legacy decode pipeline). This pipeline is used for code that was not pre-cached in the DSB or LSD. For example; inefficiencies due to asymmetric decoders; use of long immediate or LCP can manifest as MITE fetch bandwidth bottleneck.,> 0.1 & P,5.1,DSBmiss;FetchBW,,pub/v4,L3,,,,Consider tuning codegen of 'small hotspots' that can fit in DSB. Read about 'Decoded ICache' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -FE,,,,Decoder0_Alone,,,#NA,,,,,,,,,,,,,,,( INST_DECODED.DECODERS:c1 - INST_DECODED.DECODERS:c2 ) / CORE_CLKS / 2,,,,,,,,,,Slots_Estimated,This metric represents fraction of cycles where decoder-0 was the only active decoder,> 0.1 & P; $issueD0,4.5,DSBmiss;FetchBW,,,L4,,,,, -FE,,,,MITE_4wide,,,,,,,,,#NA,,,,( IDQ.MITE_UOPS:c4 - IDQ.MITE_UOPS:c5 ) / CLKS,,,,,,,,,,,,,,,Core_Clocks,This metric represents fraction of cycles where (only) 4 uops were delivered by the MITE pipeline,> 0.05 & P,4.4,DSBmiss;FetchBW,,,L4,,,,, -FE,,,DSB,,,,( IDQ.DSB_UOPS:c8:i1:eq1 / 2 + IDQ.DSB_UOPS / ( IDQ.DSB_UOPS + IDQ.MITE_UOPS ) * ( IDQ_BUBBLES.STARVATION_CYCLES - IDQ_BUBBLES.FETCH_LATENCY ) ) / CLKS ,,,,,,,,,,,,,,,( IDQ.DSB_CYCLES_ANY - IDQ.DSB_CYCLES_OK ) / CORE_CLKS / 2,,,,,,( IDQ.ALL_DSB_CYCLES_ANY_UOPS - IDQ.ALL_DSB_CYCLES_4_UOPS ) / CORE_CLKS / 2,,,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to DSB (decoded uop cache) fetch pipeline. For example; inefficient utilization of the DSB cache structure or bank conflict when reading from it; are categorized here.,> 0.15 & P,5.1,DSB;FetchBW,,pub/v4,L3,,,,, -FE,,,LSD,,,,LSD.UOPS:c8:i1:eq1 / CLKS / 2,#NA,,,,#NA,,,,#NA,,,#NA,( LSD.CYCLES_ACTIVE - LSD.CYCLES_OK ) / CORE_CLKS / 2,,,,,,,,,,#NA,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to LSD (Loop Stream Detector) unit. LSD typically does well sustaining Uop supply. However; in some rare cases; optimal uop-delivery could not be reached for small loops whose size (in terms of number of uops) does not suit well the LSD structure.,> 0.15 & P,5.1,FetchBW;LSD,,pub/v4,L3,,,,, -FE,,,MS,,,,IDQ.MS_CYCLES_ANY / CLKS / 1.8,,,,,,"max( IDQ.MS_CYCLES_ANY , UOPS_RETIRED.MS:c1 / #Retire_Fraction ) / CORE_CLKS / 2.4",,,,IDQ.MS_UOPS:c1 / CORE_CLKS / 3.3,,,,,#NA,,,,,,,,,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to the Microcode Sequencer (MS) unit - see Microcode_Sequencer node for details.,> 0.05 & P,5.1,MicroSeq,,pub/v5.1,L3,;bot;,,,, -BAD,Bad_Speculation,,,,,,"PERF_METRICS.BAD_SPECULATION / #PERF_METRICS_SUM if #PERF_METRICS_MSR else max( 1 - ( Frontend_Bound + Backend_Bound + Retiring ) , 0 )",,,,,,,,,,"max( 1 - ( Frontend_Bound + Backend_Bound + Retiring ) , 0 )",,,,,,,,,,,,,( UOPS_ISSUED.ANY - #Retired_Slots + #Pipeline_Width * #Recovery_Cycles ) / SLOTS,#NA,Slots,This category represents fraction of slots wasted due to incorrect speculations. This include slots used to issue uops that do not eventually get retired and slots for which the issue-pipeline was blocked due to recovery from earlier incorrect speculation. For example; wasted work due to miss-predicted branches are categorized under Bad Speculation category. Incorrect data speculation followed by Memory Ordering Nukes is another example.,> 0.15,4.1,TmaL1,,pub/v3,L1,;bot;,,,, -BAD,,Branch_Mispredicts,,,,,,,,,,,PERF_METRICS.BRANCH_MISPREDICTS / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BR_MISPREDICT_SLOTS / SLOTS,,,,,,,,,,,,,,,,,#Mispred_Clears_Fraction * Bad_Speculation,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? BR_MISP_RETIRED.ALL_BRANCHES_PS : ICL/ICX/RKL/TGL ? BR_MISP_RETIRED.ALL_BRANCHES : TOPDOWN.BR_MISPREDICT_SLOTS,Slots,This metric represents fraction of slots the CPU has wasted due to Branch Misprediction. These slots are either wasted by uops fetched from an incorrectly speculated program path; or stalls when the out-of-order part of the machine needs to recover its state from a speculative path.,> 0.1 & P; $issueBM,4.3,BadSpec;BrMispredicts;BvMP;TmaL2,,pub/v3,L2,;bot;,,,Using profile feedback in the compiler may help. Please see the Optimization Manual for general strategies for addressing branch misprediction issues.,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -BAD,,,Cond_NT_Mispredicts,,,,,,BR_MISP_RETIRED.COND_NTAKEN_COST*$PEBS / CLKS,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by non-taken conditional branches.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Cond_TK_Mispredicts,,,,#NA,,BR_MISP_RETIRED.COND_TAKEN_COST*$PEBS / CLKS,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by taken conditional branches.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Cond_TK_Bwd_Mispredicts,,,,BR_MISP_RETIRED.COND_TAKEN_BWD_COST*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by backward-taken conditional branches.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Cond_TK_Fwd_Mispredicts,,,,BR_MISP_RETIRED.COND_TAKEN_FWD_COST*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by forward-taken conditional branches.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Ind_Call_Mispredicts,,,,,,BR_MISP_RETIRED.INDIRECT_CALL_COST*$PEBS / CLKS,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by indirect CALL instructions.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Ind_Jump_Mispredicts,,,,,,"max( ( BR_MISP_RETIRED.INDIRECT_COST*$PEBS - BR_MISP_RETIRED.INDIRECT_CALL_COST*$PEBS ) / CLKS , 0 )",,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by indirect JMP instructions.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Ret_Mispredicts,,,,,,BR_MISP_RETIRED.RET_COST*$PEBS / CLKS,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by (indirect) RET instructions.,> 0.05 & P,5.0,BrMispredicts,,,L3,,,,, -BAD,,,Other_Mispredicts,,,,,,,,,,,,,,,,,,,"max( Branch_Mispredicts * ( 1 - BR_MISP_RETIRED.ALL_BRANCHES / ( INT_MISC.CLEARS_COUNT - MACHINE_CLEARS.COUNT ) ) , 0.0001 )",,,,,,,,,,Slots,This metric estimates fraction of slots the CPU was stalled due to other cases of misprediction (non-retired x86 branches or other types).,> 0.05 & P,4.6,BvIO;BrMispredicts,,pub/v4.6,L3,;bot;,,,, -BAD,,Machine_Clears,,,,,,,,,,,,,,,"max( 0 , Bad_Speculation - Branch_Mispredicts )",,,,,,,,,,,,,Bad_Speculation - Branch_Mispredicts,MACHINE_CLEARS.COUNT,Slots,This metric represents fraction of slots the CPU has wasted due to Machine Clears. These slots are either wasted by uops fetched prior to the clear; or stalls the out-of-order portion of the machine needs to recover its state after the clear. For example; this can happen due to memory ordering Nukes (e.g. Memory Disambiguation) or Self-Modifying-Code (SMC) nukes.,> 0.1 & P; $issueMC; $issueSyncxn,4.5,BadSpec;BvMS;MachineClears;TmaL2,,pub/v3,L2,;bot;,,,"See ""Memory Disambiguation"" in Optimization Manual and:",https://software.intel.com/sites/default/files/m/d/4/1/d/8/sma.pdf -BAD,,,Other_Nukes,,,,,,,,,,,,,,,,,,,"max( Machine_Clears * ( 1 - MACHINE_CLEARS.MEMORY_ORDERING / MACHINE_CLEARS.COUNT ) , 0.0001 )",,,,,,,,#NA,,Slots,This metric represents fraction of slots the CPU has wasted due to Nukes (Machine Clears) not related to memory ordering.,> 0.05 & P,4.7,BvIO;Machine_Clears,,pub/5.0,L3,;bot;,,,, -BE,Backend_Bound,,,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BACKEND_BOUND_SLOTS / SLOTS,,,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BACKEND_BOUND_SLOTS / SLOTS,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM + ( #Pipeline_Width * INT_MISC.CLEARS_COUNT ) / SLOTS if #PERF_METRICS_MSR else ( TOPDOWN.BACKEND_BOUND_SLOTS + #Pipeline_Width * INT_MISC.CLEARS_COUNT ) / SLOTS,,,,,1 - Frontend_Bound - ( UOPS_ISSUED.ANY + #Pipeline_Width * #Recovery_Cycles ) / SLOTS,,,,,,,,1 - ( Frontend_Bound + Bad_Speculation + Retiring ),SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : TOPDOWN.BACKEND_BOUND_SLOTS,Slots,This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend. Backend is the portion of the processor core where the out-of-order scheduler dispatches ready uops into their respective execution units; and once completed these uops get retired according to program order. For example; stalls due to data-cache misses or stalls due to the divider unit being overloaded are both categorized under Backend Bound. Backend Bound is further divided into two main categories: Memory Bound and Core Bound.,> 0.2,4.3,BvOB;TmaL1,,pub/v3,L1,;bot;,,,, -BE/Mem,,Memory_Bound,,,,,,,,,,,PERF_METRICS.MEMORY_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.MEMORY_BOUND_SLOTS / SLOTS,,,,,,,,,,,,,,,,,#Memory_Bound_Fraction * Backend_Bound,#NA,Slots,This metric represents fraction of slots the Memory subsystem within the Backend was a bottleneck. Memory Bound estimates fraction of slots where pipeline is likely stalled due to demand load or store instructions. This accounts mainly for (1) non-completed in-flight memory demand loads which coincides with execution units starvation; in addition to (2) cases where stores could impose backpressure on the pipeline when many of them get buffered at the same time (less common out of the two).,> 0.2 & P,4.1,Backend;TmaL2,,pub/v3,L2,;bot;,,,, -BE/Mem,,,L1_Bound,,,,MEMORY_STALLS.L1 / CLKS,,,,,,"max( ( EXE_ACTIVITY.BOUND_ON_LOADS - MEMORY_ACTIVITY.STALLS_L1D_MISS ) / CLKS , 0 )",,,,,,,,,,,"max( ( CYCLE_ACTIVITY.STALLS_MEM_ANY - CYCLE_ACTIVITY.STALLS_L1D_MISS ) / CLKS , 0 )",,,,"max( ( #STALLS_MEM_ANY - CYCLE_ACTIVITY.STALLS_L1D_PENDING ) / CLKS , 0 )",,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L1_HIT_PS : MEM_LOAD_RETIRED.L1_HIT,Stalls,This metric estimates how often the CPU was stalled without loads missing the L1 Data (L1D) cache. The L1D cache typically has the shortest latency. However; in certain cases like loads blocked on older stores; a load might suffer due to high latency even though it is being satisfied by the L1D. Another example is loads who miss in the TLB. These cases are characterized by execution unit stalls; while some non-completed demand load lives in the machine without having that demand load missing the L1 cache.,> 0.1 & P; $issueL1; $issueMC,4.4,CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, -BE/Mem,,,,DTLB_Load,,,,,"MEM_INST_RETIRED.STLB_HIT_LOADS*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Load_STLB_Miss",,,,"min( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT:c1 + DTLB_LOAD_MISSES.WALK_ACTIVE , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - MEMORY_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,,"min( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT:c1 + DTLB_LOAD_MISSES.WALK_ACTIVE , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - CYCLE_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT + DTLB_LOAD_MISSES.WALK_DURATION:c1 + 7 * DTLB_LOAD_MISSES.WALK_COMPLETED ) / CLKS,,,,,,( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT + DTLB_LOAD_MISSES.WALK_DURATION ) / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.STLB_MISS_LOADS_PS : MEM_INST_RETIRED.STLB_MISS_LOADS_PS,Clocks_Estimated,This metric roughly estimates the fraction of cycles where the Data TLB (DTLB) was missed by load accesses. TLBs (Translation Look-aside Buffers) are processor caches for recently used entries out of the Page Tables that are used to map virtual- to physical-addresses by the operating system. This metric approximates the potential delay of demand loads missing the first-level data TLB (assuming worst case scenario with back to back misses to different pages). This includes hitting in the second-level TLB (STLB) as well as performing a hardware page walk on an STLB miss.,> 0.1 & P; $issueTLB,4.4,BvMT;MemoryTLB,1.0,pub/v3.4,L4,;bot;,,,,#Link: Linux THP pages; similar Windows link. -BE/Mem,,,,,Load_STLB_Hit,,,,"max( 0 , DTLB_Load - Load_STLB_Miss )",,,,,,,,,,,,,DTLB_Load - Load_STLB_Miss,,,,,,,,#NA,,Clocks_Estimated,"This metric roughly estimates the fraction of cycles where the (first level) DTLB was missed by load accesses, that later on hit in second-level TLB (STLB)",> 0.05 & P,4.2,MemoryTLB,1.0,pub/5.0,L5,;bot;,,,, -BE/Mem,,,,,Load_STLB_Miss,,,,,,,,,,,,,,,,,DTLB_LOAD_MISSES.WALK_ACTIVE / CLKS,,,,,,,,#NA,,Clocks_Calculated,"This metric estimates the fraction of cycles where the Second-level TLB (STLB) was missed by load accesses, performing a hardware page walk",> 0.05 & P,3.6,MemoryTLB,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,,,Load_STLB_Miss_4K,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_4K / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for data load accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Mem,,,,,,Load_STLB_Miss_2M,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for data load accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Mem,,,,,,Load_STLB_Miss_1G,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_1G / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 1 GB pages for data load accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Mem,,,,Store_Fwd_Blk,,,,,,,,,,,,,,,,,,,,,,,,13 * LD_BLOCKS.STORE_FORWARD / CLKS,,,,Clocks_Estimated,This metric roughly estimates fraction of cycles when the memory subsystem had loads blocked since they could not forward data from earlier (in program order) overlapping stores. To streamline memory operations in the pipeline; a load can avoid waiting for memory if a prior in-flight store is writing the data that the load wants to read (store forwarding process). However; in some cases the load may be blocked for a significant time pending the store forward. For example; when the prior store is writing a smaller region than the load is reading.,> 0.1 & P,3.3,,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,Store_Early_Blk,,,7 * LD_BLOCKS.STORE_EARLY:c1 / CLKS,,,,,,#NA,,,,#NA,,,,,,,,,,,#NA,,,,Clocks_Estimated,This metric estimates clocks wasted due to loads blocked due to unknown store address (did not do memory disambiguation) or due to unknown store data,> 0.2,5.1,,1.0,,4,;bot;,,,GPZv4, -BE/Mem,,,,L1_Latency_Dependency,,,4 * DEPENDENT_LOADS.ANY:c1 / CLKS,,,,,,"min( 2 * ( MEM_INST_RETIRED.ALL_LOADS - MEM_LOAD_RETIRED.FB_HIT - MEM_LOAD_RETIRED.L1_MISS ) * Dependent_Loads_Weight / 100 , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - MEMORY_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,,"min( 2 * ( MEM_INST_RETIRED.ALL_LOADS_PS - MEM_LOAD_RETIRED.FB_HIT_PS - MEM_LOAD_RETIRED.L1_MISS_PS ) * Dependent_Loads_Weight / 100 , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - CYCLE_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,#NA,LNL ? DEPENDENT_LOADS.ANY : SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L1_HIT_PS : MEM_LOAD_RETIRED.L1_HIT,Clocks_Estimated,This metric ([SKL+] roughly; [LNL]) estimates fraction of cycles with demand load accesses that hit the L1D cache. The short latency of the L1D cache may be exposed in pointer-chasing memory access patterns as an example.,> 0.1 & P,5.0,BvML;MemoryLat,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,L1_Latency_Capacity,,,"MEM_LOAD_RETIRED.L1_HIT_L1*min($PEBS, 9 ) / CLKS",,,,,,,,,,,,,,,,,,,,,,,#NA,,Clocks_Retired,This metric estimates fraction of cycles with demand load accesses that hit Level 1 after missing Level 0 within the L1D cache.,> 0.1 & P,5.0,BvML;MemoryLat,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,Lock_Latency,,,,,MEM_INST_RETIRED.LOCK_LOADS*$PEBS / CLKS,,,,,,,,"( 16 * max( 0 , MEM_INST_RETIRED.LOCK_LOADS - L2_RQSTS.ALL_RFO ) + #Mem_Lock_St_Fraction * ( #Mem_L2_Store_Cost * L2_RQSTS.RFO_HIT + #ORO_Demand_RFO_C1 ) ) / CLKS",,,,,"( 12 * max( 0 , MEM_INST_RETIRED.LOCK_LOADS - L2_RQSTS.ALL_RFO ) + #Mem_Lock_St_Fraction * ( #Mem_L2_Store_Cost * L2_RQSTS.RFO_HIT + #ORO_Demand_RFO_C1 ) ) / CLKS",,,,,,#Mem_Lock_St_Fraction * #ORO_Demand_RFO_C1 / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.LOCK_LOADS_PS : MEM_INST_RETIRED.LOCK_LOADS,Clocks,This metric represents fraction of cycles the CPU spent handling cache misses due to lock operations. Due to the microarchitecture handling of locks; they are classified as L1_Bound regardless of what memory source satisfied them.,> 0.2 & P; $issueRFO,4.3,LockCont;Offcore,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,Split_Loads,,,,,"MEM_INST_RETIRED.SPLIT_LOADS*min($PEBS, Load_Miss_Real_Latency) / CLKS",,,,,,,,,,,,,,,,,Load_Miss_Real_Latency * LD_BLOCKS.NO_SR / CLKS,,13 * LD_BLOCKS.NO_SR / CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.SPLIT_LOADS_PS : MEM_INST_RETIRED.SPLIT_LOADS_PS,Clocks_Calculated,This metric estimates fraction of cycles handling memory load split accesses - load that cross 64-byte cache line boundary. ,> 0.3,5.0,,1.0,pub/5.0,L4,;bot;,,,Consider aligning data or hot structure fields. See the Optimization Manual for more details, -BE/Mem,,,,4K_Aliasing,,,,,,,,,#NA,,,,,,,,,,,,,,,LD_BLOCKS_PARTIAL.ADDRESS_ALIAS / CLKS,,,,Clocks_Estimated,This metric estimates how often memory load accesses were aliased by preceding stores (in program order) with a 4K address offset. False match is possible; which incur a few cycles load re-issue. However; the short re-issue duration is often hidden by the out-of-order core and HW optimizations; hence a user may safely ignore a high value of this metric unless it manages to propagate up into parent nodes of the hierarchy (e.g. to L1_Bound).,> 0.2 & P,3.4,,,pub/5.0,L4,;bot;,,,Consider reducing independent loads/stores accesses with 4K offsets. See the Optimization Manual for more details, -BE/Mem,,,,FB_Full,,,L1D_MISS.FB_FULL / CLKS,,,,,,,,,,L1D_PEND_MISS.FB_FULL / CLKS,,,,,,,Load_Miss_Real_Latency * L1D_PEND_MISS.FB_FULL:c1 / CLKS,,Load_Miss_Real_Latency * L1D_PEND_MISS.REQUEST_FB_FULL:c1 / CLKS,,Load_Miss_Real_Latency * L1D_PEND_MISS.FB_FULL:c1 / CLKS,,,,Clocks_Calculated,This metric does a *rough estimation* of how often L1D Fill Buffer unavailability limited additional L1D miss memory access requests to proceed. The higher the metric value; the deeper the memory hierarchy level the misses are satisfied from (metric values >1 are valid). Often it hints on approaching bandwidth limits (to L2 cache; L3 cache or external memory).,> 0.3; $issueBW; $issueSL; $issueSmSt,4.0,BvMB;MemoryBW,,pub/v3.1,L4,;bot;,,,See $issueBW and $issueSL hints. Avoid software prefetches if indeed memory BW limited., -BE/Mem,,,L2_Bound,,,,MEMORY_STALLS.L2 / CLKS,,,,,,( MEMORY_ACTIVITY.STALLS_L1D_MISS - MEMORY_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,( #LOAD_L2_HIT / ( #LOAD_L2_HIT + L1D_PEND_MISS.FB_FULL_PERIODS ) ) * #L2_Bound_Ratio,,,,,( #LOAD_L2_HIT / ( #LOAD_L2_HIT + L1D_PEND_MISS.FB_FULL:c1 ) ) * #L2_Bound_Ratio,,( CYCLE_ACTIVITY.STALLS_L1D_MISS - CYCLE_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,( CYCLE_ACTIVITY.STALLS_L1D_PENDING - CYCLE_ACTIVITY.STALLS_L2_PENDING ) / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L2_HIT_PS : MEM_LOAD_RETIRED.L2_HIT,Stalls,This metric estimates how often the CPU was stalled due to L2 cache accesses by loads. Avoiding cache misses (i.e. L1 misses/L2 hits) can improve the latency and increase performance.,> 0.05 & P,4.0,BvML;CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, -BE/Mem,,,,L2_Hit_Latency,,,,,"MEM_LOAD_RETIRED.L2_HIT*min($PEBS, #Mem_L2_Hit_Cost) * #FB_Factor / CLKS",,,,,,,,,,,,,#Mem_L2_Hit_Cost * MEM_LOAD_RETIRED.L2_HIT_PS * #FB_Factor / CLKS,,,,,,,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L2_HIT_PS : MEM_LOAD_RETIRED.L2_HIT,Clocks_Retired,This metric represents fraction of cycles with demand load accesses that hit the L2 cache under unloaded scenarios (possibly L2 latency limited). Avoiding L1 cache misses (i.e. L1 misses/L2 hits) will improve the latency.,> 0.05 & P,5.0,MemoryLat,,,L4,,,,, -BE/Mem,,,L3_Bound,,,,MEMORY_STALLS.L3 / CLKS,,,,,,( MEMORY_ACTIVITY.STALLS_L2_MISS - MEMORY_ACTIVITY.STALLS_L3_MISS ) / CLKS,,,,,,,,,( CYCLE_ACTIVITY.STALLS_L2_MISS - CYCLE_ACTIVITY.STALLS_L3_MISS ) / CLKS,,#Mem_L3_Hit_Fraction * CYCLE_ACTIVITY.STALLS_L2_MISS / CLKS,,,,,,#Mem_L3_Hit_Fraction * CYCLE_ACTIVITY.STALLS_L2_PENDING / CLKS,SNB/JKT/IVB/IVT ? MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_HIT_PS : MEM_LOAD_RETIRED.L3_HIT_PS,Stalls,This metric estimates how often the CPU was stalled due to loads accesses to L3 cache or contended with a sibling Core. Avoiding cache misses (i.e. L2 misses/L3 hits) can improve the latency and increase performance.,> 0.05 & P,3.3,CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, -BE/Mem,,,,Contested_Accesses,,,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) ) * #FB_Factor / CLKS",,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) * #True_XSNP_HitM_Fraction ) * #FB_Factor / CLKS",,,,,,,,,,,,,( ( #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_HITM + ( #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_MISS ) * #FB_Factor / CLKS,,,,,,( #Mem_XSNP_HitM_Cost * #LOAD_XSNP_HITM + #Mem_XSNP_Hit_Cost * #LOAD_XSNP_MISS ) / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS_PS : MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD;MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to contested accesses. Contested accesses occur when data written by one Logical Processor are read by another Logical Processor on a different Physical Core. Examples of contested accesses include synchronizations such as locks; true data sharing such as modified locked variables; and false sharing.,> 0.05 & P; $issueSyncxn,4.2,BvMS;DataSharing;LockCont;Offcore;Snoop,1.0,pub/5.0,L4,;bot;,,ZeroOk,, -BE/Mem,,,,Data_Sharing,,,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) ) * #FB_Factor / CLKS",,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) * ( 1 - #True_XSNP_HitM_Fraction ) ) * #FB_Factor / CLKS",,,,,,,,,,,,,( #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_HIT * #FB_Factor / CLKS,,,,,,#Mem_XSNP_Hit_Cost * #LOAD_XSNP_HIT / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS : MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.,> 0.05 & P; $issueSyncxn,4.2,BvMS;Offcore;Snoop,1.0,pub/5.0,L4,;bot;,,ZeroOk,, -BE/Mem,,,,L3_Hit_Latency,,,,,"MEM_LOAD_RETIRED.L3_HIT*min($PEBS, #Mem_XSNP_None_Cost - #Mem_L2_Hit_Cost ) * #FB_Factor / CLKS",,,,,,,,,,,,,( #Mem_XSNP_None_Cost - #Mem_L2_Hit_Cost ) * #LOAD_L3_HIT / CLKS,,,,,,#Mem_XSNP_None_Cost * #LOAD_L3_HIT / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_HIT_PS : MEM_LOAD_RETIRED.L3_HIT_PS,Clocks_Estimated,This metric estimates fraction of cycles with demand load accesses that hit the L3 cache under unloaded scenarios (possibly L3 latency limited). Avoiding private cache misses (i.e. L2 misses/L3 hits) will improve the latency; reduce contention with sibling physical cores and increase performance. Note the value of this node may overlap with its siblings.,> 0.1 & P; $issueLat; ~overlap,4.2,BvML;MemoryLat,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,SQ_Full,,,( XQ.FULL + L1D_MISS.L2_STALLS ) / CLKS,,,,,,( XQ.FULL_CYCLES + L1D_PEND_MISS.L2_STALLS ) / CLKS,,,,L1D_PEND_MISS.L2_STALL / CLKS,,,,,,,,,,,#SQ_Full_Cycles / CORE_CLKS,,,,Clocks,This metric measures fraction of cycles where the Super Queue (SQ) was full taking into account all request-types and both hardware SMT threads (Logical Processors).,> 0.3 & P; $issueBW,4.3,BvMB;MemoryBW;Offcore,,pub/5.0,L4,;bot;,,,, -BE/Mem,,,HBM_Bound,,,,,,,#NA,#MEM_Bound_Ratio * OCR.DEMAND_DATA_RD.PMM / OCR.READS_TO_CORE.L3_MISS,,,,,,,,,,,,,,,,,,,#NA,,Stalls,This metric estimates how often the CPU was stalled due to High Bandwidth Memory (HBM) accesses by loads.,> 0.1 & P,4.7,BvMB;BvML;MemoryBound;Offcore;Server;TmaL3mem,,pub/v4.6,L3,;bot;,,,, -BE/Mem,,,DRAM_Bound,,,,,( #MEM_Bound_Ratio - CXL_Mem_Bound ) if #PMM_App_Direct else #MEM_Bound_Ratio,,#MEM_Bound_Ratio,#MEM_Bound_Ratio - HBM_Bound,,,,,,,,( #MEM_Bound_Ratio - CXL_Mem_Bound ) if #PMM_App_Direct else #MEM_Bound_Ratio,,,#MEM_Bound_Ratio,,( 1 - #Mem_L3_Hit_Fraction ) * CYCLE_ACTIVITY.STALLS_L2_MISS / CLKS,,,,,,( 1 - #Mem_L3_Hit_Fraction ) * CYCLE_ACTIVITY.STALLS_L2_PENDING / CLKS,SNB ? MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS : IVB/IVT/JKT ? MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_MISS_PS : MEM_LOAD_RETIRED.L3_MISS,Stalls,This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.,> 0.1 & P,4.7,MemoryBound;TmaL3mem,1.0,pub/v3,L3,;bot;,,,, -BE/Mem,,,,MEM_Bandwidth,,,,,,,,,,,,,,,,,,,,,,,,,,#ORO_DRD_BW_Cycles / CLKS,,Clocks,This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).,> 0.2 & P; $issueBW,4.7,BvMB;MemoryBW;Offcore,,pub/v3,L4,;bot;,,,"Improve data accesses to reduce cacheline transfers from/to memory. Examples: 1) Consume all bytes of a each cacheline before it is evicted (e.g. reorder structure elements and split non-hot ones), 2) merge computed-limited with BW-limited loops, 3) NUMA optimizations in multi-socket system. Note: software prefetches will not help BW-limited application.",#Link: what is NUMA article -BE/Mem,,,,,MBA_Stalls,,,,,,,INT_MISC.MBA_STALLS / CLKS,,,,,,,,,,,,,,,,,,,,Clocks,This metric estimates fraction of cycles where the core's performance was likely hurt due to memory bandwidth Allocation feature (RDT's memory bandwidth throttling).,> 0.1 & P,4.6,MemoryBW;Offcore;Server,,,L5,,,ZeroOk,, -BE/Mem,,,,MEM_Latency,,,,,,,,,,,,,,,,,,,,,,,,,,#ORO_DRD_Any_Cycles / CLKS - MEM_Bandwidth,,Clocks,This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).,> 0.1 & P; $issueLat,4.7,BvML;MemoryLat;Offcore,,pub/v3,L4,;bot;,,,"Improve data accesses or interleave them with compute. Examples: 1) Data layout re-structuring, 2) Software Prefetches (also through the compiler).",#Link: Data re-layout; SW prefetching; AoS vs. SoA articles. -BE/Mem,,,,,Local_MEM,,,MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM*$PEBS * #FB_Factor / CLKS,,,,,,,,( #Mem_Local_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * #FB_Factor / CLKS,,,,,( #Mem_Local_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * #FB_Factor / CLKS,,,,,,#Mem_Local_DRAM_Cost * #LOAD_LCL_MEM / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL ? #NA : IVT ? MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS : MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from local memory. Caching will improve the latency and increase performance.,> 0.1 & P,4.7,Server,1.0,pub/5.0,L5,;bot;,,,, -BE/Mem,,,,,Remote_MEM,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM*$PEBS * #FB_Factor / CLKS if #DS else 0,,,,,,,,,,,,,( #Mem_Remote_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM * #FB_Factor / CLKS if #DS else 0,,,,,,#Mem_Remote_DRAM_Cost * #LOAD_RMT_MEM / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL ? #NA : IVT ? MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS : MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM_PS,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from remote memory. This is caused often due to non-optimal NUMA allocations. #link to NUMA article,> 0.1 & P,5.1,Server;Snoop,1.0,pub/5.0,L5,;bot;,,,, -BE/Mem,,,,,Remote_Cache,,,( MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM*$PEBS + MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD*$PEBS ) * #FB_Factor / CLKS if #DS else 0,,,,,,,,,,,,,( ( #Mem_Remote_HitM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM + ( #Mem_Remote_Fwd_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD ) * #FB_Factor / CLKS if #DS else 0,,,,,,( #Mem_Remote_HitM_Cost * #LOAD_RMT_HITM + #Mem_Remote_Fwd_Cost * #LOAD_RMT_FWD ) / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL ? #NA : IVT ? MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS : MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD_PS,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from remote cache in other sockets including synchronizations issues. This is caused often due to non-optimal NUMA allocations. #link to NUMA article,> 0.05 & P; $issueSyncxn,5.1,Offcore;Server;Snoop,1.0,pub/5.0,L5,;bot;,,ZeroOk,, -BE/Mem,,,CXL_Mem_Bound,,,,,( ( ( 1 - #Mem_DDR_Hit_Fraction ) * #MEM_Bound_Ratio ) if ( #OneMillion * ( MEM_LOAD_L3_MISS_RETIRED.REMOTE_CXL_MEM + MEM_LOAD_RETIRED.LOCAL_CXL_MEM ) > MEM_LOAD_RETIRED.L1_MISS ) else 0 ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,( ( ( 1 - #Mem_DDR_Hit_Fraction ) * #MEM_Bound_Ratio ) if ( #OneMillion * ( MEM_LOAD_L3_MISS_RETIRED.REMOTE_PMM + MEM_LOAD_RETIRED.LOCAL_PMM ) > MEM_LOAD_RETIRED.L1_MISS ) else 0 ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Stalls,"This metric roughly estimates (based on idle latencies) how often the CPU was stalled on accesses to external CXL Memory by loads (e.g. 3D-Xpoint (Crystal Ridge, a.k.a. IXP) memory, PMM - Persistent Memory Module [from CLX to SPR] or any other CXL Type3 Memory [EMR onwards]). ",> 0.1 & P,4.8,MemoryBound;Server;TmaL3mem,1.0,pub/v3.5,L3,;bot;,,ZeroOk,Consider moving data-structure from AEP to DDR memory for better latency/bandwidth,#Link: Opt Guide CR section -BE/Mem,,,Store_Bound,,,,,,,,,,,,,,EXE_ACTIVITY.BOUND_ON_STORES / CLKS,,,,,EXE_ACTIVITY.BOUND_ON_STORES / CLKS,,,,,,,,RESOURCE_STALLS.SB / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.ALL_STORES_PS : MEM_INST_RETIRED.ALL_STORES_PS,Stalls,This metric estimates how often CPU was stalled due to RFO store memory accesses; RFO store issue a read-for-ownership request before the write. Even though store accesses do not typically stall out-of-order CPUs; there are few cases where stores can lead to actual stalls. This metric will be flagged should RFO stores be a bottleneck.,> 0.2 & P,4.2,MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, -BE/Mem,,,,Store_Latency,,,,,,,,,,,,,,,,,,,,,,,,( #Store_L2_Hit_Cycles + ( 1 - #Mem_Lock_St_Fraction ) * #ORO_Demand_RFO_C1 ) / CLKS,,#NA,,Clocks_Estimated,This metric estimates fraction of cycles the CPU spent handling L1D store misses. Store accesses usually less impact out-of-order core performance; however; holding resources for longer time can lead into undesired implications (e.g. contention on L1D fill-buffer entries - see FB_Full),> 0.1 & P; $issueRFO; $issueSL; ~overlap,3.3,BvML;LockCont;MemoryLat;Offcore,1.0,pub/5.0,L4,;bot;,,,Consider to avoid/reduce unnecessary (or easily load-able/computable) memory store., -BE/Mem,,,,False_Sharing,,,,,,,,,,,,( #Mem_Remote_HitM_Cost * OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002 + #Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM ) / CLKS if #DS else #Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,#Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,,,,( #Mem_Remote_HitM_Cost * #OCR_all_rfo_l3_miss_remote_hitm + #Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm ) / CLKS if #DS else #Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm / CLKS,#Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE / CLKS,,,SNB/JKT ? #NA : IVB ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE : IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE;OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM : HSW ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : BDW ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM : HSX/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE;OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM : SKX ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : CLX/CPX ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OCR.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : SKL/KBL/KBLR/CFL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM : OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM,Clocks_Estimated,This metric roughly estimates how often CPU was handling synchronizations due to False Sharing. False Sharing is a multithreading hiccup; where multiple Logical Processors contend on different data-elements mapped into the same cache line. ,> 0.05 & P; $issueSyncxn,5.0,BvMS;DataSharing;LockCont;Offcore;Snoop,1.0,pub/5.0,L4,;bot;,,ZeroOk,False Sharing can be easily avoided by padding to make Logical Processors access different lines., -BE/Mem,,,,Split_Stores,,,"MEM_INST_RETIRED.SPLIT_STORES*min($PEBS, 1) / CLKS",,"MEM_INST_RETIRED.SPLIT_STORES*min($PEBS, 1) / CLKS",,,,,,,,,,,,,MEM_INST_RETIRED.SPLIT_STORES / CORE_CLKS,,,,,,2 * MEM_UOPS_RETIRED.SPLIT_STORES_PS / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.SPLIT_STORES_PS : MEM_INST_RETIRED.SPLIT_STORES_PS,Core_Utilization,This metric represents rate of split store accesses. Consider aligning your data to the 64-byte cache line granularity.,> 0.2 & P; $issueSpSt,4.5,,,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,Streaming_Stores,,,,,,,,,,,,,9 * OCR.STREAMING_WR.ANY_RESPONSE / CLKS,,,,,,,,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : OCR.STREAMING_WR.ANY_RESPONSE,Clocks_Estimated,This metric estimates how often CPU was stalled due to Streaming store memory accesses; Streaming store optimize out a read request required by RFO stores. Even though store accesses do not typically stall out-of-order CPUs; there are few cases where stores can lead to actual stalls. This metric will be flagged should Streaming stores be a bottleneck.,> 0.2 & P; $issueSmSt,5.0,MemoryBW;Offcore,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,DTLB_Store,,,"MEM_INST_RETIRED.STLB_HIT_STORES*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Store_STLB_Miss",,"MEM_INST_RETIRED.STLB_HIT_STORES*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Store_STLB_Miss",,,,,,,,,,,,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT:c1 + DTLB_STORE_MISSES.WALK_ACTIVE ) / CORE_CLKS,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT + DTLB_STORE_MISSES.WALK_DURATION:c1 + 7 * DTLB_STORE_MISSES.WALK_COMPLETED ) / CLKS,,,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT + DTLB_STORE_MISSES.WALK_DURATION ) / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.STLB_MISS_STORES_PS : MEM_INST_RETIRED.STLB_MISS_STORES_PS,Clocks_Estimated,This metric roughly estimates the fraction of cycles spent handling first-level data TLB store misses. As with ordinary data caching; focus on improving data locality and reducing working-set size to reduce DTLB overhead. Additionally; consider using profile-guided optimization (PGO) to collocate frequently-used data on the same page. Try using larger page sizes for large amounts of frequently-used data.,> 0.05 & P; $issueTLB,4.3,BvMT;MemoryTLB,1.0,pub/5.0,L4,;bot;,,,, -BE/Mem,,,,,Store_STLB_Hit,,,,"max( 0 , DTLB_Store - Store_STLB_Miss )",,,,,,,,,,,,,DTLB_Store - Store_STLB_Miss,,,,,,,,#NA,,Clocks_Estimated,"This metric roughly estimates the fraction of cycles where the TLB was missed by store accesses, hitting in the second-level TLB (STLB)",> 0.05 & P,3.6,MemoryTLB,1.0,,L5,,,,, -BE/Mem,,,,,Store_STLB_Miss,,DTLB_STORE_MISSES.WALK_ACTIVE / CLKS,,,,,,,,,,,,,,,DTLB_STORE_MISSES.WALK_ACTIVE / CORE_CLKS,,,,,,,,#NA,,Clocks_Calculated,"This metric estimates the fraction of cycles where the STLB was missed by store accesses, performing a hardware page walk",> 0.05 & P,3.6,MemoryTLB,1.0,pub/5.0,L5,;bot;,,,, -BE/Mem,,,,,,Store_STLB_Miss_4K,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_4K / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for data store accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Mem,,,,,,Store_STLB_Miss_2M,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for data store accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Mem,,,,,,Store_STLB_Miss_1G,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_1G / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 1 GB pages for data store accesses.,> 0.05 & P,5.0,MemoryTLB,,,L6,,,ZeroOk,, -BE/Core,,Core_Bound,,,,,,,,,,,,,,,"max( 0 , Backend_Bound - Memory_Bound )",,,,,,,,,,,,,Backend_Bound - Memory_Bound,,Slots,This metric represents fraction of slots where Core non-memory issues were of a bottleneck. Shortage in hardware compute resources; or dependencies in software's instructions are both categorized under Core Bound. Hence it may indicate the machine ran out of an out-of-order resource; certain execution units are overloaded or dependencies in program's data- or instruction-flow are limiting the performance (e.g. FP-chained long-latency arithmetic operations).,> 0.1 & P,4.2,Backend;TmaL2;Compute,,pub/v3,L2,;bot;,,,Tip: consider Port Saturation analysis as next step., -BE/Core,,,Divider,,,,,,,,,,ARITH.DIV_ACTIVE / CLKS,,,,,,,,,ARITH.DIVIDER_ACTIVE / CLKS,,ARITH.FPU_DIV_ACTIVE / CORE_CLKS,,10 * ARITH.DIVIDER_UOPS / CORE_CLKS,,,,ARITH.FPU_DIV_ACTIVE / CORE_CLKS,SNB/JKT/IVB/IVT/BDW/BDX ? ARITH.FPU_DIV_ACTIVE : HSW/HSX ? ARITH.DIVIDER_UOPS : SKL/SKX/KBLR/CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM ? ARITH.DIVIDER_ACTIVE : ARITH.DIV_ACTIVE,Clocks,This metric represents fraction of cycles where the Divider unit was active. Divide and square root instructions are performed by the Divider unit and can take considerably longer latency than integer or Floating Point addition; subtraction; or multiplication.,> 0.2 & P,5.0,BvCB;,1.0,pub/v3,L3,;bot;,,,, -BE/Core,,,,FP_Divider,,,,,,,,,ARITH.FPDIV_ACTIVE / CLKS,,,,ARITH.FP_DIVIDER_ACTIVE / CLKS,,,,,,,,,,,,,#NA,,Clocks,This metric represents fraction of cycles where the Floating-Point Divider unit was active.,> 0.2 & P,5.0,,,,L4,,,,, -BE/Core,,,,INT_Divider,,,,,,,,,,,,,Divider - FP_Divider,,,,,,,,,,,,,#NA,,Clocks,This metric represents fraction of cycles where the Integer Divider unit was active.,> 0.2 & P,5.0,,,,L4,,,,, -BE/Core,,,Serializing_Operation,,,,( BE_STALLS.SCOREBOARD + CPU_CLK_UNHALTED.C02 ) / CLKS,,,,,,RESOURCE_STALLS.SCOREBOARD / CLKS + C02_Wait,,,,RESOURCE_STALLS.SCOREBOARD / CLKS,,,,,PARTIAL_RAT_STALLS.SCOREBOARD / CLKS,,,,,,,,#NA,LNL/ARL ? BE_STALLS.SCOREBOARD : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? PARTIAL_RAT_STALLS.SCOREBOARD : RESOURCE_STALLS.SCOREBOARD,Clocks,This metric represents fraction of cycles the CPU issue-pipeline was stalled due to serializing operations. Instructions like CPUID; WRMSR or LFENCE serialize the out-of-order execution which may limit performance.,> 0.1 & P; $issueSO,4.7,BvIO;PortsUtil,,pub/v3.4,L3,;bot;,,,, -BE/Core,,,,Slow_Pause,,,,,,,,,CPU_CLK_UNHALTED.PAUSE / CLKS,,,37 * MISC_RETIRED.PAUSE_INST / CLKS,140 * MISC_RETIRED.PAUSE_INST / CLKS,174 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,40 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,140 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,,,,,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/SKX ? #NA : KBLR/CFL/CLX/CPX ? ROB_MISC_EVENTS.PAUSE_INST : ICL/ICX/RKL/TGL ? MISC_RETIRED.PAUSE_INST : CPU_CLK_UNHALTED.PAUSE_INST,Clocks,This metric represents fraction of cycles the CPU was stalled due to PAUSE Instructions.,> 0.05 & P,4.3,,,,L4,;,,,, -BE/Core,,,,C01_Wait,,,,,,,,,CPU_CLK_UNHALTED.C01 / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due staying in C0.1 power-performance optimized state (Faster wakeup time; Smaller power savings).,> 0.05 & P,4.9,C0Wait,,,L4,,,ZeroOk,, -BE/Core,,,,C02_Wait,,,,,,,,,CPU_CLK_UNHALTED.C02 / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due staying in C0.2 power-performance optimized state (Slower wakeup time; Larger power savings).,> 0.05 & P,4.9,C0Wait,,pub/5.0,L4,;bot;,,ZeroOk,, -BE/Core,,,,Memory_Fence,,,,,,,,,13 * MISC2_RETIRED.LFENCE / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due to LFENCE Instructions.,> 0.05 & P,4.3,,1.0,,L4,,,,, -BE/Core,,,AMX_Busy,,,,,,,,,EXE.AMX_BUSY / CORE_CLKS,,,,,,,,,,,,,,,,,,,,Core_Clocks,This metric estimates fraction of cycles where the Advanced Matrix eXtensions (AMX) execution engine was busy with tile (arithmetic) operations,> 0.5 & P,4.7,BvCB;Compute;HPC;Server,,pub/v4.6,L3,;bot;,,,, -BE/Core,,,Ports_Utilization,,,,,,,,,,#Core_Bound_Cycles / CLKS if ( ARITH.DIV_ACTIVE < ( CYCLE_ACTIVITY.STALLS_TOTAL - EXE_ACTIVITY.BOUND_ON_LOADS ) ) else #Few_Uops_Executed_Threshold / CLKS,,,,,,,,,#Core_Bound_Cycles / CLKS if ( ARITH.DIVIDER_ACTIVE < ( CYCLE_ACTIVITY.STALLS_TOTAL - CYCLE_ACTIVITY.STALLS_MEM_ANY ) ) else #Few_Uops_Executed_Threshold / CLKS,,( #Backend_Bound_Cycles - RESOURCE_STALLS.SB - CYCLE_ACTIVITY.STALLS_MEM_ANY ) / CLKS,,,,,,( #Backend_Bound_Cycles - RESOURCE_STALLS.SB - #STALLS_MEM_ANY ) / CLKS,,Clocks,This metric estimates fraction of cycles the CPU performance was potentially limited due to Core computation issues (non divider-related). Two distinct categories can be attributed into this metric: (1) heavy data-dependency among contiguous instructions would manifest in this metric - such cases are often referred to as low Instruction Level Parallelism (ILP). (2) Contention on some hardware execution unit other than Divider. For example; when there are too many multiply operations.,> 0.15 & P,4.7,PortsUtil,,pub/v3,L3,;bot;,,,Loop Vectorization -most compilers feature auto-Vectorization options today- reduces pressure on the execution ports as multiple elements are calculated with same uop., -BE/Core,,,,Ports_Utilized_0,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,"max( EXE_ACTIVITY.EXE_BOUND_0_PORTS - RESOURCE_STALLS.SCOREBOARD , 0 ) / CLKS",,,,"( EXE_ACTIVITY.EXE_BOUND_0_PORTS + max( RS.EMPTY_RESOURCE - RESOURCE_STALLS.SCOREBOARD , 0 ) ) / CLKS * ( CYCLE_ACTIVITY.STALLS_TOTAL - EXE_ACTIVITY.BOUND_ON_LOADS ) / CLKS",EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,,EXE_ACTIVITY.3_PORTS_UTIL:u0x80 / CLKS,,,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,,,,,#Cycles_0_Ports_Utilized / CORE_CLKS,,#NA,,Clocks,"This metric represents fraction of cycles CPU executed no uops on any execution port (Logical Processor cycles since ICL, Physical Core cycles otherwise). Long-latency instructions like divides may contribute to this metric.",> 0.2 & P,5.0,PortsUtil,,pub/5.0,L4,;bot;,,,Check assembly view and Appendix C in Optimization Manual to find out instructions with say 5 or more cycles latency.,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -BE/Core,,,,,Mixing_Vectors,,,,,,,,160 * ASSISTS.SSE_AVX_MIX / CLKS,,,,,,,,,UOPS_ISSUED.VECTOR_WIDTH_MISMATCH / UOPS_ISSUED.ANY,,,,,,,,#NA,,Clocks,This metric estimates penalty in terms of percentage of([SKL+] injected blend uops out of all Uops Issued -- the Count Domain; [ADL+] cycles). Usually a Mixing_Vectors over 5% is worth investigating. Read more in Appendix B1 of the Optimizations Guide for this topic.,> 0.05; $issueMV,4.6,,1.0,,L5,,,,, -BE/Core,,,,Ports_Utilized_1,,,,,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL / CLKS,,,,,,,,,,,#Cycles_1_Port_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : EXE_ACTIVITY.1_PORTS_UTIL,Clocks,"This metric represents fraction of cycles where the CPU executed total of 1 uop per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise). This can be due to heavy data-dependency among software instructions; or over oversubscribing a particular hardware resource. In some other cases with high 1_Port_Utilized and L1_Bound; this metric can point to L1 data-cache latency bottleneck that may not necessarily manifest with complete execution starvation (due to the short L1 latency e.g. walking a linked list) - looking at the assembly can be helpful.",> 0.2 & P; $issueL1,4.0,PortsUtil,,pub/5.0,L4,;bot;,,,, -BE/Core,,,,Ports_Utilized_2,,,,,,,,,,,,,EXE_ACTIVITY.2_PORTS_UTIL / CLKS,,,,,,,,,,,#Cycles_2_Ports_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : EXE_ACTIVITY.2_PORTS_UTIL,Clocks,"This metric represents fraction of cycles CPU executed total of 2 uops per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise). Loop Vectorization -most compilers feature auto-Vectorization options today- reduces pressure on the execution ports as multiple elements are calculated with same uop.",> 0.15 & P; $issue2P,4.2,PortsUtil,,pub/5.0,L4,;bot;,,,, -BE/Core,,,,Ports_Utilized_3m,,,,,,,,,,,,,UOPS_EXECUTED.CYCLES_GE_3 / CLKS,,,,,,,,,,,#Cycles_3m_Ports_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : UOPS_EXECUTED.CYCLES_GE_3,Clocks,"This metric represents fraction of cycles CPU executed total of 3 or more uops per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise).",> 0.4 & P,4.7,BvCB;PortsUtil,,pub/5.0,L4,;bot;,,,, -BE/Core,,,,,ALU_Op_Utilization,,UOPS_DISPATCHED.ALU / ( 6 * CLKS ),,,,,,( UOPS_DISPATCHED.PORT_0 + UOPS_DISPATCHED.PORT_1 + UOPS_DISPATCHED.PORT_5_11 + UOPS_DISPATCHED.PORT_6 ) / ( 5 * CORE_CLKS ),,,,( UOPS_DISPATCHED.PORT_0 + UOPS_DISPATCHED.PORT_1 + UOPS_DISPATCHED.PORT_5 + UOPS_DISPATCHED.PORT_6 ) / ( 4 * CORE_CLKS ),,,,,,,,,( UOPS_DISPATCHED_PORT.PORT_0 + UOPS_DISPATCHED_PORT.PORT_1 + UOPS_DISPATCHED_PORT.PORT_5 + UOPS_DISPATCHED_PORT.PORT_6 ) / ( 4 * CORE_CLKS ),,( UOPS_DISPATCHED_PORT.PORT_0 + UOPS_DISPATCHED_PORT.PORT_1 + UOPS_DISPATCHED_PORT.PORT_5 ) / ( 3 * CORE_CLKS ),,,,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution ports for ALU operations.,> 0.4,4.3,,,,L5,,,,, -BE/Core,,,,,,Port_0,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_0 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_0 / CORE_CLKS,,,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_0 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_0 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 0 ([SNB+] ALU; [HSW+] ALU and 2nd branch),> 0.6; $issue2P,4.2,Compute,,,L6,,,,, -BE/Core,,,,,,Port_1,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_1 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_1 / CORE_CLKS,,,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_1 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_1 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 1 (ALU),> 0.6; $issue2P,4.2,,,,L6,,,,, -BE/Core,,,,,,Port_5,,,,,,,#NA,,,,UOPS_DISPATCHED.PORT_5 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_5 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_5 : ICL/ICX/TGL/RKL ? UOPS_DISPATCHED.PORT_5 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 5 ([SNB+] Branches and ALU; [HSW+] ALU),> 0.6; $issue2P,4.2,,,,L6,,,,See section 'Handling Port 5 Pressure' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -BE/Core,,,,,,Port_6,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_6 / CORE_CLKS,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_6 / CORE_CLKS,,,,#NA,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_1 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_1 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 6 ([HSW+] Primary Branch and simple ALU),> 0.6; $issue2P,4.6,,,,L6,,,,, -BE/Core,,,,,Load_Op_Utilization,,UOPS_DISPATCHED.LOAD / ( 3 * CLKS ),,,,,,UOPS_DISPATCHED.PORT_2_3_10 / ( 3 * CORE_CLKS ),,,,UOPS_DISPATCHED.PORT_2_3 / ( 2 * CORE_CLKS ),,,,,,,,,( UOPS_DISPATCHED_PORT.PORT_2 + UOPS_DISPATCHED_PORT.PORT_3 + UOPS_DISPATCHED_PORT.PORT_7 - UOPS_DISPATCHED_PORT.PORT_4 ) / ( 2 * CORE_CLKS ),,( UOPS_DISPATCHED_PORT.PORT_2 + UOPS_DISPATCHED_PORT.PORT_3 - UOPS_DISPATCHED_PORT.PORT_4 ) / ( 2 * CORE_CLKS ),,,LNL ? UOPS_DISPATCHED.LOAD : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : ICL/ICX/TGL/RKL ? UOPS_DISPATCHED.PORT_2_3 : UOPS_DISPATCHED.PORT_2_3_10,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution port for Load operations,> 0.6,4.3,,,,L5,,,,, -BE/Core,,,,,,Port_2,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_2 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_2 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 2 ([SNB+]Loads and Store-address; [ICL+] Loads),> 0.6,3.4,,,,L6,,,,, -BE/Core,,,,,,Port_3,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_3 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_3 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 3 ([SNB+]Loads and Store-address; [ICL+] Loads),> 0.6,3.4,,,,L6,,,,, -BE/Core,,,,,Store_Op_Utilization,,( UOPS_DISPATCHED.STD + UOPS_DISPATCHED.STA ) / ( 7 * CLKS ),,,,,,,,,,( UOPS_DISPATCHED.PORT_4_9 + UOPS_DISPATCHED.PORT_7_8 ) / ( 4 * CORE_CLKS ),,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_4 / CORE_CLKS,,,LNL ? UOPS_DISPATCHED.STD;UOPS_DISPATCHED.STA : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : UOPS_DISPATCHED.PORT_7_8,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution port for Store operations,> 0.6,4.1,,,,L5,,,,, -BE/Core,,,,,,Port_4,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_4 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_4 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 4 (Store-data),> 0.6; $issueSpSt,3.4,,,,L6,,,,, -BE/Core,,,,,,Port_7,,,,,,,,,,,#NA,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_7 / CORE_CLKS,,,,#NA,SNB/JKT/IVB/IVT ? #NA : HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_7 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 7 ([HSW+]simple Store-address),> 0.6,3.4,,,,L6,,,,, -RET,Retiring,,,,,,,,,,,,,,,,PERF_METRICS.RETIRING / #PERF_METRICS_SUM if #PERF_METRICS_MSR else UOPS_RETIRED.SLOTS / SLOTS,,,,,,,,,,,,,#Retired_Slots / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_RETIRED.RETIRE_SLOTS : UOPS_RETIRED.SLOTS,Slots,This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. Ideally; all pipeline slots would be attributed to the Retiring category. Retiring of 100% would indicate the maximum Pipeline_Width throughput was achieved. Maximizing Retiring typically increases the Instructions-per-cycle (see IPC metric). Note that a high Retiring value does not necessary mean there is no room for more performance. For example; Heavy-operations or Microcode Assists are categorized under Retiring. They often indicate suboptimal performance and can often be optimized or avoided. ,(> 0.7 | Heavy_Operations),4.3,BvUW;TmaL1,,pub/v3,L1,;bot;,,,A high Retiring value for non-vectorized code may be a good hint for programmer to consider vectorizing his code. Doing so essentially lets more computations be done without significantly increasing number of instructions thus improving the performance., -RET,,Light_Operations,,,,,,,,,,,,,,,"max( 0 , Retiring - Heavy_Operations )",,,,,,,,,,,,,Retiring - Heavy_Operations,INST_RETIRED.PREC_DIST,Slots,This metric represents fraction of slots where the CPU was retiring light-weight operations -- instructions that require no more than one uop (micro-operation). This correlates with total number of instructions used by the program. A uops-per-instruction (see UopPI metric) ratio of 1 or less should be expected for decently optimized code running on Intel Core/Xeon products. While this often indicates efficient X86 instructions were executed; high value does not necessarily mean better performance cannot be achieved. ([ICL+] Note this may undercount due to approximation using indirect events; [ADL+] .),> 0.6,4.6,Retire;TmaL2,,pub/v3,L2,;bot;,,,Focus on techniques that reduce instruction count or result in more efficient instructions generation such as vectorization, #Link: auto-Vectorization options of Intel/other compilers. -RET,,,FP_Arith,,,,,,,,,X87_Use + FP_Scalar + FP_Vector,,,,,,,,,,,,X87_Use + FP_Scalar + FP_Vector,,#NA,,,,X87_Use + FP_Scalar + FP_Vector,,Uops,"This metric represents overall arithmetic floating-point (FP) operations fraction the CPU has executed (retired). Note this metric's value may exceed its parent due to use of ""Uops"" CountDomain and FMA double-counting.",> 0.2 & P,4.7,HPC,,pub/v3,L3,;,,,, -RET,,,,X87_Use,,,,,,,,,,,,,,,,,,Retiring * UOPS_EXECUTED.X87 / UOPS_EXECUTED.THREAD,,INST_RETIRED.X87 * UopPI / #Retired_Slots,,#NA,,#Retired_Slots * FP_COMP_OPS_EXE.X87 / UOPS_EXECUTED.THREAD,,#Retired_Slots * FP_COMP_OPS_EXE.X87 / UOPS_DISPATCHED.THREAD,,Uops,This metric serves as an approximation of legacy x87 usage. It accounts for instructions beyond X87 FP arithmetic operations; hence may be used as a thermometer to avoid X87 high usage and preferably upgrade to modern ISA. See Tip under Tuning Hint.,> 0.1 & P,4.6,Compute,,,L3,;,,,Tip: consider compiler flags to generate newer AVX (or SSE) instruction sets; which typically perform better and feature vectors., -RET,,,,FP_Scalar,,,,,,,,,,,,,,,,,,,,#FP_Arith_Scalar / #Retired_Slots,,#NA,,#FP_Arith_Scalar / UOPS_EXECUTED.THREAD,,#FP_Arith_Scalar / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic floating-point (FP) scalar uops fraction the CPU has retired. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,,pub/v3,L3,;,,,Investigate what limits (compiler) generation of vector code., -RET,,,,FP_Vector,,,,,,,,,,,,,,,,,,,,#FP_Arith_Vector / #Retired_Slots,,#NA,,#FP_Arith_Vector / UOPS_EXECUTED.THREAD,,#FP_Arith_Vector / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic floating-point (FP) vector uops fraction the CPU has retired aggregated across all vector widths. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1.0,pub/v3,L3,;,,,Check if vector width is expected , -RET,,,,,FP_Vector_128b,,( FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16 ) / #Retired_Slots,,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,#NA,,( FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE ) / UOPS_EXECUTED.THREAD,,( FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE ) / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 128-bit wide vectors. May overcount due to FMA double counting prior to LNL.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1.0,,L5,,,,Try to exploit wider vector length, -RET,,,,,FP_Vector_256b,,FP_ARITH_OPS_RETIRED.VECTOR:u0x30 / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256BIT_PACKED_BF16 ) / #Retired_Slots,,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,,#NA,,( SIMD_FP_256.PACKED_DOUBLE + SIMD_FP_256.PACKED_SINGLE ) / UOPS_EXECUTED.THREAD,,( SIMD_FP_256.PACKED_DOUBLE + SIMD_FP_256.PACKED_SINGLE ) / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 256-bit wide vectors. May overcount due to FMA double counting prior to LNL.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1.0,,L5,,,,Try to exploit wider vector length, -RET,,,,,FP_Vector_512b,,,,,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,#NA,,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512BIT_PACKED_BF16 ) / #Retired_Slots,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,,,,,,,,,#NA,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 512-bit wide vectors. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1.0,,L5,,,ZeroOk,, -RET,,,Int_Operations,,,,,,,,,Int_Vector_128b + Int_Vector_256b,Int_Vector_128b + Int_Vector_256b,,,,,,,,,,,,,,,,,,,Uops,"This metric represents overall Integer (Int) select operations fraction the CPU has executed (retired). Vector/Matrix Int operations and shuffles are counted. Note this metric's value may exceed its parent due to use of ""Uops"" CountDomain.",> 0.1 & P,4.7,Pipeline,,,L3,,,,, -RET,,,,Int_Vector_128b,,,INT_VEC_RETIRED.128BIT / #Retired_Slots,,,,,,( INT_VEC_RETIRED.ADD_128 + INT_VEC_RETIRED.VNNI_128 ) / #Retired_Slots,,,,,,,,,,,,,,,,,,,Uops,This metric represents 128-bit vector Integer ADD/SUB/SAD or VNNI (Vector Neural Network Instructions) uops fraction the CPU has retired.,> 0.1 & P; $issue2P,4.4,Compute;IntVector;Pipeline,,,L3,,,,, -RET,,,,Int_Vector_256b,,,INT_VEC_RETIRED.256BIT / #Retired_Slots,,,,,,( INT_VEC_RETIRED.ADD_256 + INT_VEC_RETIRED.MUL_256 + INT_VEC_RETIRED.VNNI_256 ) / #Retired_Slots,,,,,,,,,,,,,,,,,,,Uops,This metric represents 256-bit vector Integer ADD/SUB/SAD/MUL or VNNI (Vector Neural Network Instructions) uops fraction the CPU has retired.,> 0.1 & P; $issue2P,4.7,Compute;IntVector;Pipeline,,,L3,,,,, -RET,,,Memory_Operations,,,,,,,,,,Light_Operations * MEM_UOP_RETIRED.ANY / #Retired_Slots,,,,,,,,,Light_Operations * MEM_INST_RETIRED.ANY / INST_RETIRED.ANY,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring memory operations -- uops for memory load or store accesses.,> 0.1 & P,4.4,Pipeline,,pub/v4.4,L3,,,,, -RET,,,Fused_Instructions,,,,,,,,,,Light_Operations * INST_RETIRED.MACRO_FUSED / #Retired_Slots,,,,#NA,,,,,Light_Operations * UOPS_RETIRED.MACRO_FUSED / #Retired_Slots,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring fused instructions -- where one uop can represent multiple contiguous instructions. CMP+JCC or DEC+JCC are common examples of legacy fusions. {([MTL] Note new MOV+OP and Load+OP fusions appear under Other_Light_Ops in MTL!)},> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,See section 'Optimizing for Macro-fusion' in Optimization Manual:, -RET,,,Non_Fused_Branches,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - INST_RETIRED.BR_FUSED ) / #Retired_Slots,,,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - INST_RETIRED.MACRO_FUSED ) / #Retired_Slots,,,,#NA,,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - UOPS_RETIRED.MACRO_FUSED ) / #Retired_Slots,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring branch instructions that were not fused. Non-conditional branches like direct JMP or CALL would count here. Can be used to examine fusible conditional jumps that were not fused.,> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,, -RET,,,Branch_Instructions,,,,,,,,,,#NA,,,,Light_Operations * BR_INST_RETIRED.ALL_BRANCHES / #Retired_Slots,,,,,#NA,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring branch instructions.,> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,, -RET,,,Other_Light_Ops,,,,,,,,,,,,,,,,,,,"max( 0 , Light_Operations - #Light_Ops_Sum )",,,,,,,,#NA,,Slots,This metric represents the remaining light uops fraction the CPU has executed - remaining means not covered by other sibling nodes. May undercount due to FMA double counting,> 0.3 & P,4.7,Pipeline,,pub/v3,L3,,,,, -RET,,,,Nop_Instructions,,,,,,,,,,,,,,,,,,Light_Operations * INST_RETIRED.NOP / #Retired_Slots,,,,,,,,,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : SKL/SKX/KBL/CLX/CPX ? INST_RETIRED.NOP_PS : INST_RETIRED.NOP,Slots,This metric represents fraction of slots where the CPU was retiring NOP (no op) instructions. Compilers often use NOPs for certain address alignments - e.g. start address of a function or loop body.,> 0.1 & P,4.9,BvBO;Pipeline,,pub/v4.3,L4,,,,Improve Codegen by correctly placing NOPs outside hot sections (e.g. outside loop body)., -RET,,,,Shuffles_256b,,,,,,,,,Light_Operations * INT_VEC_RETIRED.SHUFFLES / #Retired_Slots,,,,,,,,,,,,,,,,,,,Slots,"This metric represents fraction of slots where the CPU was retiring Shuffle operations of 256-bit vector size (FP or Integer). Shuffles may incur slow cross ""vector lane"" data transfers.",> 0.1 & P,4.7,HPC;Pipeline,,,L4,,,,, -RET,,Heavy_Operations,,,,,,,,,,,PERF_METRICS.HEAVY_OPERATIONS / #PERF_METRICS_SUM if #PERF_METRICS_MSR else UOPS_RETIRED.HEAVY / SLOTS,,,,Microcode_Sequencer + Retiring * ( UOPS_DECODED.DEC0 - UOPS_DECODED.DEC0:c1 ) / IDQ.MITE_UOPS,,,,,( #Retired_Slots + UOPS_RETIRED.MACRO_FUSED - INST_RETIRED.ANY ) / SLOTS,,,,,,,,Microcode_Sequencer,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/RKL/TGL ? #NA : UOPS_RETIRED.HEAVY,Slots,This metric represents fraction of slots where the CPU was retiring heavy-weight operations -- instructions that require two or more uops or micro-coded sequences. This highly-correlates with the uop length of these instructions/sequences.([ICL+] Note this may overcount due to approximation using indirect events; [ADL+]),> 0.1,4.3,Retire;TmaL2,,pub/v4.1,L2,;bot;,,,, -RET,,,Few_Uops_Instructions,,,,,,,,,,"max( 0 , Heavy_Operations - Microcode_Sequencer )",,,,,,,,,Heavy_Operations - Microcode_Sequencer,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring instructions that that are decoder into two or more uops. This highly-correlates with the number of uops in such instructions.,> 0.05 & P; $issueD0,5.0,,,pub/5.0,L3,;bot;,,,, -RET,,,Microcode_Sequencer,,,,,,,,,,UOPS_RETIRED.MS / SLOTS,,,,,,,,,,,,,,,,,#Retire_Fraction * IDQ.MS_UOPS / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/TGL/RKL ? IDQ.MS_UOPS : UOPS_RETIRED.MS,Slots,This metric represents fraction of slots the CPU was retiring uops fetched by the Microcode Sequencer (MS) unit. The MS is used for CISC instructions not supported by the default decoders (like repeat move strings; or CPUID); or by microcode assists used to address some operation modes (like in Floating Point assists). These cases can often be avoided.,> 0.05 & P; $issueMC; $issueMS,4.5,MicroSeq,,pub/v3,L3,;bot;,,,, #Link: repeat move strings -RET,,,,Assists,,,,,,,,,#Avg_Assist_Cost * ASSISTS.ANY / SLOTS,,,,#Avg_Assist_Cost * ASSISTS.ANY / SLOTS,,,,,#Avg_Assist_Cost * ( FP_ASSIST.ANY + OTHER_ASSISTS.ANY ) / SLOTS,,,,,,#Avg_Assist_Cost * OTHER_ASSISTS.ANY_WB_ASSIST / SLOTS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? OTHER_ASSISTS.ANY_WB_ASSIST : SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? OTHER_ASSISTS.ANY : ASSISTS.ANY,Slots_Estimated,This metric estimates fraction of slots the CPU retired uops delivered by the Microcode_Sequencer as a result of Assists. Assists are long sequences of uops that are required in certain corner-cases for operations that cannot be handled natively by the execution pipeline. For example; when working with very small floating point values (so-called Denormals); the FP units are not set up to perform these operations natively. Instead; a sequence of instructions to perform the computation on the Denormals is injected into the pipeline. Since these microcode sequences might be dozens of uops long; Assists can be extremely deleterious to performance and they can be avoided in many cases.,> 0.1 & P,4.6,BvIO;,1.0,pub/v4.6,L4,;bot;,,,, -RET,,,,,Page_Faults,,,,,,,,99 * ASSISTS.PAGE_FAULT / SLOTS,,,,,,,,,,,,,,,,,,,Slots_Estimated,This metric roughly estimates fraction of slots the CPU retired uops as a result of handing Page Faults. A Page Fault may apply on first application access to a memory page. Note operating system handling of page faults accounts for the majority of its cost.,> 0.05,4.4,,,,L5,,,,, -RET,,,,,FP_Assists,,,,,,,,30 * ASSISTS.FP / SLOTS,,,,34 * ASSISTS.FP / SLOTS,,,,,34 * FP_ASSIST.ANY / SLOTS,,,,,,,,,,Slots_Estimated,This metric roughly estimates fraction of slots the CPU retired uops as a result of handing Floating Point (FP) Assists. FP Assist may apply when working with very small floating point values (so-called Denormals).,> 0.1,4.6,HPC,,,L5,,,ZeroOk,"Consider DAZ (Denormals Are Zero) and/or FTZ (Flush To Zero) options in your compiler; ""-ffast-math"" with -O2 in GCC for example. This option may improve performance if the denormal values are not critical in your application. Also note that the DAZ and FTZ modes are not compatible with the IEEE Standard 754.",https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/reference/cpu-metrics-reference/bad-speculation-back-end-bound-pipeline-slots/fp-assists.html -RET,,,,,AVX_Assists,,,,,,,,63 * ASSISTS.SSE_AVX_MIX / SLOTS,,,,,,,,,,,,,,,,,,,Slots_Estimated,This metric estimates fraction of slots the CPU retired uops as a result of handing SSE to AVX* or AVX* to SSE transition Assists. ,> 0.1,4.6,HPC,,,L5,,,ZeroOk,, -RET,,,,CISC,,,,,,,,,,,,,,,,,,,,,,,,"max( 0 , Microcode_Sequencer - Assists )",,#NA,MTL/ADL/SPR/SPR-HBM ? FRONTEND_RETIRED.MS_FLOWS : #NA,Slots,This metric estimates fraction of cycles the CPU retired uops originated from CISC (complex instruction set computer) instruction. A CISC instruction has multiple uops that are required to perform the instruction's functionality as in the case of read-modify-write as an example. Since these instructions require multiple uops they may or may not imply sub-optimal use of machine resources.,> 0.1 & P,4.4,,,,L4,,,,, -.,metrics,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,2.5,,,pub/v3,-,;bot;,,,, -Info.Botlnk.L0,Core_Bound_Likely,,,,,,#NA,,,,,,,,,,,,,,,100 * ( 1 - Core_Bound / Ports_Utilization if Core_Bound < Ports_Utilization else 1 ) if SMT_2T_Utilization > 0.5 else 0,,,,,,,,,,Metric,Probability of Core Bound bottleneck hidden by SMT-profiling artifacts,> 0.5,4.7,Cor;SMT,1.0,,0,,,InTree+SMT_2T_Utilization,Tip: consider analysis with SMT disabled, -Info.Thread,IPC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / CLKS,,Metric,Instructions Per Cycle (per Logical Processor),,4.3,Ret;Summary,#Pipeline_Width + 2,pub/v3,L1,;bot;EDP;perf;VTune,,,, -Info.Thread,UopPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#Retired_Slots / INST_RETIRED.ANY,,Metric,Uops Per Instruction,> 1.05,4.5,Pipeline;Ret;Retire,2.0,pub/v3,L1,;EDP;perf,,,, -Info.Thread,UpTB,,,,,,,,,,,,,,,,,,,,,,,,,,,#Retired_Slots / BR_INST_RETIRED.NEAR_TAKEN,,,,Metric,Uops per taken branch,< #Pipeline_Width * 1.5,4.8,Branches;Fed;FetchBW,,pub/5.0,i,;bot;perf,,,, -Info.Thread,CPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 / IPC,,Metric,Cycles Per Instruction (per Logical Processor),,2.7,Pipeline;Mem,,pub/v3,i,;EDP;perf;VTune,,,, -Info.Thread,CLKS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD,,Count,Per-Logical Processor actual clocks when the Logical Processor is active.,,4.2,Pipeline,,pub/v3,L1,;bot;EDP;perf;VTune,,,, -Info.Thread,SLOTS,,,,,,TOPDOWN.SLOTS:perf_metrics if #PERF_METRICS_MSR else TOPDOWN.SLOTS_P,,,,,,,,,,TOPDOWN.SLOTS:perf_metrics if #PERF_METRICS_MSR else TOPDOWN.SLOTS,,,,,,,,,,,,,#Pipeline_Width * CORE_CLKS,,Count,Total issue-pipeline slots (per-Physical Core till ICL; per-Logical Processor ICL onward),,4.3,TmaL1,,pub/v3,L1,;bot;EDP;perf;VTune,,,, -Info.Thread,Slots_Utilization,,,,,,#NA,,,,,,,,,,SLOTS / ( TOPDOWN.SLOTS:percore / 2 ) if #SMT_on else 1,,,,,,,,,,,,,#NA,,Metric,Fraction of Physical Core issue-slots utilized by this Logical Processor,,4.1,SMT;TmaL1,1.0,,i,,,,, -Info.Thread,Execute_per_Issue,,,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / UOPS_ISSUED.ANY,,#NA,,UOPS_EXECUTED.THREAD / UOPS_ISSUED.ANY,,UOPS_DISPATCHED.THREAD / UOPS_ISSUED.ANY,,Metric,"The ratio of Executed- by Issued-Uops. Ratio > 1 suggests high rate of uop micro-fusions. Ratio < 1 suggest high rate of ""execute"" at rename stage.",,4.3,Cor;Pipeline,,,,,,,, -Info.Core,CoreIPC,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / CORE_CLKS,,Core_Metric,Instructions Per Cycle across hyper-threads (per physical core),,4.3,Ret;SMT;TmaL1,#Pipeline_Width + 2,pub/v3,1,;EDP;perf,,,, -Info.Core,FLOPc,,,,,,#FLOP_Count / CLKS,,,,,,,,,,,,,,,,,#FLOP_Count / CORE_CLKS,,#NA,,,,#FLOP_Count / CORE_CLKS,,Core_Metric,Floating Point Operations Per Cycle,,4.8,Ret;Flops,10.0,pub/v3,i,;perf,,,, -Info.Core,FP_Arith_Utilization,,,,,,( FP_ARITH_DISPATCHED.V0 + FP_ARITH_DISPATCHED.V1 + FP_ARITH_DISPATCHED.V2 + FP_ARITH_DISPATCHED.V3 ) / ( 4 * CLKS ),,,,,,( FP_ARITH_DISPATCHED.PORT_0 + FP_ARITH_DISPATCHED.PORT_1 + FP_ARITH_DISPATCHED.PORT_5 ) / ( 2 * CORE_CLKS ),,,,,,,,,,,( #FP_Arith_Scalar + #FP_Arith_Vector ) / ( 2 * CORE_CLKS ),,,,,,#NA,,Core_Metric,Actual per-core usage of the Floating Point non-X87 execution units (regardless of precision or vector-width). Values > 1 are possible due to ([BDW+] Fused-Multiply Add (FMA) counting - common; [ADL+] use all of ADD/MUL/FMA in Scalar or 128/256-bit vectors - less common).,,4.8,Cor;Flops;HPC,2.0,,i,;EDP,,,, -Info.Core,ILP,,,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / UOPS_EXECUTED.THREAD:c1,,( UOPS_EXECUTED.CORE / 2 / #Execute_Cycles ) if #SMT_on else UOPS_EXECUTED.CORE / #Execute_Cycles,,UOPS_EXECUTED.THREAD / UOPS_EXECUTED.THREAD:c1,,UOPS_DISPATCHED.THREAD / #Execute_Cycles,,Metric,Instruction-Level-Parallelism (average number of uops executed when there is execution) per thread (logical-processor),,4.7,Backend;Cor;Pipeline;PortsUtil,#Exe_Ports,pub/v3,i,;EDP;perf,,,, -Info.Core,EPC,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / CLKS,,,,,,,,,,Metric,uops Executed per Cycle,,4.6,Power,20.0,,,;EDP;perf,,,, -Info.Core,CORE_CLKS,,,,,,#NA,,,,,,,,,,CPU_CLK_UNHALTED.DISTRIBUTED if #SMT_on else CLKS,,,,,,,,,,,,,( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ) if #EBS_Mode else ( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else CLKS,,Count,Core actual clocks when any Logical Processor is active on the Physical Core,,4.1,SMT,,pub/v3,1,;bot;perf;vtune,,,, -Info.Inst_Mix,IpLoad,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_LOADS,,,,,,INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_LOADS_PS,,,,Inst_Metric,Instructions per Load (lower number means higher occurrence rate),< 3,4.6,InsType,,pub/v3.2,i,;perf,,,Tip: reduce memory accesses,#Link Opt Guide section: Minimize Register Spills -Info.Inst_Mix,IpStore,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_STORES,,,,,,INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_STORES_PS,,,,Inst_Metric,Instructions per Store (lower number means higher occurrence rate),< 8,4.6,InsType,,pub/v3.2,i,;perf,,,Tip: reduce memory accesses,#Link Opt Guide section: Minimize Register Spills -Info.Inst_Mix,IpBranch,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.ALL_BRANCHES,,,,Inst_Metric,Instructions per Branch (lower number means higher occurrence rate),< 8,3.2,Branches;Fed;InsType,,pub/v3.2,i,;perf,,,, -Info.Inst_Mix,IpCall,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.NEAR_CALL,,,,Inst_Metric,Instructions per (near) call (lower number means higher occurrence rate),< 200,4.7,Branches;Fed;PGO,,pub/v3.4,i,;perf,,,, -Info.Inst_Mix,IpTB,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.NEAR_TAKEN,,,,Inst_Metric,Instructions per taken branch,< #Pipeline_Width * 2 + 1; $issueFB,4.5,Branches;Fed;FetchBW;Frontend;PGO,,pub/v3.2,i,;EDP;perf,,,, -Info.Inst_Mix,BpTkBranch,,,,,,,,,,,,,,,,,,,,,,,,,,,BR_INST_RETIRED.ALL_BRANCHES / BR_INST_RETIRED.NEAR_TAKEN,,,,Metric,Branch instructions per taken branch. ,,4.0,Branches;Fed;PGO,,pub/v3.2,i,;perf,,,Can be used to approximate PGO-likelihood for non-loopy codes., -Info.Inst_Mix,IpFLOP,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / #FLOP_Count,,,,,,,,Inst_Metric,Instructions per Floating Point (FP) Operation (lower number means higher occurrence rate),< 10,4.8,Flops;InsType,,pub/v4,i,;perf,,,Reference: Tuning Performance via Metrics with Expectations,https://doi.org/10.1109/LCA.2019.2916408 -Info.Inst_Mix,IpArith,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / ( #FP_Arith_Scalar + #FP_Arith_Vector ),,#NA,,1 / ( FP_Scalar + FP_Vector ),,,,Inst_Metric,Instructions per FP Arithmetic instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting. Approximated prior to BDW.,< 10,4.8,Flops;InsType,,,i,,,,, -Info.Inst_Mix,IpArith_Scalar_HP,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED2.SCALAR if #FP16 else #NA,,,,,,,,,,,,,,,,,,,,Inst_Metric,Instructions per FP Arithmetic Scalar Half-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType;Server,,,i,,,,, -Info.Inst_Mix,IpArith_Scalar_SP,,,,,,INST_RETIRED.ANY / FP_ARITH_OPS_RETIRED.SCALAR_SINGLE,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED.SCALAR_SINGLE,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic Scalar Single-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType,,,i,,,,, -Info.Inst_Mix,IpArith_Scalar_DP,,,,,,INST_RETIRED.ANY / FP_ARITH_OPS_RETIRED.SCALAR_DOUBLE,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED.SCALAR_DOUBLE,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic Scalar Double-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType,,,i,,,,, -Info.Inst_Mix,IpArith_AVX128,,,,,,INST_RETIRED.ANY / ( FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.128B_PACKED_SINGLE ),,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16 ),,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX/SSE 128-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, -Info.Inst_Mix,IpArith_AVX256,,,,,,INST_RETIRED.ANY / ( FP_ARITH_OPS_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.256B_PACKED_SINGLE ),,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256BIT_PACKED_BF16 ),,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX* 256-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, -Info.Inst_Mix,IpArith_AVX512,,,,,,,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),#NA,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512BIT_PACKED_BF16 ),,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),,,,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX 512-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, -Info.Inst_Mix,IpPause,,,,,,,,,,,,Instructions / CPU_CLK_UNHALTED.PAUSE_INST,,,,Instructions / MISC_RETIRED.PAUSE_INST,,,Instructions / ROB_MISC_EVENTS.PAUSE_INST,,,,,,,,,,,,Inst_Metric,Instructions per PAUSE (lower number means higher occurrence rate),,4.7,Flops;FpVector;InsType,,,,,,,, -Info.Inst_Mix,IpSWPF,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_SWPF,,,,,,,,,,,,,,,INST_RETIRED.ANY / SW_PREFETCH_ACCESS.ANY,,,,,,,,,,Inst_Metric,Instructions per Software prefetch instruction (of any type: NTA/T0/T1/T2/Prefetch) (lower number means higher occurrence rate),< 100,4.9,Prefetches,1000,,i,,,,, -Info.Inst_Mix,Instructions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY,INST_RETIRED.PREC_DIST,Count,Total number of retired Instructions,,4.0,Summary;TmaL1,,pub/v3.2,L1,;perf,,,, -Info.Pipeline,Retire,,,,,,,,,,,,,,,,#Retired_Slots / UOPS_RETIRED.SLOTS:c1,,,,,,,,,,,,,#Retired_Slots / UOPS_RETIRED.RETIRE_SLOTS:c1,,Metric,Average number of Uops retired in cycles where at least one uop has retired.,,4.4,Pipeline;Ret,,,,,,,, -Info.Pipeline,Strings_Cycles,,,,,,,,,,,,INST_RETIRED.REP_ITERATION / UOPS_RETIRED.SLOTS:c1,,,,,,,,,,,,,,,,,,,Metric,Estimated fraction of retirement-cycles dealing with repeat instructions,> 0.1,4.4,MicroSeq;Pipeline;Ret,,,3,;EDP;perf,,,, -Info.Pipeline,IpAssist,,,,,,,,,,,,,,,,INST_RETIRED.ANY / ASSISTS.ANY,,,,,INST_RETIRED.ANY / ( FP_ASSIST.ANY + OTHER_ASSISTS.ANY ),,,,,,,,,,Inst_Metric,Instructions per a microcode Assist invocation. See Assists tree node for details (lower number means higher occurrence rate),< 100000,4.6,MicroSeq;Pipeline;Ret;Retire,,pub/v4.6,,,,,, -Info.Pipeline,Execute,,,,,,#NA,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / #Execute_Cycles,,#NA,,UOPS_EXECUTED.THREAD / #Execute_Cycles,,,,Metric,Mem;Backend;CacheHits,,4.7,Cor;Pipeline;PortsUtil;SMT,#Exe_Ports,,i,,,,, -Info.Pipeline,Fetch_LSD,,,,,,,#NA,,,,#NA,,,,#NA,,,#NA,LSD.UOPS / LSD.CYCLES_ACTIVE,,,,,,,,,,#NA,,Metric,Average number of uops fetched from LSD per cycle,,5.02,Fed;FetchBW,,,,,,,, -Info.Pipeline,Fetch_DSB,,,,,,,,,,,,,,,,,,,,,IDQ.DSB_UOPS / IDQ.DSB_CYCLES_ANY,,,,,,,,,,Metric,Average number of uops fetched from DSB per cycle,,4.8,Fed;FetchBW,,,,,,,, -Info.Pipeline,Fetch_MITE,,,,,,,,,,,,,,,,IDQ.MITE_UOPS / IDQ.MITE_CYCLES_ANY,,,,,IDQ.MITE_UOPS / IDQ.MITE_CYCLES,,,,,,,,,,Metric,Average number of uops fetched from MITE per cycle,,4.8,Fed;FetchBW,,,,,,,, -Info.Pipeline,Fetch_MS,,,,,,IDQ.MS_UOPS / IDQ.MS_UOPS:c1,,,,,,#NA,,,,,,,,,IDQ.MS_UOPS / IDQ.MS_UOPS:c1,,,,,,,,,,Metric,Average number of uops fetched from MS per cycle,,5.1,Fed;FetchLat;MicroSeq,,,,,,,, -Info.Frontend,Fetch_UpC,,,,,,,,,,,,,,,,,,,,,UOPS_ISSUED.ANY / UOPS_ISSUED.ANY:c1,,,,,,,,,,Metric,Average number of Uops issued by front-end when it issued something,,4.3,Fed;FetchBW,6.0,pub/v4.5,,,,,, -Info.Frontend,LSD_Coverage,,,,,,,#NA,,,,#NA,,,,#NA,,,#NA,LSD.UOPS / #Fetched_Uops,,,,,,,,,,#NA,,Metric,Fraction of Uops delivered by the LSD (Loop Stream Detector; aka Loop Cache),,5.02,Fed;LSD,1.0,pub/v4,i,;perf,,,, -Info.Frontend,DSB_Coverage,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IDQ.DSB_UOPS / #Fetched_Uops,,Metric,Fraction of Uops delivered by the DSB (aka Decoded ICache; or Uop Cache),< 0.7 & #HighIPC; $issueFB,4.5,DSB;Fed;FetchBW,1.0,pub/v3,i,;perf;vtune,,,See section 'Decoded ICache' in Optimization Manual,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html -Info.Frontend,Unknown_Branch_Cost,,,,,,,,,,,,INT_MISC.UNKNOWN_BRANCH_CYCLES / INT_MISC.UNKNOWN_BRANCH_CYCLES:c1:e1,,,,,,,,,,,,,,,,,,,Metric,Average number of cycles the front-end was delayed due to an Unknown Branch detection. See Unknown_Branches node.,,4.6,Fed,,,,,,,, -Info.Frontend,DSB_Switch_Cost,,,,,,,,,,,,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / DSB2MITE_SWITCHES.PENALTY_CYCLES:c1:e1,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / DSB2MITE_SWITCHES.COUNT,,,,,,,,,,Metric,Average number of cycles of a switch from the DSB fetch-unit to MITE fetch unit - see DSB_Switches tree node for details.,,4.4,DSBmiss,,,,,,,, -Info.Frontend,TBpC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BR_INST_RETIRED.NEAR_TAKEN / CLKS,,Metric,Taken Branches retired Per Cycle,,5.0,Branches;FetchBW,,,,,,,, -Info.Botlnk.L2,DSB_Misses,,,,,,,,,,,,,,,,,,,,,100 * ( Fetch_Latency * DSB_Switches / ##Fetch_Latency + Fetch_Bandwidth * MITE / ##Fetch_Bandwidth ),,,,,,,,,,Scaled_Slots,Total pipeline cost of DSB (uop cache) misses - subset of the Instruction_Fetch_BW Bottleneck.,> 10; $issueFB,4.5,DSBmiss;Fed,,pub/v4.3,0,;EDP;perf;VTune,,InTree,, -Info.Botlnk.L2,DSB_Bandwidth,,,,,,,,,,,,,,,,,,,,,100 * ( Frontend_Bound * ( Fetch_Bandwidth / ##Frontend_Bound ) * ( DSB / ##Fetch_Bandwidth ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of DSB (uop cache) hits - subset of the Instruction_Fetch_BW Bottleneck.,> 10; $issueFB,4.8,DSB;Fed;FetchBW,,,0,;EDP;perf;VTune,,InTree,, -Info.Frontend,DSB_Switches_Ret,,,,,,,,FRONTEND_RETIRED.ANY_DSB_MISS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired DSB misses,> 0.05,5.0,DSBmiss;Fed;FetchLat,,,3,,,,, -Info.Frontend,MS_Latency_Ret,,,,,,,,FRONTEND_RETIRED.MS_FLOWS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired operations that invoke the Microcode Sequencer,> 0.05,5.0,Fed;FetchLat;MicroSeq,,,3,,,,, -Info.Frontend,Unknown_Branches_Ret,,,,,,,,FRONTEND_RETIRED.UNKNOWN_BRANCH*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired branches who got branch address clears,,5.0,Fed;FetchLat,,,3,,,,, -Info.Frontend,ICache_Miss_Latency,,,,,,,,ICACHE_DATA.STALLS / ICACHE_DATA.STALL_PERIODS,,,,ICACHE_DATA.STALLS / ICACHE_DATA.STALLS:c1:e1,,,,ICACHE_16B.IFDATA_STALL / ICACHE_16B.IFDATA_STALL:c1:e1,,,,,ICACHE_16B.IFDATA_STALL / ICACHE_16B.IFDATA_STALL:c1:e1 + 2,,,,,,,,,,Metric,Average Latency for L1 instruction cache misses,,4.5,Fed;FetchLat;IcMiss,,,3,,,,, -Info.Botlnk.L2,IC_Misses,,,,,,,,,,,,,,,,,,,,,100 * ( Fetch_Latency * ICache_Misses / ##Fetch_Latency ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Instruction Cache misses - subset of the Big_Code Bottleneck.,> 5; $issueFL,4.5,Fed;FetchLat;IcMiss,,,0,,,InTree,, -Info.Frontend,IpDSB_Miss_Ret,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FRONTEND_RETIRED.ANY_DSB_MISS,,,,,,,,,,Inst_Metric,Instructions per non-speculative DSB miss (lower number means higher occurrence rate),< 50,4.3,DSBmiss;Fed,,,3,;EDP;perf,,,, -Info.Frontend,IpUnknown_Branch,,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions / BACLEARS.ANY,,,,Metric,Instructions per speculative Unknown Branch Misprediction (BAClear) (lower number means higher occurrence rate),,4.5,Fed,,,i,EDP,,,, -Info.Frontend,L2MPKI_Code,,,,,,,,,,,,,,,,,,,,,1000 * FRONTEND_RETIRED.L2_MISS / INST_RETIRED.ANY,,,,,,,,,,Metric,L2 cache true code cacheline misses per kilo instruction ,,4.5,IcMiss,,,i,,,,, -Info.Frontend,L2MPKI_Code_All,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.CODE_RD_MISS / INST_RETIRED.ANY,,,,,,,,,,Metric,L2 cache speculative code cacheline misses per kilo instruction ,,4.5,IcMiss,,,i,,,,, -Info.Bad_Spec,IpMispredict,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.ALL_BRANCHES,,,,Inst_Metric,Number of Instructions per non-speculative Branch Misprediction (JEClear) (lower number means higher occurrence rate),< 200,4.4,Bad;BadSpec;BrMispredicts,,pub/v3.4,i,;perf,,,, -Info.Bad_Spec,IpMisp_Cond_Ntaken,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_NTAKEN,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for conditional non-taken branches (lower number means higher occurrence rate).,< 200,4.5,Bad;BrMispredicts,,,,,,,, -Info.Bad_Spec,IpMisp_Cond_Taken,,,,,,#NA,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for conditional taken branches (lower number means higher occurrence rate).,< 200,4.5,Bad;BrMispredicts,,,,,,,, -Info.Bad_Spec,IpMisp_Cond_Taken_Bwd,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN_BWD,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions per retired Mispredicts for conditional backward-taken branches (lower number means higher occurrence rate).,,5.1,Bad;BrMispredicts,,,,,,,, -Info.Bad_Spec,IpMisp_Cond_Taken_Fwd,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN_FWD,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions per retired Mispredicts for conditional forward-taken branches (lower number means higher occurrence rate).,,5.1,Bad;BrMispredicts,,,,,,,, -Info.Bad_Spec,IpMisp_Ret,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.RET,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for return branches (lower number means higher occurrence rate).,< 500,4.5,Bad;BrMispredicts,,,,,,,, -Info.Bad_Spec,IpMisp_Indirect,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.INDIRECT,,,,,,,,,,,Instructions / ( #Retire_Fraction * BR_MISP_EXEC.INDIRECT ),,,,Inst_Metric,Instructions per retired Mispredicts for indirect CALL or JMP branches (lower number means higher occurrence rate).,< 1000,4.6,Bad;BrMispredicts,,,i,,,,, -Info.Bad_Spec,Branch_Misprediction_Cost,,,,,,,,,,,,,,,,,,,,,Mispredictions * SLOTS / #Pipeline_Width / BR_MISP_RETIRED.ALL_BRANCHES / 100,,,,,,,,#NA,,Core_Metric,Branch Misprediction Cost: Cycles representing fraction of TMA slots wasted per non-speculative branch misprediction (retired JEClear),; $issueBM,5.0,Bad;BrMispredicts,50,pub/v3.4,i,;bot;perf,,,, -Info.Bad_Spec,Spec_Clears_Ratio,,,,,,,,,,,,,,,,,,,,,INT_MISC.CLEARS_COUNT / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT ),,,,,,,,,,Metric,Speculative to Retired ratio of all clears (covering Mispredicts and nukes),,4.6,BrMispredicts,,,,,,,, -Info.Branches,Cond_NT,,,,,,,,,,,,,,,,BR_INST_RETIRED.COND_NTAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,BR_INST_RETIRED.NOT_TAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are non-taken conditionals,,4.3,Bad;Branches;CodeGen;PGO,1.0,,i,,,,, -Info.Branches,Cond_TK,,,,,,#NA,,,,,,,,,,BR_INST_RETIRED.COND_TAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,( BR_INST_RETIRED.CONDITIONAL_PS - BR_INST_RETIRED.NOT_TAKEN ) / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are taken conditionals,,4.3,Bad;Branches;CodeGen;PGO,1.0,,i,,,,, -Info.Branches,Cond_TK_Bwd,,,,,,BR_INST_RETIRED.COND_TAKEN_BWD / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,,,,,,,,,,,,,,,,Fraction,Fraction of branches that are forward taken conditionals,> 0.3,5.0,Bad;Branches;CodeGen;PGO,1.0,,,,,,, -Info.Branches,Cond_TK_Fwd,,,,,,BR_INST_RETIRED.COND_TAKEN_FWD / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,,,,,,,,,,,,,,,,Fraction,Fraction of branches that are forward taken conditionals,> 0.2,5.0,Bad;Branches;CodeGen;PGO,1.0,,,,,,, -Info.Branches,CallRet,,,,,,,,,,,,,,,,,,,,,( BR_INST_RETIRED.NEAR_CALL + BR_INST_RETIRED.NEAR_RETURN ) / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are CALL or RET,,4.3,Bad;Branches,1.0,,i,,,,, -Info.Branches,Jump,,,,,,,,,,,,,,,,,,,,,#Br_DoI_Jumps / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are unconditional (direct or indirect) jumps,,5.1,Bad;Branches,1.0,,i,,,,, -Info.Branches,Other_Branches,,,,,,1 - ( Cond_NT + Cond_TK_Bwd + Cond_TK_Fwd + CallRet + Jump ),,,,,,,,,,1 - ( Cond_NT + Cond_TK + CallRet + Jump ),,,,,,,,,,,,,,,Fraction,Fraction of branches of other types (not individually covered by other metrics in Info.Branches group),,4.3,Bad;Branches,1.0,,i,,,,, -Info.Memory,Load_Miss_Real_Latency,,,,,,L1D_PENDING.LOAD / L1D_MISS.LOAD,,,,,,L1D_PEND_MISS.PENDING / MEM_LOAD_COMPLETED.L1_MISS_ANY,,,,,,,,,L1D_PEND_MISS.PENDING / ( MEM_LOAD_RETIRED.L1_MISS_PS + MEM_LOAD_RETIRED.FB_HIT_PS ),,,,,,L1D_PEND_MISS.PENDING / ( MEM_LOAD_UOPS_RETIRED.L1_MISS + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS ),,#NA,,Clocks_Latency,Actual Average Latency for L1 data-cache miss demand load operations (in core cycles),,4.4,Mem;MemoryBound;MemoryLat,1000,pub/v3.1,3,;bot;EDP;perf;VTune,,,, -Info.Memory,MLP,,,,,,L1D_PENDING.LOAD / L1D_PENDING.LOAD_CYCLES,,,,,,,,,,,,,,,,,,,,,L1D_PEND_MISS.PENDING / L1D_PEND_MISS.PENDING_CYCLES,,#NA,,Metric,Memory-Level-Parallelism (average number of L1 miss demand load when there is at least one such miss. Per-Logical Processor),,3.4,Mem;MemoryBound;MemoryBW,10.0,pub/v3.3,i,;EDP;perf,,,, -Info.Memory,L1DL0_MPKI,,,,,,1000 * ( MEM_LOAD_RETIRED.L1_MISS + MEM_LOAD_RETIRED.L1_HIT_L1 ) / INST_RETIRED.ANY,,,,,,,,,,,,,,,,,,,,,,,#NA,,Metric,L0 cache true misses per kilo instruction for retired demand loads,,5.1,CacheHits;Mem,,,,,,,, -Info.Memory,L1MPKI,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L1_MISS / INST_RETIRED.ANY,,,,,,1000 * MEM_LOAD_UOPS_RETIRED.L1_MISS / INST_RETIRED.ANY,,#NA,,Metric,L1 cache true misses per kilo instruction for retired demand loads,,3.3,CacheHits;Mem,,pub/v3.3,i,;perf,,,, -Info.Memory,L1MPKI_Load,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.ALL_DEMAND_DATA_RD / INST_RETIRED.ANY,,,,,,,,#NA,,Metric,L1 cache true misses per kilo instruction for all demand loads (including speculative),,4.1,CacheHits;Mem,,,i,,,,, -Info.Memory,L2MPKI,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L2_MISS / INST_RETIRED.ANY,,,,,,1000 * MEM_LOAD_UOPS_RETIRED.L2_MISS / INST_RETIRED.ANY,,#NA,,Metric,L2 cache true misses per kilo instruction for retired demand loads,,3.3,Mem;Backend;CacheHits,,pub/v3.3,i,;perf,,,, -Info.Memory,L2MPKI_All,,,,,,,,,,,,,,1000 * L2_RQSTS.MISS / INST_RETIRED.ANY,,1000 * ( ( OFFCORE_REQUESTS.ALL_DATA_RD - OFFCORE_REQUESTS.DEMAND_DATA_RD ) + L2_RQSTS.ALL_DEMAND_MISS + L2_RQSTS.SWPF_MISS ) / Instructions,,,,,,,1000 * L2_RQSTS.MISS / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative),,4.4,CacheHits;Mem;Offcore,,pub/v3.5,i,;perf,,,, -Info.Memory,L2MPKI_Load,,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.DEMAND_DATA_RD_MISS / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative),,4.4,CacheHits;Mem,,,i,;,,,, -Info.Memory,L2MPKI_RFO,,,,,,,,,,,,,,,,1000 * L2_RQSTS.RFO_MISS / INST_RETIRED.ANY,,,,,,,,,,,1000 * OFFCORE_REQUESTS.DEMAND_RFO / INST_RETIRED.ANY,,#NA,,Metric,Offcore requests (L2 cache miss) per kilo instruction for demand RFOs,,4.8,CacheMisses;Offcore,,,i,,,,, -Info.Memory,L2HPKI_All,,,,,,,,,,,,,,1000 * ( L2_RQSTS.REFERENCES - L2_RQSTS.MISS ) / INST_RETIRED.ANY,,#NA,,,,,,,1000 * ( L2_RQSTS.REFERENCES - L2_RQSTS.MISS ) / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache hits per kilo instruction for all request types (including speculative),,4.1,CacheHits;Mem,,pub/v3.5,i,;perf,,,, -Info.Memory,L2HPKI_Load,,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.DEMAND_DATA_RD_HIT / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache hits per kilo instruction for all demand loads (including speculative),,3.5,CacheHits;Mem,,,i,;,,,, -Info.Memory,L3MPKI,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L3_MISS / INST_RETIRED.ANY,,,,1000 * MEM_LOAD_UOPS_RETIRED.L3_MISS_PS / INST_RETIRED.ANY,,1000 * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS / INST_RETIRED.ANY,,#NA,,Metric,L3 cache true misses per kilo instruction for retired demand loads,,3.3,Mem;,,pub/v3.3,i,;perf,,,, -Info.Memory,FB_HPKI,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.FB_HIT / INST_RETIRED.ANY,,,,,,,,#NA,,Metric,Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries),,4.4,CacheHits;Mem,,,i,,,,, -Info.Memory,L1DL0_Cache_Fill_BW,,,,,,64 * L1D.L0_REPLACEMENT / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,,,,#NA,,Metric,Average per-thread data fill bandwidth to the Level 0 within L1D cache [GB / sec],,5.0,Mem;MemoryBW,,,,,,,, -Info.Memory,L1D_Cache_Fill_BW,,,,,,64 * L1D.L1_REPLACEMENT / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,,64 * L1D.REPLACEMENT / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L1 data cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, -Info.Memory,L2_Cache_Fill_BW,,,,,,,,,,,,,,,,,,,,,,,,,,,64 * L2_LINES_IN.ALL / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L2 cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, -Info.Memory,L3_Cache_Fill_BW,,,,,,,,,,,,,,,,,,,,,,,,,,,64 * LONGEST_LAT_CACHE.MISS / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, -Info.Memory,L3_Cache_Access_BW,,,,,,,,,,,,,,,,,,,,,64 * OFFCORE_REQUESTS.ALL_REQUESTS / #OneBillion / Time,,,,,,,,#NA,,Metric,Average per-thread data access bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW;Offcore,,pub/v4.6,i,;perf,,,, -Info.Memory.TLB,Page_Walks_Utilization,,,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 4 * CLKS ),,,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 4 * CORE_CLKS ),,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 2 * CORE_CLKS ),,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING + EPT.WALK_PENDING ) / ( 2 * CORE_CLKS ),( ITLB_MISSES.WALK_DURATION + DTLB_LOAD_MISSES.WALK_DURATION + DTLB_STORE_MISSES.WALK_DURATION + 7 * ( DTLB_STORE_MISSES.WALK_COMPLETED + DTLB_LOAD_MISSES.WALK_COMPLETED + ITLB_MISSES.WALK_COMPLETED ) ) / ( 2 * CORE_CLKS ),( ITLB_MISSES.WALK_DURATION:c1 + DTLB_LOAD_MISSES.WALK_DURATION:c1 + DTLB_STORE_MISSES.WALK_DURATION:c1 + 7 * ( DTLB_STORE_MISSES.WALK_COMPLETED + DTLB_LOAD_MISSES.WALK_COMPLETED + ITLB_MISSES.WALK_COMPLETED ) ) / CORE_CLKS,,,,( ITLB_MISSES.WALK_DURATION + DTLB_LOAD_MISSES.WALK_DURATION + DTLB_STORE_MISSES.WALK_DURATION ) / CORE_CLKS,,#NA,,Core_Metric,Utilization of the core's Page Walker(s) serving STLB misses triggered by instruction/Load/Store accesses,> 0.5,4.3,Mem;MemoryTLB,1.0,pub/v3.2,i,;perf,,,, -Info.Memory.TLB,Code_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,1000 * ITLB_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) code speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Fed;MemoryTLB,,,,,,,, -Info.Memory.TLB,Load_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,1000 * DTLB_LOAD_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) data load speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Mem;MemoryTLB,,,,,,,, -Info.Memory.TLB,Store_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,1000 * DTLB_STORE_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) data store speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Mem;MemoryTLB,,,,,,,, -Info.Memory.TLB,Load_STLB_Miss_Ret,,,,,,,,MEM_INST_RETIRED.STLB_MISS_LOADS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to STLB misses by demand loads,> 0.05,5.0,Mem;MemoryTLB,,,3,,,,, -Info.Memory.TLB,Store_STLB_Miss_Ret,,,,,,,,MEM_INST_RETIRED.STLB_MISS_STORES*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to STLB misses by demand stores,> 0.05,5.0,Mem;MemoryTLB,,,3,,,,, -Info.Memory.Core,L1D_Cache_Fill_BW_2T,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L1D_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L1 data cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, -Info.Memory.Core,L2_Cache_Fill_BW_2T,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L2_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L2 cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, -Info.Memory.Core,L3_Cache_Fill_BW_2T,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L3_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, -Info.Memory.Core,L3_Cache_Access_BW_2T,,,,,,#NA,,,,,,,,,,,,,,,L3_Cache_Access_BW,,,,,,,,#NA,,Core_Metric,Average per-core data access bandwidth to the L3 cache [GB / sec],,4.7,Mem;MemoryBW;Offcore,,,i,,,,, -Info.Memory.Core,L2_Evictions_Silent_PKI,,,,,,,,,,,,,,,,,,,,1000 * L2_LINES_OUT.SILENT / Instructions,,,,,,,,,#NA,,Core_Metric,Rate of silent evictions from the L2 cache per Kilo instruction where the evicted lines are dropped (no writeback to L3 or memory),,4.4,L2Evicts;Mem;Server,,pub/v3.6,i,;perf,,,, -Info.Memory.Core,L2_Evictions_NonSilent_PKI,,,,,,,,,,,,,,,,,,,,1000 * L2_LINES_OUT.NON_SILENT / Instructions,,,,,,,,,#NA,,Core_Metric,Rate of non silent evictions from the L2 cache per Kilo instruction,,4.4,L2Evicts;Mem;Server,,pub/v3.6,i,;perf,,,, -Info.Memory.Prefetches,Useless_HWPF,,,,,,,,,,,,,,,,L2_LINES_OUT.USELESS_HWPF / ( L2_LINES_OUT.SILENT + L2_LINES_OUT.NON_SILENT ),,,,,,,,,,,,,#NA,,Metric,Rate of L2 HW prefetched lines that were not used by demand accesses,> 0.15,5.0,Prefetches,1.0,,,,,,, -Info.Memory.Latency,Load_L2_Miss_Latency,,,,,,,,,,,,,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS.DEMAND_DATA_RD,,,,Clocks_Latency,Average Latency for L2 cache miss demand Loads,,4.5,LockCont;Memory_Lat;Offcore,1000,,,;EDP,,,, -Info.Memory.Latency,Load_L3_Miss_Latency,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.L3_MISS_DEMAND_DATA_RD / OFFCORE_REQUESTS.L3_MISS_DEMAND_DATA_RD,,,,,,,,,,,,,,,,,,,Clocks_Latency,Average Latency for L3 cache miss demand Loads,,4.5,Memory_Lat;Offcore,1000,,,;EDP,,,, -Info.Memory.Latency,Load_L2_MLP,,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD:c1,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_DATA_RD,,,,Metric,Average Parallel L2 cache miss demand Loads,,4.5,Memory_BW;Offcore,100,,,,,,, -Info.Memory.Latency,Data_L2_MLP,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD,,,,Metric,Average Parallel L2 cache miss data reads,,4.6,Memory_BW;Offcore,100,,,,,,, -Info.Memory.Mix,Offcore_Read_Any_PKI,,,,,,,,,,,1000 * OCR.READS_TO_CORE.ANY_RESPONSE / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,Off-core accesses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.6,CacheHits;Offcore;Server,,,,,,,, -Info.Memory.Mix,Offcore_Read_L3M_PKI,,,,,,,,,,,1000 * OCR.READS_TO_CORE.L3_MISS / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,L3 cache misses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.6,Offcore;Server,,,,,,,, -Info.Memory.Mix,Offcore_Read_HBM_PKI,,,,,,,,,#NA,#NA if #Memory > 2 else 1000 * OCR.DEMAND_DATA_RD.PMM / Instructions,,,,,,,,,,,,,,,,,,,#NA,,Metric,High-Bandwidth Memory (HBM) accesses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.7,Offcore;Server,,,,,,,, -Info.Memory.Mix,Offcore_MWrite_Any_PKI,,,,,,,,,,,1000 * OCR.MODIFIED_WRITE.ANY_RESPONSE / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,Off-core accesses per kilo instruction for modified write requests,,4.6,Offcore;Server,,,,,,,, -Info.Memory.Mix,UC_Load_PKI,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_MISC_RETIRED.UC / INST_RETIRED.ANY,,,,,,,,,,Metric,Un-cacheable retired load per kilo instruction,,4.6,Mem,,,,;EDP;perf,,,, -Info.Memory.Mix,Bus_Lock_PKI,,,,,,,,,,,,,,,,1000 * SQ_MISC.BUS_LOCK / INST_RETIRED.ANY,,,,,,,,,,,,,,,Metric,"""Bus lock"" per kilo instruction",,4.6,Mem,,,,;EDP;perf,,,, -Info.System,CPU_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPUs_Utilized / Num_CPUs,,Metric,Average CPU Utilization (percentage),,4.8,HPC;Summary,1,pub/v3,i,perf,,,, -Info.System,CPUs_Utilized,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.REF_TSC / TSC,,Metric,Average number of utilized CPUs,,4.8,Summary,300,pub/v4.6,,;bot;EDP;perf,,,, -Info.System,Core_Frequency,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Turbo_Utilization * TSC / #OneBillion / Time,,System_Metric,Measured Average Core Frequency for unhalted processors [GHz],,4.6,Summary;Power,,pub/v3.4,i,;bot;EDP;perf;VTune,,,, -Info.System,Uncore_Frequency,,,,,,,,,,,,Socket_CLKS / 1e9 / Time,,,,,,,,,,,,,,,,Socket_CLKS / 1e9 / Time,,,System_Metric,Measured Average Uncore Frequency for the SoC [GHz],,4.8,SoC,,,,,,,, -Info.System,GFLOPs,,,,,,,,,,,,,,,,,,,,,,,( #FLOP_Count / #OneBillion ) / Time,,#NA,,,,( #FLOP_Count / #OneBillion ) / Time,,Metric,"Giga Floating Point Operations Per Second. Aggregate across all supported options of: FP precisions, scalar and vector instructions, vector-width",,4.8,Cor;Flops;HPC,200,pub/v3,i,;EDP;perf,,,, -Info.System,Turbo_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CLKS / CPU_CLK_UNHALTED.REF_TSC,,Core_Metric,Average Frequency Utilization relative nominal frequency,,3.0,Power,10.0,pub/v3,i,;bot;EDP;perf;VTune,,,, -Info.System,Power_License0_Utilization,,,,,,,,,,,,#NA,,,,CORE_POWER.LVL0_TURBO_LICENSE / CORE_CLKS,,,,CORE_POWER.LVL0_TURBO_LICENSE / 2 / CORE_CLKS if #SMT_on else CORE_POWER.LVL0_TURBO_LICENSE / CORE_CLKS,,,,,,,,,#NA,,Core_Metric,"Fraction of Core cycles where the core was running with power-delivery for baseline license level 0. This includes non-AVX codes, SSE, AVX 128-bit, and low-current AVX 256-bit codes.",,4.6,Power,1.0,,i,;,,,, -Info.System,Power_License1_Utilization,,,,,,,,,,,,#NA,,,,CORE_POWER.LVL1_TURBO_LICENSE / CORE_CLKS,,,,CORE_POWER.LVL1_TURBO_LICENSE / 2 / CORE_CLKS if #SMT_on else CORE_POWER.LVL1_TURBO_LICENSE / CORE_CLKS,,,,,,,,,#NA,,Core_Metric,Fraction of Core cycles where the core was running with power-delivery for license level 1. This includes high current AVX 256-bit instructions as well as low current AVX 512-bit instructions.,> 0.5,4.6,Power,1.0,,i,;,,,, -Info.System,Power_License2_Utilization,,,,,,,,,,,,#NA,,,,CORE_POWER.LVL2_TURBO_LICENSE / CORE_CLKS,,,,CORE_POWER.LVL2_TURBO_LICENSE / 2 / CORE_CLKS if #SMT_on else CORE_POWER.LVL2_TURBO_LICENSE / CORE_CLKS,,,,,,,,,#NA,,Core_Metric,Fraction of Core cycles where the core was running with power-delivery for license level 2 (introduced in SKX). This includes high current AVX 512-bit instructions.,> 0.5,4.6,Power,1.0,,i,;,,,, -Info.System,SMT_2T_Utilization,,,,,,#NA,,,,,,,,,,1 - CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_DISTRIBUTED if #SMT_on else 0,,,,,,,,,,,,,1 - CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / ( CPU_CLK_UNHALTED.REF_XCLK_ANY / 2 ) if #SMT_on else 0,,Core_Metric,Fraction of cycles where both hardware Logical Processors were active,,4.1,SMT,1.0,pub/v3,i,;EDP,,,, -Info.System,Kernel_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P:SUP / CPU_CLK_UNHALTED.THREAD,,Metric,Fraction of cycles spent in the Operating System (OS) Kernel mode,> 0.05,4.2,OS,1.0,pub/v3,i,;perf,,,, -Info.System,Kernel_CPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P:SUP / INST_RETIRED.ANY_P:SUP,,Metric,Cycles Per Instruction for the Operating System (OS) Kernel mode,,4.3,OS,,pub/v4.3,i,;perf,,,, -Info.System,C0_Wait,,,,,,,,,,,,CPU_CLK_UNHALTED.C0_WAIT / CLKS,,,,,,,,,,,,,,,,,,,Metric,"Fraction of cycles the processor is waiting yet unhalted; covering legacy PAUSE instruction, as well as C0.1 / C0.2 power-performance optimized states",> 0.05,4.6,C0Wait,1.0,,i,;EDP;perf,,ZeroOk,Sample code of TPAUSE: https://github.com/torvalds/linux/blob/master/arch/x86/lib/delay.c#L105,"If running on Linux, please check the power control interface: https://github.com/torvalds/linux/blob/master/arch/x86/kernel/cpu/umwait.c and https://github.com/torvalds/linux/blob/master/Documentation/ABI/testing/sysfs-devices-system-cpu#L587" -Info.System,DRAM_BW_Use,,,,,,32 * UNC_M_TOTAL_DATA / #OneBillion / Time,( 64 * ( UNC_M_CAS_COUNT_SCH0.RD + UNC_M_CAS_COUNT_SCH1.RD + UNC_M_CAS_COUNT_SCH0.WR + UNC_M_CAS_COUNT_SCH1.WR ) / #OneBillion ) / Time,64 * ( UNC_HAC_ARB_TRK_REQUESTS.ALL + UNC_HAC_ARB_COH_TRK_REQUESTS.ALL ) / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,( 64 * ( UNC_M_CAS_COUNT.RD + UNC_M_CAS_COUNT.WR ) / #OneBillion ) / Time,64 * ( UNC_ARB_TRK_REQUESTS.ALL + UNC_ARB_COH_TRK_REQUESTS.ALL ) / #OneMillion / Time / 1000,,GB/sec,Average external Memory Bandwidth Use for reads and writes [GB / sec],; $issueBW,5.1,HPC;MemOffcore;MemoryBW;SoC,200,pub/v3,i,;perf,,,, -Info.Memory.SoC,R2C_Offcore_BW,,,,,,,,,,,64 * OCR.READS_TO_CORE.ANY_RESPONSE / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average Off-core access BW for Reads-to-Core (R2C). R2C account for demand or prefetch load/RFO/code access that fill data into the Core caches.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, -Info.Memory.SoC,R2C_L3M_BW,,,,,,,,,,,64 * OCR.READS_TO_CORE.L3_MISS / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average L3-cache miss BW for Reads-to-Core (R2C). This covering going to DRAM or other memory off-chip memory tears. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, -Info.Memory.SoC,R2C_DRAM_BW,,,,,,,,,,,64 * OCR.READS_TO_CORE.DRAM / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average DRAM BW for Reads-to-Core (R2C) covering for memory attached to local- and remote-socket. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, -Info.Memory.SoC,R2C_HBM_BW,,,,,,,,,#NA,#NA if #Memory > 2 else 64 * OCR.DEMAND_DATA_RD.PMM / 1e9 / Time,,,,,,,,,,,,,,,,,,,,,GB/sec,Average HBM BW for Reads-to-Core. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, -Info.System,MEM_Read_Latency,,,,,,,,#NA,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),,,( UNC_ARB_TRK_OCCUPANCY.RD + UNC_ARB_DAT_OCCUPANCY.RD ) / UNC_ARB_TRK_REQUESTS.RD,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),#NA,,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),#OneBillion * ( UNC_ARB_TRK_OCCUPANCY.DATA_READ / UNC_ARB_TRK_REQUESTS.DATA_READ ) / ( Socket_CLKS / Time ),,,#OneBillion * ( UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182 / UNC_C_TOR_INSERTS.MISS_OPCODE:opc=0x182 ) / ( Socket_CLKS / Time ),,,,"#OneBillion * ( ""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182"" / ""UNC_C_TOR_INSERTS.MISS_OPCODE/Match=0x182"" ) / ( Socket_CLKS / Time )",#NA,,NanoSeconds,Average latency of data read request to external memory (in nanoseconds). Accounts for demand loads and L1/L2 prefetches. ([RKL+]memory-controller only),,4.5,Mem;MemoryLat;SoC,1000,pub/v3.4,i,;perf,,,, -Info.System,MEM_Parallel_Reads,,,,,,#NA,,,,,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,,,UNC_ARB_DAT_OCCUPANCY.RD / UNC_ARB_DAT_OCCUPANCY.RD:c1,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,#NA,,,,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,UNC_ARB_TRK_OCCUPANCY.DATA_READ / UNC_ARB_TRK_OCCUPANCY.DATA_READ:c1,,,UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182 / UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182:c1,,,,"""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182"" / ""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182:c1""",#NA,,System_Metric,Average number of parallel data read requests to external memory. Accounts for demand loads and L1/L2 prefetches,,4.5,Mem;MemoryBW;SoC,100,pub/v3.4,i,;perf,,,, -Info.System,MEM_PMM_Read_Latency,,,,,,,,,,#NA,,,,,( #OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD_PMM / UNC_CHA_TOR_INSERTS.IA_MISS_DRD_PMM ) / UNC_CHA_CLOCKTICKS:one_unit ) if #PMM_App_Direct else #NA,,,( #OneBillion * ( UNC_M_PMM_RPQ_OCCUPANCY.ALL / UNC_M_PMM_RPQ_INSERTS ) / UNC_M_CLOCKTICKS:one_unit ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,NanoSeconds,Average latency of data read request to external 3D X-Point memory [in nanoseconds]. Accounts for demand loads and L1/L2 data-read prefetches,,4.6,MemOffcore;MemoryLat;SoC;Server,,pub/v3.5,i,;perf,,,, -Info.System,MEM_DRAM_Read_Latency,,,,,,,,,,,,,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD_DDR / UNC_CHA_TOR_INSERTS.IA_MISS_DRD_DDR ) / UNC_CHA_CLOCKTICKS:one_unit,,,,,#OneBillion * ( UNC_M_RPQ_OCCUPANCY / UNC_M_RPQ_INSERTS ) / UNC_M_CLOCKTICKS:one_unit,,,,,,,,,#NA,,NanoSeconds,Average latency of data read request to external DRAM memory [in nanoseconds]. Accounts for demand loads and L1/L2 data-read prefetches,,4.6,MemOffcore;MemoryLat;SoC;Server,,,i,;,,,, -Info.System,CXL_Mem_Read_BW,,,,,,,( ( 64 * UNC_CXLCM_RxC_PACK_BUF_INSERTS.MEM_DATA / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,( ( 64 * UNC_M_PMM_RPQ_INSERTS / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,GB/sec,Average 3DXP Memory Bandwidth Use for reads [GB / sec],,4.6,MemOffcore;MemoryBW;SoC;Server,,pub/v3.5,i,;perf,,,, -Info.System,CXL_Mem_Write_BW,,,,,,,( ( 64 * UNC_CXLDP_TxC_AGF_INSERTS.M2S_DATA / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,( ( 64 * UNC_M_PMM_WPQ_INSERTS / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,GB/sec,Average 3DXP Memory Bandwidth Use for Writes [GB / sec],,4.6,MemOffcore;MemoryBW;SoC;Server,,pub/v3.5,i,;perf,,,, -Info.System,MEM_IRQ_Duplicate_Address,,,,,,,#NA,,,,,,,,UNC_CHA_RxC_IRQ1_REJECT.PA_MATCH / UNC_CHA_CLOCKTICKS,,,,,,,,,,,,,,,,System_Metric,Fraction of Uncore cycles where requests got rejected due to duplicate address already in IRQ ingress queue in the cache homing agent,> 0.1,5.0,LockCont;MemOffcore;SoC;Server,,,,;EDP,,,, -Info.System,IO_Read_BW,,,,,,,,,,,,,,,UNC_CHA_TOR_INSERTS.IO_PCIRDCUR * 64 / #OneBillion / Time,,,,,( UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART0 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART1 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART2 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART3 ) * 4 / #OneBillion / Time,,,,,,,,,,,GB/sec,Average IO (network or disk) Bandwidth Use for Reads [GB / sec]. Bandwidth of IO reads that are initiated by end device controllers that are requesting memory from the CPU,,4.6,IoBW;MemOffcore;SoC;Server,,pub/v4,i,;perf,,,, -Info.System,IO_Write_BW,,,,,,,,,,,( UNC_CHA_TOR_INSERTS.IO_ITOM + UNC_CHA_TOR_INSERTS.IO_ITOMCACHENEAR ) * 64 / #OneBillion / Time,,,,( UNC_CHA_TOR_INSERTS.IO_HIT_ITOM + UNC_CHA_TOR_INSERTS.IO_MISS_ITOM + UNC_CHA_TOR_INSERTS.IO_HIT_ITOMCACHENEAR + UNC_CHA_TOR_INSERTS.IO_MISS_ITOMCACHENEAR ) * 64 / #OneBillion / Time,,,,,( UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART0 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART1 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART2 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART3 ) * 4 / #OneBillion / Time,,,,,,,,,,,GB/sec,Average IO (network or disk) Bandwidth Use for Writes [GB / sec]. Bandwidth of IO writes that are initiated by end device controllers that are writing memory to the CPU,,4.6,IoBW;MemOffcore;SoC;Server,,pub/v4,i,;perf,,,, -Info.System,UPI_Data_Transmit_BW,,,,,,,,,,,UNC_UPI_TxL_FLITS.ALL_DATA * 64 / 9 / 1000000,,,,,,,,,,,,,,,,,,,,MB/sec,Cross-socket Ultra Path Interconnect (UPI) data transmit bandwidth for data only [MB / sec],,4.5,SoC;Server,,,,;EDP,,,, -Info.System,Power,,,,,,,,,,,,,,,,,,,,,,,,( FREERUN_PKG_ENERGY_STATUS * #Energy_Unit + 15.6 * FREERUN_DRAM_ENERGY_STATUS ) / ( #DurationTimeInSeconds * #OneMillion ),UNC_PKG_ENERGY_STATUS * #Energy_Unit / ( Time * #OneMillion ),( FREERUN_PKG_ENERGY_STATUS + FREERUN_DRAM_ENERGY_STATUS ) * #Energy_Unit / ( #DurationTimeInSeconds * #OneMillion ),UNC_PKG_ENERGY_STATUS * #Energy_Unit / ( Time * #OneMillion ),,#NA,,System_Metric,Total package Power in Watts,,2.9,Power;SoC,200,pub/v3.2,i,;,,,, -Info.System,Time,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#DurationTimeInSeconds,,Seconds,Run duration time in seconds,< 1,4.0,Summary,,pub/v3,i,;bot;EDP;perf;VTune,,,, -Info.System,MUX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P / CPU_CLK_UNHALTED.THREAD,,Clocks,PerfMon Event Multiplexing accuracy indicator,( > 1.1 | < 0.9 ),3.1,Summary,,pub/v3,i,;,,,, -Info.System,Socket_CLKS,,,,,,,,,,,,,,,,,,,,UNC_CHA_CLOCKTICKS:one_unit,,,,,,,,UNC_C_CLOCKTICKS:one_unit,UNC_CLOCK.SOCKET,,Count,Socket actual clocks when any core is active on that socket,,3.4,SoC,,pub/v3,i,;perf,,,, -Info.System,IpFarBranch,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.FAR_BRANCH:USER,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.FAR_BRANCH_PS:USER,,Inst_Metric,"Instructions per Far Branch ( Far Branches apply upon transition from application to operating system, handling interrupts, exceptions) [lower number means higher occurrence rate]",< 1000000,4.3,Branches;OS,,pub/v3.6,i,;perf,,,, -.,auxiliary,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,2.5,,,pub/v3,-,;bot;,,,, -Aux,#Backend_Bound_Cycles,,,,,,,,,,,,#NA,,,,CYCLE_ACTIVITY.STALLS_TOTAL + #Few_Uops_Executed_Threshold + EXE_ACTIVITY.BOUND_ON_STORES,,,,,CYCLE_ACTIVITY.STALLS_TOTAL + #Few_Uops_Executed_Threshold + EXE_ACTIVITY.BOUND_ON_STORES,,( CYCLE_ACTIVITY.STALLS_TOTAL + UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + ( UOPS_EXECUTED.CORE:c1 - #Few_Uops_Executed_Threshold ) / 2 - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ) if #SMT_on else ( #STALLS_TOTAL + UOPS_EXECUTED.CORE:c1 - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + UOPS_DISPATCHED.THREAD:c1 - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,Count,,,4.4,,,pub,2,;bot;,,,, -Aux,#Br_DoI_Jumps,,,,,,BR_INST_RETIRED.NEAR_TAKEN - BR_INST_RETIRED.COND_TAKEN_BWD - BR_INST_RETIRED.COND_TAKEN_FWD - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,,,,,,BR_INST_RETIRED.NEAR_TAKEN - BR_INST_RETIRED.COND_TAKEN - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,BR_INST_RETIRED.NEAR_TAKEN - ( BR_INST_RETIRED.COND_PS - BR_INST_RETIRED.NOT_TAKEN ) - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,,,,,,Count,,,5.0,Branches,,,0,,,,, -Aux,#Branching_Retired,,,,,,,,,,,,,,,,,,,,,( BR_INST_RETIRED.ALL_BRANCHES + 2 * BR_INST_RETIRED.NEAR_CALL + INST_RETIRED.NOP ) / SLOTS,,,,,,,,#NA,,Slots,,,4.8,BvBO;Ret,,pub/5.0,0,;bot;,,,, -Aux,#Serialize_Core,,,,,,,,,,,,Core_Bound * ( Serializing_Operation + RS.EMPTY_RESOURCE / CLKS * Ports_Utilized_0 ) / ##Core_Bound,,,,,,,,,Core_Bound * ( Serializing_Operation + Core_Bound * RS_EVENTS.EMPTY_CYCLES / CLKS * Ports_Utilized_0 ) / ##Core_Bound,,,,,,,,,,Fraction,,,4.9,,,pub/5.0,0,;bot;,,,, -Aux,#Umisp,,,,,,,,,,,,,,,,,,,,,10 * Microcode_Sequencer * Other_Mispredicts / Branch_Mispredicts,,,,,,,,,,Fraction,,,4.7,MS,,pub/v4.6,0,;bot;,,,, -Aux,#Assist,,,,,,"( Microcode_Sequencer / ( Microcode_Sequencer + max( 0 , Heavy_Operations - Microcode_Sequencer ) ) ) * ( #Avg_Assist_Cost * ASSISTS.ANY / SLOTS / Microcode_Sequencer )",,,,,,,,,,,,,,,( Microcode_Sequencer / ##Heavy_Operations ) * ( Assists / Microcode_Sequencer ),,,,,,,,,,Fraction,,,4.6,MS,,pub/v4.6,0,;bot;,,,, -Aux,#Assist_Frontend,,,,,,,,,,,,( 1 - INST_RETIRED.REP_ITERATION / UOPS_RETIRED.MS:c1 ) * ( Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + Mispredicts_Resteers * Other_Mispredicts / Branch_Mispredicts ) / ##Branch_Resteers ) / ##Fetch_Latency + MS ),,,,#Assist * ( Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + #Umisp * Mispredicts_Resteers ) / ##Branch_Resteers ) / ##Fetch_Latency + MS ),,,,,#Assist * Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + Mispredicts_Resteers * #Umisp ) / ##Branch_Resteers ) / ##Fetch_Latency,,,,,,,,,,Slots,,,5.1,MS,,pub/v4.6,0,;bot;,,,, -Aux,#Assist_Retired,,,,,,,,,,,,,,,,,,,,,#Assist * Heavy_Operations,,,,,,,,,,Slots,,,4.6,MS,,pub/5.0,0,;bot;,,,, -Aux,#Core_Bound_Cycles,,,,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS + #Few_Uops_Executed_Threshold,,,,,,,,,,,,,,,Ports_Utilized_0 * CLKS + #Few_Uops_Executed_Threshold,,,,,,,,,,Count,,,4.7,PortsUtil,,pub/v4,3,;bot;,,,, -Aux,#Cycles_0_Ports_Utilized,,,,,,,,,,,,,,,,#NA,,,,,UOPS_EXECUTED.CORE_CYCLES_NONE / 2 if #SMT_on else CYCLE_ACTIVITY.STALLS_TOTAL - CYCLE_ACTIVITY.STALLS_MEM_ANY,,( UOPS_EXECUTED.CORE:i1:c1 ) / 2 if #SMT_on else ( CYCLE_ACTIVITY.STALLS_TOTAL - #Frontend_RS_Empty_Cycles ),,,,( UOPS_EXECUTED.CORE:i1:c1 ) / 2 if #SMT_on else ( #STALLS_TOTAL - #Frontend_RS_Empty_Cycles ),,,,Count,,,4.2,,,pub/v4.6,4,;bot;,,,, -Aux,#Cycles_1_Port_Utilized,,,,,,,,,,,,,,,,#NA,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_1 - UOPS_EXECUTED.CORE_CYCLES_GE_2 ) / 2 if #SMT_on else EXE_ACTIVITY.1_PORTS_UTIL,,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC ),,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ),,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC ),,,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, -Aux,#Cycles_2_Ports_Utilized,,,,,,,,,,,,,,,,#NA,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_2 - UOPS_EXECUTED.CORE_CYCLES_GE_3 ) / 2 if #SMT_on else EXE_ACTIVITY.2_PORTS_UTIL,,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC - UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC ),,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ),,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC - UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC ),,,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, -Aux,#Cycles_3m_Ports_Utilized,,,,,,,,,,,,,,,,#NA,,,,,UOPS_EXECUTED.CORE_CYCLES_GE_3 / 2 if #SMT_on else UOPS_EXECUTED.CORE_CYCLES_GE_3,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CORE:c3,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC,,#NA,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, -Aux,#DurationTimeInSeconds,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DurationTimeInMilliSeconds / 1000,,Count,,,4.1,,,pub/v3,i,;bot;EDP;perf;VTune,,,, -Aux,#Exe_Ports,,,,,,18,,,,,,12,,,,10,,,,,,,,,8,,,,6,,Constant,,,4.4,,,pub/v4.4,,,,,, -Aux,#Execute_Cycles,,,,,,#NA,,,,,,,,,,,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_1 / 2 ) if #SMT_on else UOPS_EXECUTED.THREAD:c1,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CORE:c1,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC,,( UOPS_DISPATCHED.CORE:c1 / 2 ) if #SMT_on else UOPS_DISPATCHED.CORE:c1,,Count,,,2.9,,,pub,i,;,,,, -Aux,#FB_Factor,,,,,,,,,,,,,,,,,,,,,1 + #FBHit_per_L1Miss / 2,,,,,,,,#NA,,Metric,factor used for metrics associating fixed costs for FB Hits - according to probability theory if all FB Hits come at a random rate in original L1_Miss cost interval then the average cost for each one is 0.5 of the fixed cost,,4.1,,,pub/5.0,i,;bot;,,,, -Aux,#FBHit_per_L1Miss,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.FB_HIT / MEM_LOAD_RETIRED.L1_MISS,,,,,,,,#NA,,Metric,,,4.5,,,pub,i,;bot;,,,, -Aux,#Fetched_Uops,,,,,,,,,,,,,,,,UOPS_ISSUED.ANY,,IDQ.DSB_UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,,IDQ.DSB_UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,,,,,,,,( IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS ) ,,Count,,,4.5,,,pub,i,;,,,, -Aux,#Few_Uops_Executed_Threshold,,,,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL + Retiring * EXE_ACTIVITY.2_3_PORTS_UTIL,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL + Retiring * EXE_ACTIVITY.2_PORTS_UTIL,,UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC if ( IPC > 1.8 ) else UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC,,UOPS_EXECUTED.CORE:c3 if ( IPC > 1.8 ) else UOPS_EXECUTED.CORE:c2,,UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC if ( IPC > 1.8 ) else UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC,,UOPS_DISPATCHED.THREAD:c3 if ( IPC > 1.8 ) else UOPS_DISPATCHED.THREAD:c2,,Count,,,4.9,PortsUtil,,pub,2,;bot;,,,, -Aux,#FLOP_Count,,,,,,FP_ARITH_OPS_RETIRED.SCALAR + 2 * FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_OPS_RETIRED.4_FLOPS + 8 * FP_ARITH_OPS_RETIRED.256B_PACKED_SINGLE,( 1 * FP_ARITH_INST_RETIRED.SCALAR_SINGLE:u0x03 + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE:u0x18 + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE:u0x60 + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),,,,( 1 * ( FP_ARITH_INST_RETIRED.SCALAR + FP_ARITH_INST_RETIRED2.SCALAR_HALF ) + 2 * ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED2.COMPLEX_SCALAR_HALF ) + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * ( FP_ARITH_INST_RETIRED2.128B_PACKED_HALF + FP_ARITH_INST_RETIRED.8_FLOPS ) + 16 * ( FP_ARITH_INST_RETIRED2.256B_PACKED_HALF + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) + 32 * FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) if #FP16 else ( 1 * FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE,,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE,,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE,,#NA,,,,( 1 * ( FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE ) + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * ( FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE ) + 8 * SIMD_FP_256.PACKED_SINGLE ),,Count,Floating Point computational (arithmetic) Operations Count,,4.8,Flops;HPC,,pub,i,;,,,, -Aux,#FP_Arith_Scalar,,,,,,FP_ARITH_OPS_RETIRED.SCALAR,,,,,FP_ARITH_INST_RETIRED.SCALAR + FP_ARITH_INST_RETIRED2.SCALAR if #FP16 else FP_ARITH_INST_RETIRED.SCALAR,,,,,,,,,,,,FP_ARITH_INST_RETIRED.SCALAR,,#NA,,,,FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE,,Count,,,4.8,Flops;HPC,,pub,i,;,,,, -Aux,#FP_Arith_Vector,,,,,,FP_ARITH_OPS_RETIRED.VECTOR,,,,,FP_ARITH_INST_RETIRED.VECTOR + FP_ARITH_INST_RETIRED2.VECTOR if #FP16 else FP_ARITH_INST_RETIRED.VECTOR,,,,,FP_ARITH_INST_RETIRED.VECTOR,FP_ARITH_INST_RETIRED.VECTOR + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16:u0xe0,,,FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE:u0xfc,,,FP_ARITH_INST_RETIRED.VECTOR,,#NA,,,,FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE,,Count,,,4.8,Flops;HPC,,pub,i,;,,,, -Aux,#Frontend_RS_Empty_Cycles,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,,,RS_EVENTS.EMPTY_CYCLES if ( Fetch_Latency > 0.1 ) else 0,,Count,,,3.1,,,pub,2,;,,,, -Aux,#Frontend_Latency_Cycles,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,"min( CPU_CLK_UNHALTED.THREAD , IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE )",,Count,,,3.0,,,pub,2,;,,,, -Aux,#HighIPC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IPC / #Pipeline_Width,,Metric,,> 0.35,3.5,,,pub,2,;,,,, -Aux,#ITLB_Miss_Cycles,,,,,,,,,,,,,,,,,,,,,#NA,,( 14 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION:c1 + 7 * ITLB_MISSES.WALK_COMPLETED ),,( 14 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION ),,,,( 12 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION ),,Count,,,4.1,MemoryTLB,,pub,3,;,,,, -Aux,#L2_Bound_Ratio,,,,,,,,,,,,#NA,,,,,,,,,( CYCLE_ACTIVITY.STALLS_L1D_MISS - CYCLE_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,,,,,#NA,,Fraction,,,3.1,,,pub,3,;bot;,,,, -Aux,#Light_Ops_Sum,,,,,,Retiring * UOPS_EXECUTED.X87 / UOPS_EXECUTED.THREAD + ( #FP_Arith_Scalar + #FP_Arith_Vector ) / #Retired_Slots + ( INT_VEC_RETIRED.ADD_128 + INT_VEC_RETIRED.VNNI_128 + INT_VEC_RETIRED.ADD_256 + INT_VEC_RETIRED.MUL_256 + INT_VEC_RETIRED.VNNI_256 ) / #Retired_Slots + Memory_Operations + Fused_Instructions + Non_Fused_Branches,,,,,,FP_Arith + Int_Operations + Memory_Operations + Fused_Instructions + Non_Fused_Branches,,,,FP_Arith + Memory_Operations + Branch_Instructions,,,,,FP_Arith + Memory_Operations + Fused_Instructions + Non_Fused_Branches ,,,,,,,,,,Count,,,4.7,,,pub/v4.3,L3,,,,, -Aux,#LOAD_L1_MISS,,,,,,,,,,,,,,,,,,,,,#NA,,,,MEM_LOAD_UOPS_RETIRED.L2_HIT_PS + MEM_LOAD_UOPS_RETIRED.L3_HIT_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS,,MEM_LOAD_UOPS_RETIRED.L2_HIT_PS + MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS,,#NA,,Count,,,4.1,,,pub,i,;bot;,,,, -Aux,#LOAD_L1_MISS_NET,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.L1_MISS,,,#LOAD_L1_MISS + MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_RETIRED.L3_MISS_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS,,#NA,,Count,,,4.0,,,pub,i,;bot;,,,, -Aux,#LOAD_L2_HIT,,,,,,,,#NA,,,,#NA,,,,,,,,,MEM_LOAD_RETIRED.L2_HIT_PS * ( 1 + #FBHit_per_L1Miss ),,,,,,,,#NA,,Count,,,4.3,,,pub/v4.2,i,;bot;,,,, -Aux,#LOAD_L3_HIT,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.L3_HIT * #FB_Factor,,,,MEM_LOAD_UOPS_RETIRED.L3_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.1,,,pub/5.0,i,;bot;,,,, -Aux,#LOAD_LCL_MEM,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * ( 1 + #FBHit_per_L1Miss ),,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.4,Server,,pub,i,;bot;,,,, -Aux,#LOAD_LCL_PMM,,,,,,,MEM_LOAD_RETIRED.LOCAL_CXL_MEM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,MEM_LOAD_RETIRED.LOCAL_PMM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Count,,,5.0,Server,,pub,i,;bot;,,,, -Aux,#LOAD_RMT_FWD,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD * ( 1 + #FBHit_per_L1Miss ) if #DS else #NA,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, -Aux,#LOAD_RMT_HITM,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM * ( 1 + #FBHit_per_L1Miss ) if #DS else #NA,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, -Aux,#LOAD_RMT_MEM,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM * ( 1 + #FBHit_per_L1Miss ) if #DS else #NA,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, -Aux,#LOAD_RMT_PMM,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_CXL_MEM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_PMM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Count,,,5.0,Server,,pub,i,;bot;,,,, -Aux,#LOAD_XSNP_HIT,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD * ( 1 - #True_XSNP_HitM_Fraction ),,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS * ( 1 - #True_XSNP_HitM_Fraction ),MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Offcore;Snoop,,pub/5.0,i,;bot;,,,, -Aux,#LOAD_XSNP_HITM,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD * #True_XSNP_HitM_Fraction,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS * #True_XSNP_HitM_Fraction,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Offcore;Snoop,,pub/5.0,i,;bot;,,,, -Aux,#LOAD_XSNP_MISS,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Snoop,,pub/5.0,i,;bot;,,,, -Aux,#MEM_Bound_Ratio,,,,,,MEMORY_STALLS.MEM / CLKS,,,,,,MEMORY_ACTIVITY.STALLS_L3_MISS / CLKS,,,,,,,,,CYCLE_ACTIVITY.STALLS_L3_MISS / CLKS + #L2_Bound_Ratio - L2_Bound,,,,,,,,,,Fraction,,,4.1,,,pub,3,;bot;,,,, -Aux,#Mem_DDR_Hit_Fraction,,,,,,,( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) / ( ( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) + ( 25 * #LOAD_LCL_PMM + 33 * #LOAD_RMT_PMM ) ) if #PMM_App_Direct else 1,,#NA,#NA,,,,,,,,( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) / ( ( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) + ( 25 * #LOAD_LCL_PMM + 33 * #LOAD_RMT_PMM ) ) if #PMM_App_Direct else 1,,,,,,,,,,,#NA,,Fraction,,,5.0,Server,,pub,3,;bot;,,,, -Aux,#Mem_L2_Store_Cost,,,,,,,,,,,,,,,,10,,,,11,,,,,,,9,,,,Constant,,,4.0,,,pub/5.0,4,;bot;,,,, -Aux,#Mem_L3_Hit_Fraction,,,,,,,,,,,,,,,,,,,,,#NA,,,,MEM_LOAD_UOPS_RETIRED.L3_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.L3_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.L3_MISS_PS ),,MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS ),MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS ),MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS ),,Fraction,,,3.0,,,pub,3,;,,,, -Aux,#Mem_Lock_St_Fraction,,,,,,,,,,,,,,,,,,,,,MEM_INST_RETIRED.LOCK_LOADS / MEM_INST_RETIRED.ALL_STORES,,,,,,MEM_UOPS_RETIRED.LOCK_LOADS_PS / MEM_UOPS_RETIRED.ALL_STORES_PS,,,,Fraction,,,3.0,,,pub/5.0,4,;bot;,,,, -Aux,#Memory_Bound_Fraction,,,,,,,,,,,,#NA,,,,,,,,,( CYCLE_ACTIVITY.STALLS_MEM_ANY + EXE_ACTIVITY.BOUND_ON_STORES ) / #Backend_Bound_Cycles,,( CYCLE_ACTIVITY.STALLS_MEM_ANY + RESOURCE_STALLS.SB ) / #Backend_Bound_Cycles,,,,,,( #STALLS_MEM_ANY + RESOURCE_STALLS.SB ) / #Backend_Bound_Cycles,,Fraction,,,4.0,,,pub,2,;bot;,,,, -Aux,#Mispred_Clears_Fraction,,,,,,,,,,,,Branch_Mispredicts / Bad_Speculation,,,,,,,,,,,,,,,,,BR_MISP_RETIRED.ALL_BRANCHES / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT ),,Fraction,,,4.4,BrMispredicts,,pub,2,;bot;,,,, -Aux,#OCR_all_rfo_l3_hit_snoop_hitm,,,,,,,,,,,,,,,,#NA,,OCR.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE + OCR.PF_L2_RFO.L3_HIT.HITM_OTHER_CORE,,OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE + OFFCORE_RESPONSE.PF_L2_RFO.L3_HIT.HITM_OTHER_CORE,OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM,,,,,,,,,,Count,,,4.0,Offcore,,pub/5.0,i,;bot;,,,, -Aux,#OCR_all_rfo_l3_miss_remote_hitm,,,,,,,,,,,,,,,,#NA,,OCR.DEMAND_RFO.L3_MISS.REMOTE_HITM + OCR.PF_L2_RFO.L3_MISS.REMOTE_HITM,,OFFCORE_RESPONSE.DEMAND_RFO.L3_MISS.REMOTE_HITM + OFFCORE_RESPONSE.PF_L2_RFO.L3_MISS.REMOTE_HITM,,,,,,,,,,,Count,,,4.0,Offcore;Server,,pub/5.0,i,;bot;,,,, -Aux,#ORO_Demand_RFO_C1,,,,,,,,,,,,,,,,,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO )",,,,Count,,,2.9,Offcore,,pub/5.0,4,;bot;,,,, -Aux,#ORO_DRD_Any_Cycles,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD )",,Count,,,3.1,Offcore,,pub,4,;bot;,,,, -Aux,#ORO_DRD_BW_Cycles,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4 )",,,,,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4 )",,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c6 )",,Count,,,3.1,Offcore,,pub,4,;bot;,,,, -Aux,#SQ_Full_Cycles,,,,,,,,,,,,,,,,#NA,,,,,,,,,,,( OFFCORE_REQUESTS_BUFFER.SQ_FULL / 2 ) if #SMT_on else OFFCORE_REQUESTS_BUFFER.SQ_FULL,,,,Count,,,4.0,Offcore,,pub/5.0,4,;bot;,,,, -Aux,#STALLS_MEM_ANY,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.STALLS_LDM_PENDING )",,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.STALLS_L1D_PENDING )",,Count,,,3.1,,,pub,2,;,,,, -Aux,#STALLS_TOTAL,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.CYCLES_NO_EXECUTE )",,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.CYCLES_NO_DISPATCH )",,Count,,,2.9,,,pub,2,;,,,, -Aux,#Store_L2_Hit_Cycles,,,,,,,,,,,,MEM_STORE_RETIRED.L2_HIT * #Mem_L2_Store_Cost * ( 1 - #Mem_Lock_St_Fraction ),,,,,,,,,,,,,,,L2_RQSTS.RFO_HIT * #Mem_L2_Store_Cost * ( 1 - #Mem_Lock_St_Fraction ),,#NA,,Count,,,3.1,,,pub/5.0,4,;bot;,,,, -Aux,#True_XSNP_HitM_Fraction,,,,,,#NA,,,,,,,OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM / ( OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM + OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM / ( OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM + OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,,OCR.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE / ( OCR.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE + OCR.DEMAND_DATA_RD.L3_HIT.HIT_OTHER_CORE_FWD ),,OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE / ( OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE + OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,,,,,,,,#NA,,Fraction,,,3.5,Offcore;Snoop,,pub/5.0,3,;bot;,,,, -Aux,#Mem_L3_Weight,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,,,7,,Constant,,,2.5,,,pub,-,;,,,, -Aux,#Mem_STLB_Hit_Cost,,,,,,,,,,,,,,,,7,,,,,9,,,,8,,,,7,,Constant,,,4.2,MemoryTLB,,pub,4,;bot;,,,, -Aux,#Mem_XSNP_HitM_Cost,,,,,,,,,,,81 * Core_Frequency,28 * Core_Frequency,54 * Core_Frequency,,48 * Core_Frequency,32.5 * Core_Frequency,,,,47.5 * Core_Frequency,22 * Core_Frequency,,,,,,60,,,,NanoSeconds,,,4.8,Snoop,,pub/5.0,4,;bot;,,,, -Aux,#Mem_XSNP_Hit_Cost,,,,,,,,,,,79 * Core_Frequency,27 * Core_Frequency,53 * Core_Frequency,,47.5 * Core_Frequency,27 * Core_Frequency,,,,47.5 * Core_Frequency,20 * Core_Frequency,,,,,,43,,,,NanoSeconds,,,4.8,Snoop,,pub/5.0,4,;bot;,,,, -Aux,#Mem_XSNP_None_Cost,,,,,,,,,,,37 * Core_Frequency,12 * Core_Frequency,22.5 * Core_Frequency,,23 * Core_Frequency,12.5 * Core_Frequency,,,,20.5 * Core_Frequency,10 * Core_Frequency,,,,,41,29,,,,NanoSeconds,,,4.7,Snoop,,pub/5.0,4,;bot;,,,, -Aux,#Mem_Local_DRAM_Cost,,,,,,,,,,,109 * Core_Frequency,,,,66.5 * Core_Frequency,,,,,80 * Core_Frequency,,,,,,200,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, -Aux,#Mem_Remote_DRAM_Cost,,,,,,,,,,,190 * Core_Frequency,,,,131 * Core_Frequency,,,,,147.5 * Core_Frequency,,,,,,310,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, -Aux,#Mem_Remote_HitM_Cost,,,,,,,,,,,170 * Core_Frequency,,,,120 * Core_Frequency,,,,,110 * Core_Frequency,,,,,,200,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, -Aux,#Mem_Remote_Fwd_Cost,,,,,,,,,,,170 * Core_Frequency,,,,120 * Core_Frequency,,,,,110 * Core_Frequency,,,,,,180,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, -Aux,#Mem_L2_Hit_Cost,,,,,,,,,,,4.4 * Core_Frequency,3 * Core_Frequency,5 * Core_Frequency,,4 * Core_Frequency,,,,,,3.5 * Core_Frequency,,,,,180,,,,,NanoSeconds,,,4.8,,,pub/5.0,5,;bot;,,,, -Aux,#BAClear_Cost,,,,,,,,,,,,#NA,,,,10,,,,,9,,,,,,,,12,,Constant,,,4.4,,,pub,i,;bot;,,,, -Aux,#MS_Switches_Cost,,,,,,,,,,,,,,,,3,,,,,,,,,2,,,,3,,Constant,,,4.0,,,pub,3,;bot;,,,, -Aux,#Avg_Assist_Cost,,,,,,,,,,,,( 99 *3 + 63 + 30 ) / 5,,,,,,,,,34,,,,,,66,,,,Constant,,,4.6,,,pub/v4.6,3,;bot;,,,, -Aux,#PERF_METRICS_SUM,,,,,,,,,,,,,,,,PERF_METRICS.FRONTEND_BOUND + PERF_METRICS.BAD_SPECULATION + PERF_METRICS.RETIRING + PERF_METRICS.BACKEND_BOUND,,,,,,,,,,,,,#NA,,Count,,,4.1,TmaL1,,pub/v4,1,;bot;perf,,,, -Aux,#Pipeline_Width,,,,,,8,,,,,,6,,,,5,,,,,,,,,,,,,4,,Constant,,,4.1,TmaL1,,pub,1,;bot;perf,,,, -Aux,#DSB_Width,,,,,,12,,,,,,8,,,,,,,,,6,,,,,,,,4,,Constant,,,5.0,,,,,ptools,,,, -Aux,#MITE_Width,,,,,,8,,,,,,6,,,,,,,,,5,,,,,,,,,,Constant,,,5.0,,,,,ptools,,,, -Aux,#Decode_Width,,,,,,8,,,,,,6,,,,,,,,,4,,,,,,,,,,Constant,,,5.0,,,,,ptools,,,, -Aux,#MS_Width,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,Constant,,,5.0,,,,,ptools,,,, -Aux,#Retire_Width,,,,,,12,,,,,,,,,,8,,,,,4,,,,,,,,,,Constant,,,5.0,,,,,ptools,,,, -Aux,#Recovery_Cycles,,,,,,,,,,,,#NA,,,,#NA,,,,,,,,,,,,,( INT_MISC.RECOVERY_CYCLES_ANY / 2 ) if #SMT_on else INT_MISC.RECOVERY_CYCLES,,Count,,,4.2,,,pub,1,;bot;,,,, -Aux,#Retire_Fraction,,,,,,,,,,,,,,,,UOPS_RETIRED.SLOTS / UOPS_ISSUED.ANY,,,,,,,,,,,,,#Retired_Slots / UOPS_ISSUED.ANY,,Fraction,,,4.6,BrMispredicts,,pub,2,;bot;,,,, -Aux,#Retired_Slots,,,,,,,,,,,,,,,,Retiring * SLOTS,,,,,,,,,,,,,UOPS_RETIRED.RETIRE_SLOTS,,Count,,,4.1,TmaL1,,pub,1,;bot;perf,,,, -Aux,#OneMillion,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1000000,,Constant,,,2.6,,,pub,i,;bot;,,,, -Aux,#OneBillion,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1000000000,,Constant,,,3.0,,,pub,i,;bot;,,,, -Aux,#Energy_Unit,,,,,,,,,,,,,,,,,,,,,,,,,61,,15.6,,,,Constant,,,3.0,,,pub,i,;,,,, -Aux,#Errata_Whitelist,,,,,,,,#NA,,,SPR121;SPR103,ADL038;ADL066,,,,#NA,,,,,SKL091,,BDE69;BDE70,,,,,,,,Constant,,,4.8,,,pub,i,;toplev,,,, -Aux,#SMT_on,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,,,1,,SystemParameter,whether Simultaneous Multi Threading (SMT) is enabled (in BIOS),,2.7,SMT;Summary,,pub/v3,1,;bot;,EDP ? system.sockets[0][0].size > 1 : perf ? /sys/devices/system/cpu/smt/control : Intel-way-SMT-on,,, -Aux,#EBS_Mode,,,,,,,,,,,,,,,,#NA,,,,,,,,,,,,,0,,ExternalParameter,Use ratios that apply to Event Based Sampling where applicable. By setting this flag user acks homogeneous behavior across all processors. Note this may increase counter multiplexing.,,4.6,,,pub/v3.3,1,;bot;vtune,,,, -Aux,Num_CPUs,,,,,,NUM_CORES if NUM_CORES else 16,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 320 / ( 2 - #SMT_on ),,,,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 224 / ( 2 - #SMT_on ),NUM_CORES * NUM_THREADS if NUM_CORES else ( 8 + 16 / ( 2 - #SMT_on ) ),NUM_CORES * NUM_THREADS if NUM_CORES else 16 / ( 2 - #SMT_on ),,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 160 / ( 2 - #SMT_on ),,,112 if #SMT_on else 56,,,,,,,,,,,8 if #SMT_on else 4,,SystemParameter,Number of logical processors (enabled or online) on the target system,,4.6,Summary,,pub/v4.6,,;,EDP ? system.sockets[0].cpus.count : perf ? Linux-way-Num-CPUs : Intel-way-Num-CPUs,,, -Aux,#Memory,,,,,,,,,0,2,0,,,,,,,1,,,,,,,,,,,#NA,,ExternalParameter,,,4.8,Server,,pub/v3.5,3,;bot;,,,, -Aux,#PMM_App_Direct,,,,,,,,,,,,,,,,,,1 if #Memory == 1 else 0,,,,,,,,,,,#NA,,ExternalParameter,,,4.5,Server,,pub,3,;bot;,,,, -Aux,#HBM,,,,,,,0,,,,1 if #Memory > 1 else 0,,,,,,,,,,,,,,,,,,,,ExternalParameter,,,4.7,Server,,pub/v4.6,,;bot;,,,, -Aux,DurationTimeInMilliSeconds,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SystemParameter,The duration time in milli-seconds of the profile,,4.2,Summary,,pub,,;bot;EDP;perf;VTune,EDP ? 1000 : duration-time,,, -Aux,Dependent_Loads_Weight,,,,,,#NA,,,,,,,,,,,,,,,20,,,,,,,,,,SystemParameter,A system parameter for dependent-loads (pointer chasing like access pattern) of the workload. An integer fraction in range from 0 (no dependent loads) to 100 (all loads are dependent loads),,4.8,MemoryLat,,pub/5.0,,;bot;,,,, -Aux,#PERF_METRICS_MSR,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,#NA,,ExternalParameter,,,4.2,,,,1,;bot;toplev;vtune,,,, -Aux,#FP16,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,ExternalParameter,A system parameter to indicate FP16 on vector stack and AMX (any data type) are enabled,,4.6,Flops;Server,,pub/v4.5,,,,,, -Aux,#DS,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,0,,ExternalParameter,A system parameter to indicate Dual-Socket is enabled,,4.8,Server,,pub/5.0,,;bot;,,,, +TMA,Version,5.2-full,Intel,,,5.200-full,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5.2000-full,,,full,full,full;bot;,full,full,full,full +.,,,Confidential,,,,,,Server,,Server,Server,Server,,,,Server,,Server,Server,,Server,,Server,,Server,,Server,,Server,,,,,,,,,,,;bot;EDP;perf,,,, +Key,Level1,Level2,Level3,Level4,Level5,Level6,PTL,LNL/ARL,GNR,MTL,EMR,SPR-HBM,SPR,ADL/RPL,TGL,RKL,ICX,ICL,CPX,CLX,KBLR/CFL/CML,SKX,SKL/KBL,BDX,BDW,HSX,HSW,IVT,IVB,JKT/SNB-EP,SNB,Locate-with,Count Domain,Metric Description,Threshold,Version,Metric Group,Metric Max,flavor,level,Tool;bot;,ToolAlias,Attribute,Tuning Hint,Link +Bottleneck,Mispredictions,,,,,,,,,,,,,,,,,,,,,,100 * ( 1 - #Umisp ) * ( Branch_Mispredicts + Fetch_Latency * Mispredicts_Resteers / ##Fetch_Latency ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Branch Misprediction related bottlenecks,> 20; $issueBM,4.7,Bad;BadSpec;BrMispredicts;BvMP,,pub/v4.3,0,;bot;EDP;perf,,InTree,, +Bottleneck,Big_Code,,,,,,,,,,,,,,,,,,,,,,100 * Fetch_Latency * ( ITLB_Misses + ICache_Misses + Unknown_Branches ) / ##Fetch_Latency,,,,,,,,,,Scaled_Slots,Total pipeline cost of instruction fetch related bottlenecks by large code footprint programs (i-side cache; TLB and BTB misses),> 20,4.6,BvBC;BigFootprint;Fed;Frontend;IcMiss;MemoryTLB,,pub/v4.3,0,;bot;EDP;perf,,InTree,, +Bottleneck,Instruction_Fetch_BW,,,,,,,,,,,,,,,,,,,,,,100 * ( Frontend_Bound - ( 1 - #Umisp ) * Fetch_Latency * Mispredicts_Resteers / ##Fetch_Latency - #Assist_Frontend ) - Big_Code,,,,,,,,,,Scaled_Slots,Total pipeline cost of instruction fetch bandwidth related bottlenecks (when the front-end could not sustain operations delivery to the back-end),> 20,5.1,BvFB;Fed;FetchBW;Frontend,,pub/v4.3,0,;bot;EDP;perf,,Tree+#Repeat_Fraction,, +Bottleneck,Data_Cache_Memory_Bandwidth,,,,,,,,100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##L3_Miss_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ),,,( 100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##L3_Miss_Bound ) ) + ( Memory_Bound * HBM_Bound / ##Memory_Bound ) * MEM_Bandwidth / ##L3_Miss_Bound + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ) ),,,,,,,,,,,100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Bandwidth / ##L3_Miss_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( SQ_Full / ##L3_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( FB_Full / ##L1_Bound ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of external Memory- or Cache-Bandwidth related bottlenecks,> 20; $issueBW,4.9,BvMB;Mem;MemoryBW;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, +Bottleneck,Data_Cache_Memory_Latency,,,,,,100 * Memory_Bound * ( ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) + ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) + ( L2_Bound / ##Memory_Bound ) + ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Capacity / ##L1_Bound ) ),100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Capacity / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) ) + ( Memory_Bound * HBM_Bound / ##Memory_Bound ) * MEM_Latency / ##L3_Miss_Bound + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,,,,,,,,,100 * ( ( Memory_Bound * ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) ) + ( Memory_Bound * ( L3_Bound / ##Memory_Bound ) * ( L3_Hit_Latency / ##L3_Bound ) ) + ( Memory_Bound * L2_Bound / ##Memory_Bound ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( L1_Latency_Dependency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Lock_Latency / ##L1_Bound ) ) + ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( Split_Loads / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Split_Stores / ##Store_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( Store_Latency / ##Store_Bound ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of external Memory- or Cache-Latency related bottlenecks,> 20; $issueLat,5,BvML;Mem;MemoryLat;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, +Bottleneck,Memory_Data_TLBs,,,,,,,,,100 * ( ( Memory_Bound * ( L1_Bound / ##Memory_Bound ) * ( DTLB_Load / ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( DTLB_Store / ##Store_Bound ) ) ),,,,,,,,,,,,,"100 * ( Memory_Bound * ( L1_Bound / max( Memory_Bound , ##Memory_Bound ) ) * ( DTLB_Load / max( L1_Bound , ##L1_Bound ) ) + ( Memory_Bound * ( Store_Bound / ##Memory_Bound ) * ( DTLB_Store / ##Store_Bound ) ) ) ",,,,,,,,,,Scaled_Slots,Total pipeline cost of Memory Address Translation related bottlenecks (data-side TLBs),> 20; $issueTLB,5,BvMT;Mem;MemoryTLB;Offcore,,pub/5.0,0,;bot;EDP;perf,,InTree,, +Bottleneck,Memory_Synchronization,,,,,,,,,,,,,,,,,,,,,100 * ( Memory_Bound * ( ( L3_Miss_Bound / ##Memory_Bound ) * ( MEM_Latency / ##L3_Miss_Bound ) * Remote_Cache / ##MEM_Latency + ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ) if #DS else 100 * ( Memory_Bound * ( ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ),100 * ( Memory_Bound * ( ( L3_Bound / ##Memory_Bound ) * ( Contested_Accesses + Data_Sharing ) / ##L3_Bound + ( Store_Bound / ##Memory_Bound ) * False_Sharing / ( ##Store_Bound - Store_Latency ) ) + Machine_Clears * ( 1 - Other_Nukes / ##Machine_Clears ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Memory Synchronization related bottlenecks (data transfers and coherency updates across processors),> 10; $issueSyncxn,5.01,BvMS;LockCont;Mem;Offcore,,pub/5.0,0,;bot;EDP;perf,,,, +Bottleneck,Compute_Bound_Est,,,,,,,,,,,,100 * ( ( Core_Bound * Divider / ##Core_Bound ) + ( Core_Bound * AMX_Busy / ##Core_Bound ) + ( Core_Bound * ( Ports_Utilization / ##Core_Bound ) * ( Ports_Utilized_3m / ##Ports_Utilization ) ) ),,,,,,,,,,100 * ( ( Core_Bound * Divider / ##Core_Bound ) + ( Core_Bound * ( Ports_Utilization / ##Core_Bound ) * ( Ports_Utilized_3m / ##Ports_Utilization ) ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost when the execution is compute-bound - an estimation. Covers Core Bound when High ILP as well as when long-latency execution units are busy.,> 20; $issueComp,4.8,BvCB;Cor,,pub/5.0,0,;bot;EDP;perf,,Tree+ILP,, +Bottleneck,Irregular_Overhead,,,,,,,,,,,,,,,,,,,,,,100 * ( #Assist_Frontend + #Umisp * Branch_Mispredicts + ( Machine_Clears * Other_Nukes / ##Machine_Clears ) + #Serialize_Core + #Assist_Retired ),,,,,,,,,,Scaled_Slots,"Total pipeline cost of irregular execution (e.g. FP-assists in HPC, Wait time with work imbalance multithreaded workloads, overhead in system services or virtualized environments)",> 10; $issueMS,5.1,Bad;BvIO;Cor;Ret,,pub/5.0,0,;bot;EDP;perf,,Tree+#Repeat_Fraction,, +Bottleneck,Other_Bottlenecks,,,,,,,,,,,,,,,,,,,,,,100 - ( Big_Code + Instruction_Fetch_BW + Mispredictions + Data_Cache_Memory_Bandwidth + Data_Cache_Memory_Latency + Memory_Data_TLBs + Memory_Synchronization + Compute_Bound_Est + Irregular_Overhead + Branching_Overhead + Useful_Work ) ,,,,,,,,,,Scaled_Slots,Total pipeline cost of remaining bottlenecks in the back-end. Examples include data-dependencies (Core Bound when Low ILP) and other unlisted memory-related stalls.,> 20,5,BvOB;Cor;Offcore,,pub/5.0,0,;bot;EDP;perf,,,, +Bottleneck,Branching_Overhead,,,,,,,,,,,,,,,,,,,,,,100 * #Branching_Retired,,,,,,,,,,Scaled_Slots,Total pipeline cost of instructions used for program control-flow - a subset of the Retiring category in TMA. Examples include function calls; loops and alignments. (A lower bound),> 5,4.8,BvBO;Ret,,pub/5.0,0,;bot;EDP;perf,,Tree+#Branching_Retired,Consider Loop Unrolling or function inlining optimizations, +Bottleneck,Useful_Work,,,,,,,,,,,,,,,,,,,,,,100 * ( Retiring - #Branching_Retired - #Assist_Retired ),,,,,,,,,,Scaled_Slots,"Total pipeline cost of ""useful operations"" - the portion of Retiring category not covered by Branching_Overhead nor Irregular_Overhead.",> 20,4.8,BvUW;Ret,,pub/5.0,0,;bot;EDP;perf,,InTree,, +.,tree,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,5,,,pub,-,;bot;,,,, +FE,Frontend_Bound,,,,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else IDQ_BUBBLES.CORE / SLOTS,,,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS if #PERF_METRICS_MSR else ( IDQ_BUBBLES.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,PERF_METRICS.FRONTEND_BOUND / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS if #PERF_METRICS_MSR else ( IDQ_UOPS_NOT_DELIVERED.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,,,,,,,,,,IDQ_UOPS_NOT_DELIVERED.CORE / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/LNL ? #NA : FRONTEND_RETIRED.LATENCY_GE_4_PS,Slots,This category represents fraction of slots where the processor's Frontend undersupplies its Backend. Frontend denotes the first part of the processor core responsible to fetch operations that are executed later on by the Backend part. Within the Frontend; a branch predictor predicts the next address to fetch; cache-lines are fetched from the memory subsystem; parsed into instructions; and lastly decoded into micro-operations (uops). Ideally the Frontend can issue Pipeline_Width uops every cycle to the Backend. Frontend Bound denotes unutilized issue-slots when there is no Backend stall; i.e. bubbles where Frontend delivered no uops while Backend could have accepted them. For example; stalls due to instruction-cache misses would be categorized under Frontend Bound.,> 0.15,4.3,BvFB;BvIO;TmaL1;PGO,,pub/v3,L1,;bot;,,,, +FE,,Fetch_Latency,,,,,,PERF_METRICS.FETCH_LATENCY / #PERF_METRICS_SUM if #PERF_METRICS_MSR else IDQ_BUBBLES.FETCH_LATENCY / CLKS,,,,,,( PERF_METRICS.FETCH_LATENCY / #PERF_METRICS_SUM - INT_MISC.UOP_DROPPING / SLOTS ) if #PERF_METRICS_MSR else ( IDQ_BUBBLES.CYCLES_0_UOPS_DELIV.CORE * #Pipeline_Width - INT_MISC.UOP_DROPPING ) / SLOTS,,,,( #Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE - INT_MISC.UOP_DROPPING ) / SLOTS,,,,,#Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE / SLOTS,,#Pipeline_Width * IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE / SLOTS,,,,,,#Pipeline_Width * #Frontend_Latency_Cycles / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? RS_EVENTS.EMPTY_END : FRONTEND_RETIRED.LATENCY_GE_16_PS;FRONTEND_RETIRED.LATENCY_GE_8_PS,Slots,This metric represents fraction of slots the CPU was stalled due to Frontend latency issues. For example; instruction-cache misses; iTLB misses or fetch stalls after a branch misprediction are categorized under Frontend Latency. In such cases; the Frontend eventually delivers no uops for some period.,> 0.1 & P,4.3,Frontend;TmaL2,,pub/v3,L2,;bot;,,,, +FE,,,ICache_Misses,,,,,ICACHE_DATA.STALLS / CLKS + ISB_Full,,,,,,,,,,ICACHE_DATA.STALLS / CLKS,,,,,( ICACHE_16B.IFDATA_STALL + 2 * ICACHE_16B.IFDATA_STALL:c1:e1 ) / CLKS,,,,ICACHE.IFDATA_STALL / CLKS,,ICACHE.IFETCH_STALL / CLKS - ITLB_Misses,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.L2_MISS_PS;FRONTEND_RETIRED.L1I_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to instruction cache misses.,> 0.05 & P,4.6,BigFootprint;BvBC;FetchLat;IcMiss,,pub/v3,L3,;bot;,,,Using compiler's Profile-Guided Optimization (PGO) can reduce i-cache misses through improved hot code layout., +FE,,,,Code_L2_Hit,,,,,,"max( 0 , FRONTEND_RETIRED.L1I_MISS*$PEBS / CLKS - Code_L2_Miss )",,,,,,,,"max( 0 , ICache_Misses - Code_L2_Miss )",,,,,,,,,,,,,,,Clocks_Retired,This metric estimates fraction of cycles the CPU was stalled due to instruction cache misses that hit in the L2 cache.,> 0.05 & P,5,IcMiss;FetchLat;Offcore,,,L4,,,,, +FE,,,,Code_L2_Miss,,,,,,FRONTEND_RETIRED.L2_MISS*$PEBS / CLKS,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_CODE_RD / CLKS,,,,,,,,,,,,,,,Clocks_Retired,This metric estimates fraction of cycles the CPU was stalled due to instruction cache misses that miss in the L2 cache.,> 0.05 & P,5,IcMiss;FetchLat;Offcore,,,L4,,,,, +FE,,,,ISB_Full,,,,( ICACHE_TAG.STALLS_ISB + ICACHE_TAG.STALLS_INUSE ) / CLKS,,,,,,,,,,,,,,,,,,,,,,,#NA,,Clocks,This metric represents fraction of cycles Icache tag lookup was stalled due to Instruction Stream Buffer (ISB) being full,> 0.05 & P,6,,,,,,,,, +FE,,,ITLB_Misses,,,,,ICACHE_TAG.STALLS / CLKS - ISB_Full,,,,,,,,,,,,,,,ICACHE_TAG.STALLS / CLKS,,,,,,,,#ITLB_Miss_Cycles / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? ITLB_MISSES.WALK_COMPLETED : FRONTEND_RETIRED.STLB_MISS_PS;FRONTEND_RETIRED.ITLB_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to Instruction TLB (ITLB) misses.,> 0.05 & P,6,BigFootprint;BvBC;FetchLat;MemoryTLB,,pub/v3,L3,;bot;,,,"Consider large 2M pages for code (selectively prefer hot large-size function, due to limited 2M entries). Linux options: standard binaries use libhugetlbfs; Hfsort.",https://github.com/libhugetlbfs/libhugetlbfs;https://research.fb.com/publications/optimizing-function-placement-for-large-scale-data-center-applications-2/ +FE,,,,Code_STLB_Hit,,,,,,"max( 0 , FRONTEND_RETIRED.ITLB_MISS*$PEBS / CLKS - Code_STLB_Miss )",,,,,,,,,,,,,"max( 0 , ITLB_Misses - Code_STLB_Miss )",,,,,,,,#NA,,Clocks_Retired,"This metric roughly estimates the fraction of cycles where the (first level) ITLB was missed by instructions fetches, that later on hit in second-level TLB (STLB)",> 0.05 & P,5,FetchLat;MemoryTLB,,,L4,,,,, +FE,,,,Code_STLB_Miss,,,,,,FRONTEND_RETIRED.STLB_MISS*$PEBS / CLKS,,,,,,,,,,,,,ITLB_MISSES.WALK_ACTIVE / CLKS,,,,,,,,#NA,,Clocks_Retired,"This metric estimates the fraction of cycles where the Second-level TLB (STLB) was missed by instruction fetches, performing a hardware page walk",> 0.05 & P,5,FetchLat;MemoryTLB,1,,L4,,,,, +FE,,,,,Code_STLB_Miss_4K,,,,,ITLB_MISSES.WALK_ACTIVE / CLKS * ITLB_MISSES.WALK_COMPLETED_4K / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,,,,Code_STLB_Miss * ITLB_MISSES.WALK_COMPLETED_4K / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for (instruction) code accesses.,> 0.05 & P,5,FetchLat;MemoryTLB,,,L5,,,ZeroOk,, +FE,,,,,Code_STLB_Miss_2M,,,,,ITLB_MISSES.WALK_ACTIVE / CLKS * ITLB_MISSES.WALK_COMPLETED_2M_4M / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,,,,Code_STLB_Miss * ITLB_MISSES.WALK_COMPLETED_2M_4M / ( ITLB_MISSES.WALK_COMPLETED_4K + ITLB_MISSES.WALK_COMPLETED_2M_4M ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for (instruction) code accesses.,> 0.05 & P,5,FetchLat;MemoryTLB,,,L5,,,ZeroOk,, +FE,,,Branch_Resteers,,,,,,,,,,,INT_MISC.CLEAR_RESTEER_CYCLES / CLKS + Unknown_Branches,,,,,,,,,INT_MISC.CLEAR_RESTEER_CYCLES / CLKS + #BAClear_Cost * BACLEARS.ANY / CLKS,,,,,,,,#BAClear_Cost * ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ) / CLKS,BR_MISP_RETIRED.ALL_BRANCHES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers. Branch Resteers estimates the Frontend delay in fetching operations from corrected path; following all sorts of miss-predicted branches. For example; branchy code with lots of miss-predictions might get categorized under Branch Resteers. Note the value of this node may overlap with its siblings.,> 0.05 & P; ~overlap,4.6,FetchLat,,pub/v3,L3,;bot;,,,, +FE,,,,Mispredicts_Resteers,,,,,,,,,,,,,,,,,,,#Mispred_Clears_Fraction * INT_MISC.CLEAR_RESTEER_CYCLES / CLKS,,BR_MISP_RETIRED.ALL_BRANCHES * Branch_Resteers / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ),,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : INT_MISC.CLEAR_RESTEER_CYCLES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers as a result of Branch Misprediction at execution stage. ,> 0.05 & P; $issueBM,4.3,BadSpec;BrMispredicts;BvMP,,pub/v4.3,L4,;bot;,,,, +FE,,,,Clears_Resteers,,,,,,,,,,,,,,,,,,,( 1 - #Mispred_Clears_Fraction ) * INT_MISC.CLEAR_RESTEER_CYCLES / CLKS,,MACHINE_CLEARS.COUNT * Branch_Resteers / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT + BACLEARS.ANY ),,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : INT_MISC.CLEAR_RESTEER_CYCLES,Clocks,This metric represents fraction of cycles the CPU was stalled due to Branch Resteers as a result of Machine Clears. ,> 0.05 & P; $issueMC,4.3,BadSpec;MachineClears,,pub/v4.3,L4,;bot;,,,, +FE,,,,Unknown_Branches,,,,,,,,,,INT_MISC.UNKNOWN_BRANCH_CYCLES / CLKS,,,,,,,,,#BAClear_Cost * BACLEARS.ANY / CLKS,,Branch_Resteers - Mispredicts_Resteers - Clears_Resteers,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/TGL/RKL ? BACLEARS.ANY : FRONTEND_RETIRED.UNKNOWN_BRANCH,Clocks,This metric represents fraction of cycles the CPU was stalled due to new branch address clears. These are fetched branches the Branch Prediction Unit was unable to recognize (e.g. first time the branch is fetched or hitting BTB capacity limit) hence called Unknown Branches,> 0.05 & P,4.3,BigFootprint;BvBC;FetchLat,,pub/v4.3,L3,;bot;,,,, +FE,,,MS_Switches,,,,,#MS_Switches_Cost * IDQ.MS_SWITCHES / CLKS,,,,,,#MS_Switches_Cost * UOPS_RETIRED.MS:c1:e1 / #Retire_Fraction / CLKS,,,,,,,,,,,,,,,,,#MS_Switches_Cost * IDQ.MS_SWITCHES / CLKS,MTL/ADL/SPR/SPR-HBM ? FRONTEND_RETIRED.MS_FLOWS : IDQ.MS_SWITCHES,Clocks_Estimated,This metric estimates the fraction of cycles when the CPU was stalled due to switches of uop delivery to the Microcode Sequencer (MS). Commonly used instructions are optimized for delivery by the DSB (decoded i-cache) or MITE (legacy instruction decode) pipelines. Certain operations cannot be handled natively by the execution pipeline; and must be performed by microcode (small programs injected into the execution stream). Switching to the MS too often can negatively impact performance. The MS is designated to deliver long uop flows required by CISC instructions like CPUID; or uncommon conditions like Floating Point Assists when dealing with Denormals.,> 0.05 & P; $issueMC; $issueMS; $issueMV; $issueSO,4.6,FetchLat;MicroSeq,1,pub/v3.4,L3,;bot;,,,, +FE,,,LCP,,,,,,,,,,,,,,,,,,,,DECODE.LCP / CLKS,,,,,,,,ILD_STALL.LCP / CLKS,,Clocks,This metric represents fraction of cycles CPU was stalled due to Length Changing Prefixes (LCPs). Using proper compiler flags or Intel Compiler by default will certainly avoid this. #Link: Optimization Guide about LCP BKMs.,> 0.05 & P; $issueFB,4.6,FetchLat,,pub/v4.4,L3,;bot;,,,See section 'Length-Changing Prefixes (LCP)' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +FE,,,DSB_Switches,,,,,,,,,,,,,,,,,,,,,,,,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.DSB_MISS_PS,Clocks,This metric represents fraction of cycles the CPU was stalled due to switches from DSB to MITE pipelines. The DSB (decoded i-cache) is a Uop Cache where the front-end directly delivers Uops (micro operations) avoiding heavy x86 decoding. The DSB pipeline has shorter latency and delivered higher bandwidth than the MITE (legacy instruction decode pipeline). Switching between the two pipelines can cause penalties hence this metric measures the exposed penalty.,> 0.05 & P; $issueFB,4.3,DSBmiss;FetchLat,,pub/v3.6,L3,;bot;,,,See section 'Optimization for Decoded Icache' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +FE,,Fetch_Bandwidth,,,,,,,,,,,,,,,,"max( 0 , Frontend_Bound - Fetch_Latency )",,,,,,,,,,,,,Frontend_Bound - Fetch_Latency,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/LNL/PTL ? #NA : FRONTEND_RETIRED.LATENCY_GE_2_BUBBLES_GE_1;FRONTEND_RETIRED.LATENCY_GE_1;FRONTEND_RETIRED.LATENCY_GE_2,Slots,This metric represents fraction of slots the CPU was stalled due to Frontend bandwidth issues. For example; inefficiencies at the instruction decoders; or restrictions for caching in the DSB (decoded uops cache) are categorized under Fetch Bandwidth. In such cases; the Frontend typically delivers suboptimal amount of uops to the Backend.,> 0.2; $issueFB,4.7,FetchBW;Frontend;TmaL2,,pub/v3,L2,;bot;,,,, +FE,,,MITE,,,,,"( IDQ.MITE_UOPS:c8:i1:eq1 * max(0,#Pipeline_Width - Fetch_MITE) / #Pipeline_Width + IDQ.MITE_UOPS / ( IDQ.DSB_UOPS + IDQ.MITE_UOPS ) * ( IDQ_BUBBLES.STARVATION_CYCLES - IDQ_BUBBLES.FETCH_LATENCY ) ) / CLKS ",,,,,,( IDQ.MITE_CYCLES_ANY - IDQ.MITE_CYCLES_OK ) / CORE_CLKS / 2,,,,( IDQ.MITE_CYCLES_ANY - IDQ.MITE_CYCLES_OK ) / CORE_CLKS / 2,,,,,,,,,,,( IDQ.ALL_MITE_CYCLES_ANY_UOPS - IDQ.ALL_MITE_CYCLES_4_UOPS ) / CORE_CLKS / 2,,,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : FRONTEND_RETIRED.ANY_DSB_MISS,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to the MITE pipeline (the legacy decode pipeline). This pipeline is used for code that was not pre-cached in the DSB or LSD. For example; inefficiencies due to asymmetric decoders; use of long immediate or LCP can manifest as MITE fetch bandwidth bottleneck.,> 0.1 & P,5.1,DSBmiss;FetchBW,,pub/v4,L3,,,,Consider tuning codegen of 'small hotspots' that can fit in DSB. Read about 'Decoded ICache' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +FE,,,,Decoder0_Alone,,,INST_DECODED.DECODERS:c1:eq1 / CLKS,#NA,,,,,,,,,,,,,,,( INST_DECODED.DECODERS:c1 - INST_DECODED.DECODERS:c2 ) / CORE_CLKS / 2,,,,,,,,,,Slots_Estimated,This metric represents fraction of cycles where decoder-0 was the only active decoder,> 0.1 & P; $issueD0,4.5,DSBmiss;FetchBW,,,L4,,,,, +FE,,,,MITE_4wide,,,,,,,,,,#NA,,,,( IDQ.MITE_UOPS:c4 - IDQ.MITE_UOPS:c5 ) / CLKS,,,,,,,,,,,,,,,Core_Clocks,This metric represents fraction of cycles where (only) 4 uops were delivered by the MITE pipeline,> 0.05 & P,4.4,DSBmiss;FetchBW,,,L4,,,,, +FE,,,DSB,,,,,"( IDQ.DSB_UOPS:c8:i1:eq1 * max(0,#Pipeline_Width - Fetch_DSB) / #Pipeline_Width + IDQ.DSB_UOPS / ( IDQ.DSB_UOPS + IDQ.MITE_UOPS ) * ( IDQ_BUBBLES.STARVATION_CYCLES - IDQ_BUBBLES.FETCH_LATENCY ) ) / CLKS ",,,,,,,,,,,,,,,( IDQ.DSB_CYCLES_ANY - IDQ.DSB_CYCLES_OK ) / CORE_CLKS / 2,,,,,,( IDQ.ALL_DSB_CYCLES_ANY_UOPS - IDQ.ALL_DSB_CYCLES_4_UOPS ) / CORE_CLKS / 2,,,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to DSB (decoded uop cache) fetch pipeline. For example; inefficient utilization of the DSB cache structure or bank conflict when reading from it; are categorized here.,> 0.15 & P,5.1,DSB;FetchBW,,pub/v4,L3,,,,, +FE,,,LSD,,,,#NA,"LSD.UOPS:c8:i1:eq1 * max(0,#Pipeline_Width - Fetch_LSD) / #Pipeline_Width / CLKS",#NA,,,,#NA,,,,#NA,,,#NA,( LSD.CYCLES_ACTIVE - LSD.CYCLES_OK ) / CORE_CLKS / 2,,,,,,,,,,#NA,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to LSD (Loop Stream Detector) unit. LSD typically does well sustaining Uop supply. However; in some rare cases; optimal uop-delivery could not be reached for small loops whose size (in terms of number of uops) does not suit well the LSD structure.,> 0.15 & P,5.1,FetchBW;LSD,,pub/v4,L3,,,,, +FE,,,MS,,,,,IDQ.MS_CYCLES_ANY * ( #Pipeline_Width - IDQ.MS_UOPS / IDQ.MS_CYCLES_ANY ) / SLOTS,,,,,,"max( IDQ.MS_CYCLES_ANY , UOPS_RETIRED.MS:c1 / #Retire_Fraction ) / CORE_CLKS / 2.4",,,,IDQ.MS_UOPS:c1 / CORE_CLKS / 3.3,,,,,#NA,,,,,,,,,,Slots_Estimated,This metric represents Core fraction of cycles in which CPU was likely limited due to the Microcode Sequencer (MS) unit - see Microcode_Sequencer node for details.,> 0.05 & P,5.1,MicroSeq,,pub/v5.1,L3,;bot;,,,, +BAD,Bad_Speculation,,,,,,,"PERF_METRICS.BAD_SPECULATION / #PERF_METRICS_SUM if #PERF_METRICS_MSR else max( 1 - ( Frontend_Bound + Backend_Bound + Retiring ) , 0 )",,,,,,,,,,"max( 1 - ( Frontend_Bound + Backend_Bound + Retiring ) , 0 )",,,,,,,,,,,,,( UOPS_ISSUED.ANY - #Retired_Slots + #Pipeline_Width * #Recovery_Cycles ) / SLOTS,#NA,Slots,This category represents fraction of slots wasted due to incorrect speculations. This include slots used to issue uops that do not eventually get retired and slots for which the issue-pipeline was blocked due to recovery from earlier incorrect speculation. For example; wasted work due to miss-predicted branches are categorized under Bad Speculation category. Incorrect data speculation followed by Memory Ordering Nukes is another example.,> 0.15,4.1,TmaL1,,pub/v3,L1,;bot;,,,, +BAD,,Branch_Mispredicts,,,,,,,,,,,,PERF_METRICS.BRANCH_MISPREDICTS / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BR_MISPREDICT_SLOTS / SLOTS,,,,,,,,,,,,,,,,,#Mispred_Clears_Fraction * Bad_Speculation,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? BR_MISP_RETIRED.ALL_BRANCHES_PS : ICL/ICX/RKL/TGL ? BR_MISP_RETIRED.ALL_BRANCHES : TOPDOWN.BR_MISPREDICT_SLOTS,Slots,This metric represents fraction of slots the CPU has wasted due to Branch Misprediction. These slots are either wasted by uops fetched from an incorrectly speculated program path; or stalls when the out-of-order part of the machine needs to recover its state from a speculative path.,> 0.1 & P; $issueBM,4.3,BadSpec;BrMispredicts;BvMP;TmaL2,,pub/v3,L2,;bot;,,,Using profile feedback in the compiler may help. Please see the Optimization Manual for general strategies for addressing branch misprediction issues.,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +BAD,,,Cond_NT_Mispredicts,,,,,,,( BR_MISP_RETIRED.COND_NTAKEN / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by non-taken conditional branches.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Cond_TK_Mispredicts,,,,,#NA,,( BR_MISP_RETIRED.COND_TAKEN / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by taken conditional branches.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Cond_TK_Bwd_Mispredicts,,,,,( BR_MISP_RETIRED.COND_TAKEN_BWD / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by backward-taken conditional branches.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Cond_TK_Fwd_Mispredicts,,,,,( BR_MISP_RETIRED.COND_TAKEN_FWD / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to misprediction by forward-taken conditional branches.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Ind_Call_Mispredicts,,,,,,,( BR_MISP_RETIRED.INDIRECT_CALL / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by indirect CALL instructions.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Ind_Jump_Mispredicts,,,,( BR_MISP_RETIRED.INDIRECT_JMP / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,"max( ( ( BR_MISP_RETIRED.INDIRECT - BR_MISP_RETIRED.INDIRECT_CALL ) / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts , 0 )",,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by indirect JMP instructions.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Ret_Mispredicts,,,,,,,( BR_MISP_RETIRED.RET / BR_MISP_RETIRED.ALL_BRANCHES ) * Branch_Mispredicts,,,,,,,,#NA,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU was stalled due to retired misprediction by (indirect) RET instructions.,> 0.05 & P,5,BrMispredicts,,,L3,,,,, +BAD,,,Other_Mispredicts,,,,,,,,,,,,,,,,,,,,"max( Branch_Mispredicts * ( 1 - BR_MISP_RETIRED.ALL_BRANCHES / ( INT_MISC.CLEARS_COUNT - MACHINE_CLEARS.COUNT ) ) , 0.0001 )",,,,,,,,,,Slots,This metric estimates fraction of slots the CPU was stalled due to other cases of misprediction (non-retired x86 branches or other types).,> 0.05 & P,4.6,BvIO;BrMispredicts,,pub/v4.6,L3,;bot;,,,, +BAD,,Machine_Clears,,,,,,,,,,,,,,,,"max( 0 , Bad_Speculation - Branch_Mispredicts )",,,,,,,,,,,,,Bad_Speculation - Branch_Mispredicts,MACHINE_CLEARS.COUNT,Slots,This metric represents fraction of slots the CPU has wasted due to Machine Clears. These slots are either wasted by uops fetched prior to the clear; or stalls the out-of-order portion of the machine needs to recover its state after the clear. For example; this can happen due to memory ordering Nukes (e.g. Memory Disambiguation) or Self-Modifying-Code (SMC) nukes.,> 0.1 & P; $issueMC; $issueSyncxn,4.5,BadSpec;BvMS;MachineClears;TmaL2,,pub/v3,L2,;bot;,,,"See ""Memory Disambiguation"" in Optimization Manual and:",https://software.intel.com/sites/default/files/m/d/4/1/d/8/sma.pdf +BAD,,,Other_Nukes,,,,,,,,,,,,,,,,,,,,"max( Machine_Clears * ( 1 - MACHINE_CLEARS.MEMORY_ORDERING / MACHINE_CLEARS.COUNT ) , 0.0001 )",,,,,,,,#NA,,Slots,This metric represents fraction of slots the CPU has wasted due to Nukes (Machine Clears) not related to memory ordering.,> 0.05 & P,4.7,BvIO;Machine_Clears,,pub/5.0,L3,;bot;,,,, +BE,Backend_Bound,,,,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BACKEND_BOUND_SLOTS / SLOTS,,,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.BACKEND_BOUND_SLOTS / SLOTS,,,,PERF_METRICS.BACKEND_BOUND / #PERF_METRICS_SUM + ( #Pipeline_Width * INT_MISC.CLEARS_COUNT ) / SLOTS if #PERF_METRICS_MSR else ( TOPDOWN.BACKEND_BOUND_SLOTS + #Pipeline_Width * INT_MISC.CLEARS_COUNT ) / SLOTS,,,,,1 - Frontend_Bound - ( UOPS_ISSUED.ANY + #Pipeline_Width * #Recovery_Cycles ) / SLOTS,,,,,,,,1 - ( Frontend_Bound + Bad_Speculation + Retiring ),SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : TOPDOWN.BACKEND_BOUND_SLOTS,Slots,This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend. Backend is the portion of the processor core where the out-of-order scheduler dispatches ready uops into their respective execution units; and once completed these uops get retired according to program order. For example; stalls due to data-cache misses or stalls due to the divider unit being overloaded are both categorized under Backend Bound. Backend Bound is further divided into two main categories: Memory Bound and Core Bound.,> 0.2,4.3,BvOB;TmaL1,,pub/v3,L1,;bot;,,,, +BE/Mem,,Memory_Bound,,,,,,,,,,,,PERF_METRICS.MEMORY_BOUND / #PERF_METRICS_SUM if #PERF_METRICS_MSR else TOPDOWN.MEMORY_BOUND_SLOTS / SLOTS,,,,,,,,,,,,,,,,,#Memory_Bound_Fraction * Backend_Bound,#NA,Slots,This metric represents fraction of slots the Memory subsystem within the Backend was a bottleneck. Memory Bound estimates fraction of slots where pipeline is likely stalled due to demand load or store instructions. This accounts mainly for (1) non-completed in-flight memory demand loads which coincides with execution units starvation; in addition to (2) cases where stores could impose backpressure on the pipeline when many of them get buffered at the same time (less common out of the two).,> 0.2 & P,4.1,Backend;TmaL2,,pub/v3,L2,;bot;,,,, +BE/Mem,,,L1_Bound,,,,,MEMORY_STALLS.L1 / CLKS,,,,,,"max( ( EXE_ACTIVITY.BOUND_ON_LOADS - MEMORY_ACTIVITY.STALLS_L1D_MISS ) / CLKS , 0 )",,,,,,,,,,,"max( ( CYCLE_ACTIVITY.STALLS_MEM_ANY - CYCLE_ACTIVITY.STALLS_L1D_MISS ) / CLKS , 0 )",,,,"max( ( #STALLS_MEM_ANY - CYCLE_ACTIVITY.STALLS_L1D_PENDING ) / CLKS , 0 )",,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L1_HIT_PS : MEM_LOAD_RETIRED.L1_HIT,Stalls,This metric estimates how often the CPU was stalled without loads missing the L1 Data (L1D) cache. The L1D cache typically has the shortest latency. However; in certain cases like loads blocked on older stores; a load might suffer due to high latency even though it is being satisfied by the L1D. Another example is loads who miss in the TLB. These cases are characterized by execution unit stalls; while some non-completed demand load lives in the machine without having that demand load missing the L1 cache.,> 0.1 & P; $issueL1; $issueMC,4.4,CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, +BE/Mem,,,,DTLB_Load,,,,,,"MEM_INST_RETIRED.STLB_HIT_LOADS*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Load_STLB_Miss",,,,"min( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT:c1 + DTLB_LOAD_MISSES.WALK_ACTIVE , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - MEMORY_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,,"min( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT:c1 + DTLB_LOAD_MISSES.WALK_ACTIVE , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - CYCLE_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT + DTLB_LOAD_MISSES.WALK_DURATION:c1 + 7 * DTLB_LOAD_MISSES.WALK_COMPLETED ) / CLKS,,,,,,( #Mem_STLB_Hit_Cost * DTLB_LOAD_MISSES.STLB_HIT + DTLB_LOAD_MISSES.WALK_DURATION ) / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.STLB_MISS_LOADS_PS : MEM_INST_RETIRED.STLB_MISS_LOADS_PS,Clocks_Estimated,This metric roughly estimates the fraction of cycles where the Data TLB (DTLB) was missed by load accesses. TLBs (Translation Look-aside Buffers) are processor caches for recently used entries out of the Page Tables that are used to map virtual- to physical-addresses by the operating system. This metric approximates the potential delay of demand loads missing the first-level data TLB (assuming worst case scenario with back to back misses to different pages). This includes hitting in the second-level TLB (STLB) as well as performing a hardware page walk on an STLB miss.,> 0.1 & P; $issueTLB,4.4,BvMT;MemoryTLB,1,pub/v3.4,L4,;bot;,,,,#Link: Linux THP pages; similar Windows link. +BE/Mem,,,,,Load_STLB_Hit,,,,,"max( 0 , DTLB_Load - Load_STLB_Miss )",,,,,,,,,,,,,DTLB_Load - Load_STLB_Miss,,,,,,,,#NA,,Clocks_Estimated,"This metric roughly estimates the fraction of cycles where the (first level) DTLB was missed by load accesses, that later on hit in second-level TLB (STLB)",> 0.05 & P,4.2,MemoryTLB,1,pub/5.0,L5,;bot;,,,, +BE/Mem,,,,,Load_STLB_Miss,,,,,,,,,,,,,,,,,,DTLB_LOAD_MISSES.WALK_ACTIVE / CLKS,,,,,,,,#NA,,Clocks_Calculated,"This metric estimates the fraction of cycles where the Second-level TLB (STLB) was missed by load accesses, performing a hardware page walk",> 0.05 & P,3.6,MemoryTLB,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,,,Load_STLB_Miss_4K,,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_4K / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for data load accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Mem,,,,,,Load_STLB_Miss_2M,,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for data load accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Mem,,,,,,Load_STLB_Miss_1G,,,,,,,,,,,,,,,,,Load_STLB_Miss * DTLB_LOAD_MISSES.WALK_COMPLETED_1G / ( DTLB_LOAD_MISSES.WALK_COMPLETED_4K + DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M + DTLB_LOAD_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 1 GB pages for data load accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Mem,,,,Store_Fwd_Blk,,,,,,,,,,,,,,,,,,,,,,,,,13 * LD_BLOCKS.STORE_FORWARD / CLKS,,,,Clocks_Estimated,This metric roughly estimates fraction of cycles when the memory subsystem had loads blocked since they could not forward data from earlier (in program order) overlapping stores. To streamline memory operations in the pipeline; a load can avoid waiting for memory if a prior in-flight store is writing the data that the load wants to read (store forwarding process). However; in some cases the load may be blocked for a significant time pending the store forward. For example; when the prior store is writing a smaller region than the load is reading.,> 0.1 & P,3.3,,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,Store_Early_Blk,,,,LD_BLOCKS.STORE_EARLY:c1 / CLKS,,,,,,#NA,,,,#NA,,,,,,,,,,,#NA,,,,Clocks_Estimated,This metric roughly estimates clocks wasted due to loads blocked due to unknown store address (did not do memory disambiguation) or due to unknown store data,> 0.2,5.1,,1,,4,;bot;,,,GPZv4, +BE/Mem,,,,L1_Latency_Dependency,,,,#NA,,,,,,"min( 2 * ( MEM_INST_RETIRED.ALL_LOADS - MEM_LOAD_RETIRED.FB_HIT - MEM_LOAD_RETIRED.L1_MISS ) * Dependent_Loads_Weight / 100 , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - MEMORY_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,,"min( 2 * ( MEM_INST_RETIRED.ALL_LOADS_PS - MEM_LOAD_RETIRED.FB_HIT_PS - MEM_LOAD_RETIRED.L1_MISS_PS ) * Dependent_Loads_Weight / 100 , max( CYCLE_ACTIVITY.CYCLES_MEM_ANY - CYCLE_ACTIVITY.CYCLES_L1D_MISS , 0 ) ) / CLKS",,,,,,,,#NA,LNL ? DEPENDENT_LOADS.ANY : SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L1_HIT_PS : MEM_LOAD_RETIRED.L1_HIT,Clocks_Estimated,This metric ([SKL+] roughly; [LNL]) estimates fraction of cycles with demand load accesses that hit the L1D cache. The short latency of the L1D cache may be exposed in pointer-chasing memory access patterns as an example.,> 0.1 & P,5,BvML;MemoryLat,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,L1_Latency_Capacity,,,,"MEM_LOAD_RETIRED.L1_HIT_L1*min($PEBS, 9) / CLKS",,,,,,,,,,,,,,,,,,,,,,,#NA,,Clocks_Retired,This metric estimates fraction of cycles with demand load accesses that hit Level 1 after missing Level 0 within the L1D cache.,> 0.1 & P,5,BvML;MemoryLat,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,Lock_Latency,,,,,,MEM_INST_RETIRED.LOCK_LOADS*$PEBS / CLKS,,,,LOCK_CYCLES.CACHE_LOCK_DURATION / CLKS,,,,"( 16 * max( 0 , MEM_INST_RETIRED.LOCK_LOADS - L2_RQSTS.ALL_RFO ) + #Mem_Lock_St_Fraction * ( #Mem_L2_Store_Cost * L2_RQSTS.RFO_HIT + #ORO_Demand_RFO_C1 ) ) / CLKS",,,,,"( 12 * max( 0 , MEM_INST_RETIRED.LOCK_LOADS - L2_RQSTS.ALL_RFO ) + #Mem_Lock_St_Fraction * ( #Mem_L2_Store_Cost * L2_RQSTS.RFO_HIT + #ORO_Demand_RFO_C1 ) ) / CLKS",,,,,,#Mem_Lock_St_Fraction * #ORO_Demand_RFO_C1 / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.LOCK_LOADS_PS : MEM_INST_RETIRED.LOCK_LOADS,Clocks,This metric represents fraction of cycles the CPU spent handling cache misses due to lock operations. Due to the microarchitecture handling of locks; they are classified as L1_Bound regardless of what memory source satisfied them.,> 0.2 & P; $issueRFO,4.3,LockCont;Offcore,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,Split_Loads,,,,,,"MEM_INST_RETIRED.SPLIT_LOADS*min($PEBS, Load_Miss_Real_Latency) / CLKS",,,,MEM_INST_RETIRED.SPLIT_LOADS * Load_Miss_Real_Latency / CLKS,,,,,,,,,,,,,Load_Miss_Real_Latency * LD_BLOCKS.NO_SR / CLKS,,13 * LD_BLOCKS.NO_SR / CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.SPLIT_LOADS_PS : MEM_INST_RETIRED.SPLIT_LOADS_PS,Clocks_Calculated,This metric estimates fraction of cycles handling memory load split accesses - load that cross 64-byte cache line boundary. ,> 0.3,5,,1,pub/5.0,L4,;bot;,,,Consider aligning data or hot structure fields. See the Optimization Manual for more details, +BE/Mem,,,,4K_Aliasing,,,,,,,,,,#NA,,,,,,,,,,,,,,,LD_BLOCKS_PARTIAL.ADDRESS_ALIAS / CLKS,,,,Clocks_Estimated,This metric estimates how often memory load accesses were aliased by preceding stores (in program order) with a 4K address offset. False match is possible; which incur a few cycles load re-issue. However; the short re-issue duration is often hidden by the out-of-order core and HW optimizations; hence a user may safely ignore a high value of this metric unless it manages to propagate up into parent nodes of the hierarchy (e.g. to L1_Bound).,> 0.2 & P,3.4,,,pub/5.0,L4,;bot;,,,Consider reducing independent loads/stores accesses with 4K offsets. See the Optimization Manual for more details, +BE/Mem,,,,FB_Full,,,,L1D_MISS.FB_FULL / CLKS,,,,,,,,,,L1D_PEND_MISS.FB_FULL / CLKS,,,,,,,Load_Miss_Real_Latency * L1D_PEND_MISS.FB_FULL:c1 / CLKS,,Load_Miss_Real_Latency * L1D_PEND_MISS.REQUEST_FB_FULL:c1 / CLKS,,Load_Miss_Real_Latency * L1D_PEND_MISS.FB_FULL:c1 / CLKS,,,,Clocks_Calculated,This metric does a *rough estimation* of how often L1D Fill Buffer unavailability limited additional L1D miss memory access requests to proceed. The higher the metric value; the deeper the memory hierarchy level the misses are satisfied from (metric values >1 are valid). Often it hints on approaching bandwidth limits (to L2 cache; L3 cache or external memory).,> 0.3; $issueBW; $issueSL; $issueSmSt,4,BvMB;MemoryBW,,pub/v3.1,L4,;bot;,,,See $issueBW and $issueSL hints. Avoid software prefetches if indeed memory BW limited., +BE/Mem,,,L2_Bound,,,,,( MEM_LOAD_RETIRED.L2_HIT / ( MEM_LOAD_RETIRED.L2_HIT + MEM_LOAD_MISC_RETIRED.UC * #UC_Scale_Factor ) ) * MEMORY_STALLS.L2 / CLKS,,,,,,( MEMORY_ACTIVITY.STALLS_L1D_MISS - MEMORY_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,( #LOAD_L2_HIT / ( #LOAD_L2_HIT + L1D_PEND_MISS.FB_FULL_PERIODS ) ) * #L2_Bound_Ratio,,,,,( #LOAD_L2_HIT / ( #LOAD_L2_HIT + L1D_PEND_MISS.FB_FULL:c1 ) ) * #L2_Bound_Ratio,,( CYCLE_ACTIVITY.STALLS_L1D_MISS - CYCLE_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,( CYCLE_ACTIVITY.STALLS_L1D_PENDING - CYCLE_ACTIVITY.STALLS_L2_PENDING ) / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L2_HIT_PS : MEM_LOAD_RETIRED.L2_HIT,Stalls,This metric estimates how often the CPU was stalled due to L2 cache accesses by loads. Avoiding cache misses (i.e. L1 misses/L2 hits) can improve the latency and increase performance.,> 0.05 & P,4,BvML;CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, +BE/Mem,,,,L2_Hit_Latency,,,,,,"MEM_LOAD_RETIRED.L2_HIT*min($PEBS, #Mem_L2_Hit_Cost) * #FB_Factor / CLKS",,,,,,,,,,,,,#Mem_L2_Hit_Cost * MEM_LOAD_RETIRED.L2_HIT_PS * #FB_Factor / CLKS,,,,,,,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L2_HIT_PS : MEM_LOAD_RETIRED.L2_HIT,Clocks_Retired,This metric represents fraction of cycles with demand load accesses that hit the L2 cache under unloaded scenarios (possibly L2 latency limited). Avoiding L1 cache misses (i.e. L1 misses/L2 hits) will improve the latency.,> 0.05 & P,5,MemoryLat,,,L4,,,,, +BE/Mem,,,L3_Bound,,,,,MEMORY_STALLS.L3 / CLKS,,,,,,( MEMORY_ACTIVITY.STALLS_L2_MISS - MEMORY_ACTIVITY.STALLS_L3_MISS ) / CLKS,,,,,,,,,( CYCLE_ACTIVITY.STALLS_L2_MISS - CYCLE_ACTIVITY.STALLS_L3_MISS ) / CLKS,,#Mem_L3_Hit_Fraction * CYCLE_ACTIVITY.STALLS_L2_MISS / CLKS,,,,,,#Mem_L3_Hit_Fraction * CYCLE_ACTIVITY.STALLS_L2_PENDING / CLKS,SNB/JKT/IVB/IVT ? MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_HIT_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? MEM_LOAD_RETIRED.L3_HIT_PS : MEM_LOAD_L2_MISS_RETIRED.L3_HIT_SAME_CBB,Stalls,This metric estimates how often the CPU was stalled due to loads accesses to L3 cache or contended with a sibling Core. Avoiding cache misses (i.e. L2 misses/L3 hits) can improve the latency and increase performance.,> 0.05 & P,3.3,CacheHits;MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, +BE/Mem,,,,Contested_Accesses,,,,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) ) * #FB_Factor / CLKS",,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) * #True_XSNP_HitM_Fraction ) * #FB_Factor / CLKS",,,,,,,,,,,,,( ( #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_HITM + ( #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_MISS ) * #FB_Factor / CLKS,,,,,,( #Mem_XSNP_HitM_Cost * #LOAD_XSNP_HITM + #Mem_XSNP_Hit_Cost * #LOAD_XSNP_MISS ) / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS_PS : TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD;MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS : MEM_LOAD_L2_MISS_RETIRED.L3.SAME_CBB.HIT_ESF.SNP_MISS;MEM_LOAD_L2_MISS_RETIRED.OTHER_MODULE_L2.SAME_CBB.HIT_M.SNP_FWD,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to contested accesses. Contested accesses occur when data written by one Logical Processor are read by another Logical Processor on a different Physical Core. Examples of contested accesses include synchronizations such as locks; true data sharing such as modified locked variables; and false sharing.,> 0.05 & P; $issueSyncxn,4.2,BvMS;DataSharing;LockCont;Offcore;Snoop,1,pub/5.0,L4,;bot;,,ZeroOk,, +BE/Mem,,,,Data_Sharing,,,,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_HitM_Cost - #Mem_L2_Hit_Cost) ) * #FB_Factor / CLKS",,"( MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD*min($PEBS, #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost) * ( 1 - #True_XSNP_HitM_Fraction ) ) * #FB_Factor / CLKS",,,,,,,,,,,,,( #Mem_XSNP_Hit_Cost - #Mem_L2_Hit_Cost ) * #LOAD_XSNP_HIT * #FB_Factor / CLKS,,,,,,#Mem_XSNP_Hit_Cost * #LOAD_XSNP_HIT / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS : TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD : MEM_LOAD_L2_MISS_RETIRED.L3.SAME_CBB.HIT_ESF.SNP_HIT_NO_FWD,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling synchronizations due to L3 data-sharing accesses. Data shared by multiple Logical Processors (even just read shared) may cause increased access latency due to cache coherency. Excessive data sharing can drastically harm multithreaded performance.,> 0.05 & P; $issueSyncxn,4.2,BvMS;Offcore;Snoop,1,pub/5.0,L4,;bot;,,ZeroOk,, +BE/Mem,,,,L3_Hit_Latency,,,,,,"MEM_LOAD_RETIRED.L3_HIT*min($PEBS, #Mem_XSNP_None_Cost - #Mem_L2_Hit_Cost) * #FB_Factor / CLKS",,,,,,,,,,,,,( #Mem_XSNP_None_Cost - #Mem_L2_Hit_Cost ) * #LOAD_L3_HIT / CLKS,,,,,,#Mem_XSNP_None_Cost * #LOAD_L3_HIT / CLKS,,,SNB/JKT ? #NA : IVB/IVT ? MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_HIT_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? MEM_LOAD_RETIRED.L3_HIT_PS : MEM_LOAD_L2_MISS_RETIRED.L3_HIT_SAME_CBB,Clocks_Estimated,This metric estimates fraction of cycles with demand load accesses that hit the L3 cache under unloaded scenarios (possibly L3 latency limited). Avoiding private cache misses (i.e. L2 misses/L3 hits) will improve the latency; reduce contention with sibling physical cores and increase performance. Note the value of this node may overlap with its siblings.,> 0.1 & P; $issueLat; ~overlap,4.2,BvML;MemoryLat,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,SQ_Full,,,,( XQ.FULL + L1D_MISS.L2_STALLS ) / CLKS,,,,,,( XQ.FULL_CYCLES + L1D_PEND_MISS.L2_STALLS ) / CLKS,,,,L1D_PEND_MISS.L2_STALL / CLKS,,,,,,,,,,,#SQ_Full_Cycles / CORE_CLKS,,,,Clocks,This metric measures fraction of cycles where the Super Queue (SQ) was full taking into account all request-types and both hardware SMT threads (Logical Processors).,> 0.3 & P; $issueBW,4.3,BvMB;MemoryBW;Offcore,,pub/5.0,L4,;bot;,,,, +BE/Mem,,,HBM_Bound,,,,,,,,#NA,#MEM_Bound_Ratio * OCR.DEMAND_DATA_RD.PMM / OCR.READS_TO_CORE.L3_MISS,,,,,,,,,,,,,,,,,,,#NA,,Stalls,This metric estimates how often the CPU was stalled due to High Bandwidth Memory (HBM) accesses by loads.,> 0.1 & P,4.7,BvMB;BvML;MemoryBound;Offcore;Server;TmaL3mem,,pub/v4.6,L3,;bot;,,,, +BE/Mem,,,L3_Miss_Bound,,,,,#MEM_Bound_Ratio,( #MEM_Bound_Ratio - CXL_Mem_Bound ) if #PMM_App_Direct else #MEM_Bound_Ratio,,#MEM_Bound_Ratio,#MEM_Bound_Ratio - HBM_Bound,,,,,,,,( #MEM_Bound_Ratio - CXL_Mem_Bound ) if #PMM_App_Direct else #MEM_Bound_Ratio,,,#MEM_Bound_Ratio,,( 1 - #Mem_L3_Hit_Fraction ) * CYCLE_ACTIVITY.STALLS_L2_MISS / CLKS,,,,,,( 1 - #Mem_L3_Hit_Fraction ) * CYCLE_ACTIVITY.STALLS_L2_PENDING / CLKS,SNB ? MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS : IVB/IVT/JKT ? MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS : HSW/HSX/BDW/BDX ? MEM_LOAD_UOPS_RETIRED.L3_MISS_PS : SKL/SKX/CFL/CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? MEM_LOAD_RETIRED.L3_MISS : MEM_LOAD_L2_MISS_RETIRED.L3_MISS,Stalls,This metric estimates how often the CPU was stalled on accesses to external memory (DRAM) by loads. Better caching can improve the latency and increase performance.,> 0.1 & P,4.7,MemoryBound;TmaL3mem;Offcore,1,pub/v3,L3,;bot;,,,, +BE/Mem,,,,MEM_Bandwidth,,,,,,,,,,,,,,,,,,,,,,,,,,,#ORO_DRD_BW_Cycles / CLKS,,Clocks,This metric estimates fraction of cycles where the core's performance was likely hurt due to approaching bandwidth limits of external memory - DRAM ([SPR-HBM] and/or HBM). The underlying heuristic assumes that a similar off-core traffic is generated by all IA cores. This metric does not aggregate non-data-read requests by this logical processor; requests from other IA Logical Processors/Physical Cores/sockets; or other non-IA devices like GPU; hence the maximum external memory bandwidth limits may or may not be approached when this metric is flagged (see Uncore counters for that).,> 0.2 & P; $issueBW,4.7,BvMB;MemoryBW;Offcore,,pub/v3,L4,;bot;,,,"Improve data accesses to reduce cacheline transfers from/to memory. Examples: 1) Consume all bytes of a each cacheline before it is evicted (e.g. reorder structure elements and split non-hot ones), 2) merge computed-limited with BW-limited loops, 3) NUMA optimizations in multi-socket system. Note: software prefetches will not help BW-limited application.",#Link: what is NUMA article +BE/Mem,,,,,MBA_Stalls,,,,,,,,INT_MISC.MBA_STALLS / CLKS,,,,,,,,,,,,,,,,,,,,Clocks,This metric estimates fraction of cycles where the core's performance was likely hurt due to memory bandwidth Allocation feature (RDT's memory bandwidth throttling).,> 0.1 & P,4.6,MemoryBW;Offcore;Server,,,L5,,,ZeroOk,, +BE/Mem,,,,MEM_Latency,,,,,,,,,,,,,,,,,,,,,,,,,,,#ORO_DRD_Any_Cycles / CLKS - MEM_Bandwidth,,Clocks,This metric estimates fraction of cycles where the performance was likely hurt due to latency from external memory - DRAM ([SPR-HBM] and/or HBM). This metric does not aggregate requests from other Logical Processors/Physical Cores/sockets (see Uncore counters for that).,> 0.1 & P; $issueLat,4.7,BvML;MemoryLat;Offcore,,pub/v3,L4,;bot;,,,"Improve data accesses or interleave them with compute. Examples: 1) Data layout re-structuring, 2) Software Prefetches (also through the compiler).",#Link: Data re-layout; SW prefetching; AoS vs. SoA articles. +BE/Mem,,,,,Local_MEM,,,,MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM*$PEBS * #FB_Factor / CLKS,,,,,,,,( #Mem_Local_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * #FB_Factor / CLKS,,,,,( #Mem_Local_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * #FB_Factor / CLKS,,,,,,#Mem_Local_DRAM_Cost * #LOAD_LCL_MEM / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL/PTL ? #NA : IVT ? MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS : MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from local memory. Caching will improve the latency and increase performance.,> 0.1 & P,4.7,Server,1,pub/5.0,L5,;bot;,,,, +BE/Mem,,,,,Remote_MEM,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM*$PEBS * #FB_Factor / CLKS,,,,,,,,,,,,,( #Mem_Remote_DRAM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM * #FB_Factor / CLKS if #DS else #NA,,,,,,#Mem_Remote_DRAM_Cost * #LOAD_RMT_MEM / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL/PTL ? #NA : IVT ? MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS : MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM_PS,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from remote memory. This is caused often due to non-optimal NUMA allocations. #link to NUMA article,> 0.1 & P,5.1,Server;Snoop,1,pub/5.0,L5,;bot;,,,, +BE/Mem,,,,,Remote_Cache,,,,( MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM*$PEBS + MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD*$PEBS ) * #FB_Factor / CLKS,,,,,,,,,,,,,( ( #Mem_Remote_HitM_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM + ( #Mem_Remote_Fwd_Cost - #Mem_XSNP_None_Cost ) * MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD ) * #FB_Factor / CLKS if #DS else #NA,,,,,,( #Mem_Remote_HitM_Cost * #LOAD_RMT_HITM + #Mem_Remote_Fwd_Cost * #LOAD_RMT_FWD ) / CLKS,,,#NA,SNB/JKT/IVB/HSW/BDW/SKL/KBL/KBLR/CFL/ICL/TGL/RKL/ADL/MTL/LNL/PTL ? #NA : IVT ? MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS : HSX/BDX ? MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS : MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM_PS;MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD_PS,Clocks_Estimated,This metric estimates fraction of cycles while the memory subsystem was handling loads from remote cache in other sockets including synchronizations issues. This is caused often due to non-optimal NUMA allocations. #link to NUMA article,> 0.05 & P; $issueSyncxn,5.1,Offcore;Server;Snoop,1,pub/5.0,L5,;bot;,,ZeroOk,, +BE/Mem,,,,UC_Bound,,,,( MEM_LOAD_MISC_RETIRED.UC * #UC_Scale_Factor / (MEM_LOAD_RETIRED.L2_HIT + MEM_LOAD_MISC_RETIRED.UC * #UC_Scale_Factor) ) * MEMORY_STALLS.L2 / CLKS,,,,,,,,,,,,,,,,,,,,,,,#NA,,Stalls,This metric roughly estimates fraction of cycles where the core's performance was likely hurt due to un-chacheable memory,> 0.2 & P; $issueBW,5.2,BvMB;MemoryBW;Offcore,,pub/5.0,L4,;bot;,,,, +BE/Mem,,,CXL_Mem_Bound,,,,,,( ( ( 1 - #Mem_DDR_Hit_Fraction ) * #MEM_Bound_Ratio ) if ( #OneMillion * ( MEM_LOAD_L3_MISS_RETIRED.REMOTE_CXL_MEM + MEM_LOAD_RETIRED.LOCAL_CXL_MEM ) > MEM_LOAD_RETIRED.L1_MISS ) else 0 ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,( ( ( 1 - #Mem_DDR_Hit_Fraction ) * #MEM_Bound_Ratio ) if ( #OneMillion * ( MEM_LOAD_L3_MISS_RETIRED.REMOTE_PMM + MEM_LOAD_RETIRED.LOCAL_PMM ) > MEM_LOAD_RETIRED.L1_MISS ) else 0 ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Stalls,"This metric roughly estimates (based on idle latencies) how often the CPU was stalled on accesses to external CXL Memory by loads (e.g. 3D-Xpoint (Crystal Ridge, a.k.a. IXP) memory, PMM - Persistent Memory Module [from CLX to SPR] or any other CXL Type3 Memory [EMR onwards]). ",> 0.1 & P,4.8,MemoryBound;Server;TmaL3mem,1,pub/v3.5,L3,;bot;,,ZeroOk,Consider moving data-structure from AEP to DDR memory for better latency/bandwidth,#Link: Opt Guide CR section +BE/Mem,,,Store_Bound,,,,,,,,,,,,,,,EXE_ACTIVITY.BOUND_ON_STORES / CLKS,,,,,EXE_ACTIVITY.BOUND_ON_STORES / CLKS,,,,,,,,RESOURCE_STALLS.SB / CLKS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.ALL_STORES_PS : MEM_INST_RETIRED.ALL_STORES_PS,Stalls,This metric estimates how often CPU was stalled due to RFO store memory accesses; RFO store issue a read-for-ownership request before the write. Even though store accesses do not typically stall out-of-order CPUs; there are few cases where stores can lead to actual stalls. This metric will be flagged should RFO stores be a bottleneck.,> 0.2 & P,4.2,MemoryBound;TmaL3mem,,pub/v3,L3,;bot;,,,, +BE/Mem,,,,Store_Latency,,,,,,,,,,,,,,,,,,,,,,,,,( #Store_L2_Hit_Cycles + ( 1 - #Mem_Lock_St_Fraction ) * #ORO_Demand_RFO_C1 ) / CLKS,,#NA,,Clocks_Estimated,This metric estimates fraction of cycles the CPU spent handling L1D store misses. Store accesses usually less impact out-of-order core performance; however; holding resources for longer time can lead into undesired implications (e.g. contention on L1D fill-buffer entries - see FB_Full),> 0.1 & P; $issueRFO; $issueSL; ~overlap,3.3,BvML;LockCont;MemoryLat;Offcore,1,pub/5.0,L4,;bot;,,,Consider to avoid/reduce unnecessary (or easily load-able/computable) memory store., +BE/Mem,,,,False_Sharing,,,,,,,,,,,,,( #Mem_Remote_HitM_Cost * OCR.DEMAND_RFO.L3_MISS:ocr_msr_val=0x103b800002 + #Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM ) / CLKS if #DS else #Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,#Mem_XSNP_HitM_Cost * OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,,,,( #Mem_Remote_HitM_Cost * #OCR_all_rfo_l3_miss_remote_hitm + #Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm ) / CLKS if #DS else #Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm / CLKS,#Mem_XSNP_HitM_Cost * #OCR_all_rfo_l3_hit_snoop_hitm / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE / CLKS,( #Mem_Remote_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM + #Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE ) / CLKS,#Mem_XSNP_HitM_Cost * OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE / CLKS,,,SNB/JKT ? #NA : IVB ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE : IVT ? MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE;OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM : HSW ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : BDW ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM : HSX/BDX ? MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS;MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.LLC_HIT.HITM_OTHER_CORE;OFFCORE_RESPONSE.DEMAND_RFO.LLC_MISS.REMOTE_HITM : SKX ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : CLX/CPX ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OCR.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE : SKL/KBL/KBLR/CFL ? MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS;OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM : CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM : L2_REQUEST.RFO_HIT_XSNP_HIT_FWD,Clocks_Estimated,This metric roughly estimates how often CPU was handling synchronizations due to False Sharing. False Sharing is a multithreading hiccup; where multiple Logical Processors contend on different data-elements mapped into the same cache line. ,> 0.05 & P; $issueSyncxn,5.02,BvMS;DataSharing;LockCont;Offcore;Snoop,1,pub/5.0,L4,;bot;,,ZeroOk,False Sharing can be easily avoided by padding to make Logical Processors access different lines., +BE/Mem,,,,Split_Stores,,,,"MEM_INST_RETIRED.SPLIT_STORES*min($PEBS, 1) / CLKS",,"MEM_INST_RETIRED.SPLIT_STORES*min($PEBS, 1) / CLKS",,,,,,,,,,,,,MEM_INST_RETIRED.SPLIT_STORES / CORE_CLKS,,,,,,2 * MEM_UOPS_RETIRED.SPLIT_STORES_PS / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.SPLIT_STORES_PS : MEM_INST_RETIRED.SPLIT_STORES_PS,Core_Utilization,This metric represents rate of split store accesses. Consider aligning your data to the 64-byte cache line granularity.,> 0.2 & P; $issueSpSt,4.5,,,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,Streaming_Stores,,,,,,,,,,,,,,9 * OCR.STREAMING_WR.ANY_RESPONSE / CLKS,,,,,,,,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM/EMR/MTL/GNR/LNL/PTL ? OCR.STREAMING_WR.ANY_RESPONSE : OMR.STREAMING_WR.ANY_RESPONSE,Clocks_Estimated,This metric estimates how often CPU was stalled due to Streaming store memory accesses; Streaming store optimize out a read request required by RFO stores. Even though store accesses do not typically stall out-of-order CPUs; there are few cases where stores can lead to actual stalls. This metric will be flagged should Streaming stores be a bottleneck.,> 0.2 & P; $issueSmSt,5.02,MemoryBW;Offcore,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,DTLB_Store,,,,"MEM_INST_RETIRED.STLB_HIT_STORES*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Store_STLB_Miss",,"MEM_INST_RETIRED.STLB_HIT_STORES*min($PEBS, #Mem_STLB_Hit_Cost) / CLKS + Store_STLB_Miss",,,,,,,,,,,,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT:c1 + DTLB_STORE_MISSES.WALK_ACTIVE ) / CORE_CLKS,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT + DTLB_STORE_MISSES.WALK_DURATION:c1 + 7 * DTLB_STORE_MISSES.WALK_COMPLETED ) / CLKS,,,,( #Mem_STLB_Hit_Cost * DTLB_STORE_MISSES.STLB_HIT + DTLB_STORE_MISSES.WALK_DURATION ) / CLKS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? MEM_UOPS_RETIRED.STLB_MISS_STORES_PS : MEM_INST_RETIRED.STLB_MISS_STORES_PS,Clocks_Estimated,This metric roughly estimates the fraction of cycles spent handling first-level data TLB store misses. As with ordinary data caching; focus on improving data locality and reducing working-set size to reduce DTLB overhead. Additionally; consider using profile-guided optimization (PGO) to collocate frequently-used data on the same page. Try using larger page sizes for large amounts of frequently-used data.,> 0.05 & P; $issueTLB,4.3,BvMT;MemoryTLB,1,pub/5.0,L4,;bot;,,,, +BE/Mem,,,,,Store_STLB_Hit,,,,,"max( 0 , DTLB_Store - Store_STLB_Miss )",,,,,,,,,,,,,DTLB_Store - Store_STLB_Miss,,,,,,,,#NA,,Clocks_Estimated,"This metric roughly estimates the fraction of cycles where the TLB was missed by store accesses, hitting in the second-level TLB (STLB)",> 0.05 & P,3.6,MemoryTLB,1,,L5,,,,, +BE/Mem,,,,,Store_STLB_Miss,,,DTLB_STORE_MISSES.WALK_ACTIVE / CLKS,,,,,,,,,,,,,,,DTLB_STORE_MISSES.WALK_ACTIVE / CORE_CLKS,,,,,,,,#NA,,Clocks_Calculated,"This metric estimates the fraction of cycles where the STLB was missed by store accesses, performing a hardware page walk",> 0.05 & P,3.6,MemoryTLB,1,pub/5.0,L5,;bot;,,,, +BE/Mem,,,,,,Store_STLB_Miss_4K,,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_4K / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 4 KB pages for data store accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Mem,,,,,,Store_STLB_Miss_2M,,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 2 or 4 MB pages for data store accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Mem,,,,,,Store_STLB_Miss_1G,,,,,,,,,,,,,,,,,Store_STLB_Miss * DTLB_STORE_MISSES.WALK_COMPLETED_1G / ( DTLB_STORE_MISSES.WALK_COMPLETED_4K + DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M + DTLB_STORE_MISSES.WALK_COMPLETED_1G ),,,,,,,,,,Clocks_Estimated,This metric estimates the fraction of cycles to walk the memory paging structures to cache translation of 1 GB pages for data store accesses.,> 0.05 & P,5,MemoryTLB,,,L6,,,ZeroOk,, +BE/Core,,Core_Bound,,,,,,,,,,,,,,,,"max( 0 , Backend_Bound - Memory_Bound )",,,,,,,,,,,,,Backend_Bound - Memory_Bound,,Slots,This metric represents fraction of slots where Core non-memory issues were of a bottleneck. Shortage in hardware compute resources; or dependencies in software's instructions are both categorized under Core Bound. Hence it may indicate the machine ran out of an out-of-order resource; certain execution units are overloaded or dependencies in program's data- or instruction-flow are limiting the performance (e.g. FP-chained long-latency arithmetic operations).,> 0.1 & P,4.2,Backend;TmaL2;Compute,,pub/v3,L2,;bot;,,,Tip: consider Port Saturation analysis as next step., +BE/Core,,,Divider,,,,,,,,,,,ARITH.DIV_ACTIVE / CLKS,,,,,,,,,ARITH.DIVIDER_ACTIVE / CLKS,,ARITH.FPU_DIV_ACTIVE / CORE_CLKS,,10 * ARITH.DIVIDER_UOPS / CORE_CLKS,,,,ARITH.FPU_DIV_ACTIVE / CORE_CLKS,SNB/JKT/IVB/IVT/BDW/BDX ? ARITH.FPU_DIV_ACTIVE : HSW/HSX ? ARITH.DIVIDER_UOPS : SKL/SKX/KBLR/CLX/CPX/ICL/ICX/RKL/TGL/ADL/SPR/SPR-HBM ? ARITH.DIVIDER_ACTIVE : ARITH.DIV_ACTIVE,Clocks,This metric represents fraction of cycles where the Divider unit was active. Divide and square root instructions are performed by the Divider unit and can take considerably longer latency than integer or Floating Point addition; subtraction; or multiplication.,> 0.2 & P,5.02,BvCB;,1,pub/v3,L3,;bot;,,,, +BE/Core,,,,FP_Divider,,,,,,,,,,ARITH.FPDIV_ACTIVE / CLKS,,,,ARITH.FP_DIVIDER_ACTIVE / CLKS,,,,,,,,,,,,,#NA,,Clocks,This metric represents fraction of cycles where the Floating-Point Divider unit was active.,> 0.2 & P,5,,,,L4,,,,, +BE/Core,,,,INT_Divider,,,,,,,,,,,,,,Divider - FP_Divider,,,,,,,,,,,,,#NA,,Clocks,This metric represents fraction of cycles where the Integer Divider unit was active.,> 0.2 & P,5,,,,L4,,,,, +BE/Core,,,Serializing_Operation,,,,,( BE_STALLS.SCOREBOARD + CPU_CLK_UNHALTED.C02 ) / CLKS,,,,,,RESOURCE_STALLS.SCOREBOARD / CLKS + C02_Wait,,,,RESOURCE_STALLS.SCOREBOARD / CLKS,,,,,PARTIAL_RAT_STALLS.SCOREBOARD / CLKS,,,,,,,,#NA,LNL/ARL/PTL ? BE_STALLS.SCOREBOARD : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? PARTIAL_RAT_STALLS.SCOREBOARD : RESOURCE_STALLS.SCOREBOARD,Clocks,This metric represents fraction of cycles the CPU issue-pipeline was stalled due to serializing operations. Instructions like CPUID; WRMSR or LFENCE serialize the out-of-order execution which may limit performance.,> 0.1 & P; $issueSO,4.7,BvIO;PortsUtil,,pub/v3.4,L3,;bot;,,,, +BE/Core,,,,Slow_Pause,,,,,,,,,,CPU_CLK_UNHALTED.PAUSE / CLKS,,,37 * MISC_RETIRED.PAUSE_INST / CLKS,140 * MISC_RETIRED.PAUSE_INST / CLKS,174 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,40 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,140 * ROB_MISC_EVENTS.PAUSE_INST / CLKS,,,,,,,,,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/SKX ? #NA : KBLR/CFL/CLX/CPX ? ROB_MISC_EVENTS.PAUSE_INST : ICL/ICX/RKL/TGL ? MISC_RETIRED.PAUSE_INST : CPU_CLK_UNHALTED.PAUSE_INST,Clocks,This metric represents fraction of cycles the CPU was stalled due to PAUSE Instructions.,> 0.05 & P,4.3,,,,L4,;,,,, +BE/Core,,,,C01_Wait,,,,,,,,,,CPU_CLK_UNHALTED.C01 / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due staying in C0.1 power-performance optimized state (Faster wakeup time; Smaller power savings).,> 0.05 & P,4.9,C0Wait,,,L4,,,ZeroOk,, +BE/Core,,,,C02_Wait,,,,,,,,,,CPU_CLK_UNHALTED.C02 / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due staying in C0.2 power-performance optimized state (Slower wakeup time; Larger power savings).,> 0.05 & P,4.9,C0Wait,,pub/5.0,L4,;bot;,,ZeroOk,, +BE/Core,,,,Memory_Fence,,,,,,,,,,13 * MISC2_RETIRED.LFENCE / CLKS,,,,,,,,,,,,,,,,,,,Clocks,This metric represents fraction of cycles the CPU was stalled due to LFENCE Instructions.,> 0.05 & P,4.3,,1,,L4,,,,, +BE/Core,,,AMX_Busy,,,,,,,,,,EXE.AMX_BUSY / CORE_CLKS,,,,,,,,,,,,,,,,,,,,Core_Clocks,This metric estimates fraction of cycles where the Advanced Matrix eXtensions (AMX) execution engine was busy with tile (arithmetic) operations,> 0.5 & P,4.7,BvCB;Compute;HPC;Server,,pub/v4.6,L3,;bot;,,,, +BE/Core,,,Ports_Utilization,,,,,,,,,,,#Core_Bound_Cycles / CLKS if ( ARITH.DIV_ACTIVE < ( CYCLE_ACTIVITY.STALLS_TOTAL - EXE_ACTIVITY.BOUND_ON_LOADS ) ) else #Few_Uops_Executed_Threshold / CLKS,,,,,,,,,#Core_Bound_Cycles / CLKS if ( ARITH.DIVIDER_ACTIVE < ( CYCLE_ACTIVITY.STALLS_TOTAL - CYCLE_ACTIVITY.STALLS_MEM_ANY ) ) else #Few_Uops_Executed_Threshold / CLKS,,( #Backend_Bound_Cycles - RESOURCE_STALLS.SB - CYCLE_ACTIVITY.STALLS_MEM_ANY ) / CLKS,,,,,,( #Backend_Bound_Cycles - RESOURCE_STALLS.SB - #STALLS_MEM_ANY ) / CLKS,,Clocks,This metric estimates fraction of cycles the CPU performance was potentially limited due to Core computation issues (non divider-related). Two distinct categories can be attributed into this metric: (1) heavy data-dependency among contiguous instructions would manifest in this metric - such cases are often referred to as low Instruction Level Parallelism (ILP). (2) Contention on some hardware execution unit other than Divider. For example; when there are too many multiply operations.,> 0.15 & P,4.7,PortsUtil,,pub/v3,L3,;bot;,,,Loop Vectorization -most compilers feature auto-Vectorization options today- reduces pressure on the execution ports as multiple elements are calculated with same uop., +BE/Core,,,,Ports_Utilized_0,,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,"max( EXE_ACTIVITY.EXE_BOUND_0_PORTS - RESOURCE_STALLS.SCOREBOARD , 0 ) / CLKS",,,,"( EXE_ACTIVITY.EXE_BOUND_0_PORTS + max( RS.EMPTY_RESOURCE - RESOURCE_STALLS.SCOREBOARD , 0 ) ) / CLKS * ( CYCLE_ACTIVITY.STALLS_TOTAL - EXE_ACTIVITY.BOUND_ON_LOADS ) / CLKS",EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,,EXE_ACTIVITY.3_PORTS_UTIL:u0x80 / CLKS,,,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS / CLKS,,,,,,#Cycles_0_Ports_Utilized / CORE_CLKS,,#NA,,Clocks,"This metric represents fraction of cycles CPU executed no uops on any execution port (Logical Processor cycles since ICL, Physical Core cycles otherwise). Long-latency instructions like divides may contribute to this metric.",> 0.2 & P,5,PortsUtil,,pub/5.0,L4,;bot;,,,Check assembly view and Appendix C in Optimization Manual to find out instructions with say 5 or more cycles latency.,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +BE/Core,,,,,Mixing_Vectors,,,,,,,,,160 * ASSISTS.SSE_AVX_MIX / CLKS,,,,,,,,,UOPS_ISSUED.VECTOR_WIDTH_MISMATCH / UOPS_ISSUED.ANY,,,,,,,,#NA,,Clocks,This metric estimates penalty in terms of percentage of([SKL+] injected blend uops out of all Uops Issued -- the Count Domain; [ADL+] cycles). Usually a Mixing_Vectors over 5% is worth investigating. Read more in Appendix B1 of the Optimizations Guide for this topic.,> 0.05; $issueMV,4.6,,1,,L5,,,,, +BE/Core,,,,Ports_Utilized_1,,,,,,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL / CLKS,,,,,,,,,,,#Cycles_1_Port_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : EXE_ACTIVITY.1_PORTS_UTIL,Clocks,"This metric represents fraction of cycles where the CPU executed total of 1 uop per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise). This can be due to heavy data-dependency among software instructions; or over oversubscribing a particular hardware resource. In some other cases with high 1_Port_Utilized and L1_Bound; this metric can point to L1 data-cache latency bottleneck that may not necessarily manifest with complete execution starvation (due to the short L1 latency e.g. walking a linked list) - looking at the assembly can be helpful.",> 0.2 & P; $issueL1,4,PortsUtil,,pub/5.0,L4,;bot;,,,, +BE/Core,,,,Ports_Utilized_2,,,,,,,,,,,,,,EXE_ACTIVITY.2_PORTS_UTIL / CLKS,,,,,,,,,,,#Cycles_2_Ports_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : EXE_ACTIVITY.2_PORTS_UTIL,Clocks,"This metric represents fraction of cycles CPU executed total of 2 uops per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise). Loop Vectorization -most compilers feature auto-Vectorization options today- reduces pressure on the execution ports as multiple elements are calculated with same uop.",> 0.15 & P; $issue2P,4.2,PortsUtil,,pub/5.0,L4,;bot;,,,, +BE/Core,,,,Ports_Utilized_3m,,,,,,,,,,,,,,UOPS_EXECUTED.CYCLES_GE_3 / CLKS,,,,,,,,,,,#Cycles_3m_Ports_Utilized / CORE_CLKS,,#NA,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : UOPS_EXECUTED.CYCLES_GE_3,Clocks,"This metric represents fraction of cycles CPU executed total of 3 or more uops per cycle on all execution ports (Logical Processor cycles since ICL, Physical Core cycles otherwise).",> 0.4 & P,4.7,BvCB;PortsUtil,,pub/5.0,L4,;bot;,,,, +BE/Core,,,,,ALU_Op_Utilization,,,UOPS_DISPATCHED.ALU / ( 6 * CLKS ),,,,,,( UOPS_DISPATCHED.PORT_0 + UOPS_DISPATCHED.PORT_1 + UOPS_DISPATCHED.PORT_5_11 + UOPS_DISPATCHED.PORT_6 ) / ( 5 * CORE_CLKS ),,,,( UOPS_DISPATCHED.PORT_0 + UOPS_DISPATCHED.PORT_1 + UOPS_DISPATCHED.PORT_5 + UOPS_DISPATCHED.PORT_6 ) / ( 4 * CORE_CLKS ),,,,,,,,,( UOPS_DISPATCHED_PORT.PORT_0 + UOPS_DISPATCHED_PORT.PORT_1 + UOPS_DISPATCHED_PORT.PORT_5 + UOPS_DISPATCHED_PORT.PORT_6 ) / ( 4 * CORE_CLKS ),,( UOPS_DISPATCHED_PORT.PORT_0 + UOPS_DISPATCHED_PORT.PORT_1 + UOPS_DISPATCHED_PORT.PORT_5 ) / ( 3 * CORE_CLKS ),,,,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution ports for ALU operations.,> 0.4,4.3,,,,L5,,,,, +BE/Core,,,,,,Port_0,,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_0 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_0 / CORE_CLKS,,,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_0 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_0 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 0 ([SNB+] ALU; [HSW+] ALU and 2nd branch),> 0.6; $issue2P,4.2,Compute,,,L6,,,,, +BE/Core,,,,,,Port_1,,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_1 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_1 / CORE_CLKS,,,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_1 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_1 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 1 (ALU),> 0.6; $issue2P,4.2,,,,L6,,,,, +BE/Core,,,,,,Port_5,,,,,,,,#NA,,,,UOPS_DISPATCHED.PORT_5 / CORE_CLKS,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_5 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_5 : ICL/ICX/TGL/RKL ? UOPS_DISPATCHED.PORT_5 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 5 ([SNB+] Branches and ALU; [HSW+] ALU),> 0.6; $issue2P,4.2,,,,L6,,,,See section 'Handling Port 5 Pressure' in Optimization Manual:,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +BE/Core,,,,,,Port_6,,#NA,,,,,,,,,,UOPS_DISPATCHED.PORT_6 / CORE_CLKS,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_6 / CORE_CLKS,,,,#NA,IVB/IVT/HSW/HSX/BDW/BDX/SKL/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_1 : ICL/ICX/RKL/TGL/ADL/SPR/MTL/GNR ? UOPS_DISPATCHED.PORT_1 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 6 ([HSW+] Primary Branch and simple ALU),> 0.6; $issue2P,4.6,,,,L6,,,,, +BE/Core,,,,,Load_Op_Utilization,,,UOPS_DISPATCHED.LOAD / ( 3 * CLKS ),,,,,,UOPS_DISPATCHED.PORT_2_3_10 / ( 3 * CORE_CLKS ),,,,UOPS_DISPATCHED.PORT_2_3 / ( 2 * CORE_CLKS ),,,,,,,,,( UOPS_DISPATCHED_PORT.PORT_2 + UOPS_DISPATCHED_PORT.PORT_3 + UOPS_DISPATCHED_PORT.PORT_7 - UOPS_DISPATCHED_PORT.PORT_4 ) / ( 2 * CORE_CLKS ),,( UOPS_DISPATCHED_PORT.PORT_2 + UOPS_DISPATCHED_PORT.PORT_3 - UOPS_DISPATCHED_PORT.PORT_4 ) / ( 2 * CORE_CLKS ),,,LNL/PTL ? UOPS_DISPATCHED.LOAD : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : ICL/ICX/TGL/RKL ? UOPS_DISPATCHED.PORT_2_3 : UOPS_DISPATCHED.PORT_2_3_10,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution port for Load operations,> 0.6,4.3,,,,L5,,,,, +BE/Core,,,,,,Port_2,,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_2 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_2 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 2 ([SNB+]Loads and Store-address; [ICL+] Loads),> 0.6,3.4,,,,L6,,,,, +BE/Core,,,,,,Port_3,,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_3 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_3 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 3 ([SNB+]Loads and Store-address; [ICL+] Loads),> 0.6,3.4,,,,L6,,,,, +BE/Core,,,,,Store_Op_Utilization,,,( UOPS_DISPATCHED.STD + UOPS_DISPATCHED.STA ) / ( 7 * CLKS ),,,,,,,,,,( UOPS_DISPATCHED.PORT_4_9 + UOPS_DISPATCHED.PORT_7_8 ) / ( 4 * CORE_CLKS ),,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_4 / CORE_CLKS,,,LNL/PTL ? UOPS_DISPATCHED.STD;UOPS_DISPATCHED.STA : SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? #NA : UOPS_DISPATCHED.PORT_7_8,Core_Execution,This metric represents Core fraction of cycles CPU dispatched uops on execution port for Store operations,> 0.6,4.1,,,,L5,,,,, +BE/Core,,,,,,Port_4,,,,,,,,,,,,#NA,,,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_4 / CORE_CLKS,,,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_4 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 4 (Store-data),> 0.6; $issueSpSt,3.4,,,,L6,,,,, +BE/Core,,,,,,Port_7,,,,,,,,,,,,#NA,,,,,,,,,UOPS_DISPATCHED_PORT.PORT_7 / CORE_CLKS,,,,#NA,SNB/JKT/IVB/IVT ? #NA : HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_DISPATCHED_PORT.PORT_7 : #NA,Core_Clocks,This metric represents Core fraction of cycles CPU dispatched uops on execution port 7 ([HSW+]simple Store-address),> 0.6,3.4,,,,L6,,,,, +RET,Retiring,,,,,,,,,,,,,,,,,PERF_METRICS.RETIRING / #PERF_METRICS_SUM if #PERF_METRICS_MSR else UOPS_RETIRED.SLOTS / SLOTS,,,,,,,,,,,,,#Retired_Slots / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? UOPS_RETIRED.RETIRE_SLOTS : UOPS_RETIRED.SLOTS,Slots,This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. Ideally; all pipeline slots would be attributed to the Retiring category. Retiring of 100% would indicate the maximum Pipeline_Width throughput was achieved. Maximizing Retiring typically increases the Instructions-per-cycle (see IPC metric). Note that a high Retiring value does not necessary mean there is no room for more performance. For example; Heavy-operations or Microcode Assists are categorized under Retiring. They often indicate suboptimal performance and can often be optimized or avoided. ,(> 0.7 | Heavy_Operations),4.3,BvUW;TmaL1,,pub/v3,L1,;bot;,,,A high Retiring value for non-vectorized code may be a good hint for programmer to consider vectorizing his code. Doing so essentially lets more computations be done without significantly increasing number of instructions thus improving the performance., +RET,,Light_Operations,,,,,,,,,,,,,,,,"max( 0 , Retiring - Heavy_Operations )",,,,,,,,,,,,,Retiring - Heavy_Operations,INST_RETIRED.PREC_DIST,Slots,This metric represents fraction of slots where the CPU was retiring light-weight operations -- instructions that require no more than one uop (micro-operation). This correlates with total number of instructions used by the program. A uops-per-instruction (see UopPI metric) ratio of 1 or less should be expected for decently optimized code running on Intel Core/Xeon products. While this often indicates efficient X86 instructions were executed; high value does not necessarily mean better performance cannot be achieved. ([ICL+] Note this may undercount due to approximation using indirect events; [ADL+] .),> 0.6,4.6,Retire;TmaL2,,pub/v3,L2,;bot;,,,Focus on techniques that reduce instruction count or result in more efficient instructions generation such as vectorization, #Link: auto-Vectorization options of Intel/other compilers. +RET,,,FP_Arith,,,,,,,,,,X87_Use + FP_Scalar + FP_Vector,,,,,,,,,,,,X87_Use + FP_Scalar + FP_Vector,,#NA,,,,X87_Use + FP_Scalar + FP_Vector,,Uops,"This metric represents overall arithmetic floating-point (FP) operations fraction the CPU has executed (retired). Note this metric's value may exceed its parent due to use of ""Uops"" CountDomain and FMA double-counting.",> 0.2 & P,4.7,HPC,,pub/v3,L3,;,,,, +RET,,,,X87_Use,,,,,,,,,,,,,,,,,,,Retiring * UOPS_EXECUTED.X87 / UOPS_EXECUTED.THREAD,,INST_RETIRED.X87 * UopPI / #Retired_Slots,,#NA,,#Retired_Slots * FP_COMP_OPS_EXE.X87 / UOPS_EXECUTED.THREAD,,#Retired_Slots * FP_COMP_OPS_EXE.X87 / UOPS_DISPATCHED.THREAD,,Uops,This metric serves as an approximation of legacy x87 usage. It accounts for instructions beyond X87 FP arithmetic operations; hence may be used as a thermometer to avoid X87 high usage and preferably upgrade to modern ISA. See Tip under Tuning Hint.,> 0.1 & P,4.6,Compute,,,L3,;,,,Tip: consider compiler flags to generate newer AVX (or SSE) instruction sets; which typically perform better and feature vectors., +RET,,,,FP_Scalar,,,,,,,,,,,,,,,,,,,,,#FP_Arith_Scalar / #Retired_Slots,,#NA,,#FP_Arith_Scalar / UOPS_EXECUTED.THREAD,,#FP_Arith_Scalar / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic floating-point (FP) scalar uops fraction the CPU has retired. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,,pub/v3,L3,;,,,Investigate what limits (compiler) generation of vector code., +RET,,,,FP_Vector,,,,,,,,,,,,,,,,,,,,,#FP_Arith_Vector / #Retired_Slots,,#NA,,#FP_Arith_Vector / UOPS_EXECUTED.THREAD,,#FP_Arith_Vector / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic floating-point (FP) vector uops fraction the CPU has retired aggregated across all vector widths. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1,pub/v3,L3,;,,,Check if vector width is expected , +RET,,,,,FP_Vector_128b,,,( FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16 ) / #Retired_Slots,,,,,,( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ) / #Retired_Slots,,#NA,,( FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE ) / UOPS_EXECUTED.THREAD,,( FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE ) / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 128-bit wide vectors. May overcount due to FMA double counting prior to LNL.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1,,L5,,,,Try to exploit wider vector length, +RET,,,,,FP_Vector_256b,,,FP_ARITH_OPS_RETIRED.VECTOR_256B / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256BIT_PACKED_BF16 ) / #Retired_Slots,,,,,,( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ) / #Retired_Slots,,#NA,,( SIMD_FP_256.PACKED_DOUBLE + SIMD_FP_256.PACKED_SINGLE ) / UOPS_EXECUTED.THREAD,,( SIMD_FP_256.PACKED_DOUBLE + SIMD_FP_256.PACKED_SINGLE ) / UOPS_DISPATCHED.THREAD,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 256-bit wide vectors. May overcount due to FMA double counting prior to LNL.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1,,L5,,,,Try to exploit wider vector length, +RET,,,,,FP_Vector_512b,,,,,,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) / #Retired_Slots if #FP16 else ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,#NA,,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512BIT_PACKED_BF16 ) / #Retired_Slots,,,( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) / #Retired_Slots,,,,,,,,,#NA,,Uops,This metric approximates arithmetic FP vector uops fraction the CPU has retired for 512-bit wide vectors. May overcount due to FMA double counting.,> 0.1 & P; $issue2P,4.8,Compute;Flops,1,,L5,,,ZeroOk,, +RET,,,Int_Operations,,,,,,,,,,Int_Vector_128b + Int_Vector_256b,Int_Vector_128b + Int_Vector_256b,,,,,,,,,,,,,,,,,,,Uops,"This metric represents overall Integer (Int) select operations fraction the CPU has executed (retired). Vector/Matrix Int operations and shuffles are counted. Note this metric's value may exceed its parent due to use of ""Uops"" CountDomain.",> 0.1 & P,4.7,Pipeline,,,L3,,,,, +RET,,,,Int_Vector_128b,,,,INT_VEC_RETIRED.128BIT / #Retired_Slots,,,,,,( INT_VEC_RETIRED.ADD_128 + INT_VEC_RETIRED.VNNI_128 ) / #Retired_Slots,,,,,,,,,,,,,,,,,,,Uops,This metric represents 128-bit vector Integer ADD/SUB/SAD or VNNI (Vector Neural Network Instructions) uops fraction the CPU has retired.,> 0.1 & P; $issue2P,4.4,Compute;IntVector;Pipeline,,,L3,,,,, +RET,,,,Int_Vector_256b,,,,INT_VEC_RETIRED.256BIT / #Retired_Slots,,,,,,( INT_VEC_RETIRED.ADD_256 + INT_VEC_RETIRED.MUL_256 + INT_VEC_RETIRED.VNNI_256 ) / #Retired_Slots,,,,,,,,,,,,,,,,,,,Uops,This metric represents 256-bit vector Integer ADD/SUB/SAD/MUL or VNNI (Vector Neural Network Instructions) uops fraction the CPU has retired.,> 0.1 & P; $issue2P,4.7,Compute;IntVector;Pipeline,,,L3,,,,, +RET,,,Memory_Operations,,,,,,,,,,,Light_Operations * MEM_UOP_RETIRED.ANY / #Retired_Slots,,,,,,,,,Light_Operations * MEM_INST_RETIRED.ANY / INST_RETIRED.ANY,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring memory operations -- uops for memory load or store accesses.,> 0.1 & P,4.4,Pipeline,,pub/v4.4,L3,,,,, +RET,,,Fused_Instructions,,,,,,,,,,,Light_Operations * INST_RETIRED.MACRO_FUSED / #Retired_Slots,,,,#NA,,,,,Light_Operations * UOPS_RETIRED.MACRO_FUSED / #Retired_Slots,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring fused instructions -- where one uop can represent multiple contiguous instructions. CMP+JCC or DEC+JCC are common examples of legacy fusions. {([MTL] Note new MOV+OP and Load+OP fusions appear under Other_Light_Ops in MTL!)},> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,See section 'Optimizing for Macro-fusion' in Optimization Manual:, +RET,,,Non_Fused_Branches,,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - INST_RETIRED.BR_FUSED ) / #Retired_Slots,,,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - INST_RETIRED.MACRO_FUSED ) / #Retired_Slots,,,,#NA,,,,,Light_Operations * ( BR_INST_RETIRED.ALL_BRANCHES - UOPS_RETIRED.MACRO_FUSED ) / #Retired_Slots,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring branch instructions that were not fused. Non-conditional branches like direct JMP or CALL would count here. Can be used to examine fusible conditional jumps that were not fused.,> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,, +RET,,,Branch_Instructions,,,,,,,,,,,#NA,,,,Light_Operations * BR_INST_RETIRED.ALL_BRANCHES / #Retired_Slots,,,,,#NA,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring branch instructions.,> 0.1 & P,4.7,Branches;BvBO;Pipeline,,,L3,,,,, +RET,,,Other_Light_Ops,,,,,,,,,,,,,,,,,,,,"max( 0 , Light_Operations - #Light_Ops_Sum )",,,,,,,,#NA,,Slots,This metric represents the remaining light uops fraction the CPU has executed - remaining means not covered by other sibling nodes. May undercount due to FMA double counting,> 0.3 & P,4.7,Pipeline,,pub/v3,L3,,,,, +RET,,,,Nop_Instructions,,,,,,,,,,,,,,,,,,,Light_Operations * INST_RETIRED.NOP / #Retired_Slots,,,,,,,,,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX ? #NA : SKL/SKX/KBL/CLX/CPX ? INST_RETIRED.NOP_PS : INST_RETIRED.NOP,Slots,This metric represents fraction of slots where the CPU was retiring NOP (no op) instructions. Compilers often use NOPs for certain address alignments - e.g. start address of a function or loop body.,> 0.1 & P,4.9,BvBO;Pipeline,,pub/v4.3,L4,,,,Improve Codegen by correctly placing NOPs outside hot sections (e.g. outside loop body)., +RET,,,,Shuffles_256b,,,,,,,,,,Light_Operations * INT_VEC_RETIRED.SHUFFLES / #Retired_Slots,,,,,,,,,,,,,,,,,,,Slots,"This metric represents fraction of slots where the CPU was retiring Shuffle operations of 256-bit vector size (FP or Integer). Shuffles may incur slow cross ""vector lane"" data transfers.",> 0.1 & P,4.7,HPC;Pipeline,,,L4,,,,, +RET,,Heavy_Operations,,,,,,,,,,,,PERF_METRICS.HEAVY_OPERATIONS / #PERF_METRICS_SUM if #PERF_METRICS_MSR else UOPS_RETIRED.HEAVY / SLOTS,,,,Microcode_Sequencer + Retiring * ( UOPS_DECODED.DEC0 - UOPS_DECODED.DEC0:c1 ) / IDQ.MITE_UOPS,,,,,( #Retired_Slots + UOPS_RETIRED.MACRO_FUSED - INST_RETIRED.ANY ) / SLOTS,,,,,,,,Microcode_Sequencer,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/RKL/TGL ? #NA : UOPS_RETIRED.HEAVY,Slots,This metric represents fraction of slots where the CPU was retiring heavy-weight operations -- instructions that require two or more uops or micro-coded sequences. This highly-correlates with the uop length of these instructions/sequences.([ICL+] Note this may overcount due to approximation using indirect events; [ADL+]),> 0.1,4.3,Retire;TmaL2,,pub/v4.1,L2,;bot;,,,, +RET,,,Few_Uops_Instructions,,,,,,,,,,,"max( 0 , Heavy_Operations - Microcode_Sequencer )",,,,,,,,,Heavy_Operations - Microcode_Sequencer,,,,,,,,,,Slots,This metric represents fraction of slots where the CPU was retiring instructions that that are decoder into two or more uops. This highly-correlates with the number of uops in such instructions.,> 0.05 & P; $issueD0,5,,,pub/5.0,L3,;bot;,,,, +RET,,,Microcode_Sequencer,,,,,,,,,,,UOPS_RETIRED.MS / SLOTS,,,,,,,,,,,,,,,,,#Retire_Fraction * IDQ.MS_UOPS / SLOTS,SNB/JKT/IVB/IVT/HSW/HSX/BDW/BDX/SKL/KBL/KBLR/CFL/SKX/CLX/CPX/ICL/ICX/TGL/RKL ? IDQ.MS_UOPS : UOPS_RETIRED.MS,Slots,This metric represents fraction of slots the CPU was retiring uops fetched by the Microcode Sequencer (MS) unit. The MS is used for CISC instructions not supported by the default decoders (like repeat move strings; or CPUID); or by microcode assists used to address some operation modes (like in Floating Point assists). These cases can often be avoided.,> 0.05 & P; $issueMC; $issueMS,4.5,MicroSeq,,pub/v3,L3,;bot;,,,, #Link: repeat move strings +RET,,,,Assists,,,,,,,,,,#Avg_Assist_Cost * ASSISTS.ANY / SLOTS,,,,#Avg_Assist_Cost * ASSISTS.ANY / SLOTS,,,,,#Avg_Assist_Cost * ( FP_ASSIST.ANY + OTHER_ASSISTS.ANY ) / SLOTS,,,,,,#Avg_Assist_Cost * OTHER_ASSISTS.ANY_WB_ASSIST / SLOTS,,#NA,SNB/JKT ? #NA : IVB/IVT/HSW/HSX/BDW/BDX ? OTHER_ASSISTS.ANY_WB_ASSIST : SKL/KBL/KBLR/CFL/SKX/CLX/CPX ? OTHER_ASSISTS.ANY : ASSISTS.ANY,Slots_Estimated,This metric estimates fraction of slots the CPU retired uops delivered by the Microcode_Sequencer as a result of Assists. Assists are long sequences of uops that are required in certain corner-cases for operations that cannot be handled natively by the execution pipeline. For example; when working with very small floating point values (so-called Denormals); the FP units are not set up to perform these operations natively. Instead; a sequence of instructions to perform the computation on the Denormals is injected into the pipeline. Since these microcode sequences might be dozens of uops long; Assists can be extremely deleterious to performance and they can be avoided in many cases.,> 0.1 & P,4.6,BvIO;,1,pub/v4.6,L4,;bot;,,,, +RET,,,,,Page_Faults,,,,,,,,,99 * ASSISTS.PAGE_FAULT / SLOTS,,,,,,,,,,,,,,,,,,,Slots_Estimated,This metric roughly estimates fraction of slots the CPU retired uops as a result of handing Page Faults. A Page Fault may apply on first application access to a memory page. Note operating system handling of page faults accounts for the majority of its cost.,> 0.05,4.4,,,,L5,,,,, +RET,,,,,FP_Assists,,,,,,,,,30 * ASSISTS.FP / SLOTS,,,,34 * ASSISTS.FP / SLOTS,,,,,34 * FP_ASSIST.ANY / SLOTS,,,,,,,,,,Slots_Estimated,This metric roughly estimates fraction of slots the CPU retired uops as a result of handing Floating Point (FP) Assists. FP Assist may apply when working with very small floating point values (so-called Denormals).,> 0.1,4.6,HPC,,,L5,,,ZeroOk,"Consider DAZ (Denormals Are Zero) and/or FTZ (Flush To Zero) options in your compiler; ""-ffast-math"" with -O2 in GCC for example. This option may improve performance if the denormal values are not critical in your application. Also note that the DAZ and FTZ modes are not compatible with the IEEE Standard 754.",https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/reference/cpu-metrics-reference/bad-speculation-back-end-bound-pipeline-slots/fp-assists.html +RET,,,,,AVX_Assists,,,,,,,,,63 * ASSISTS.SSE_AVX_MIX / SLOTS,,,,,,,,,,,,,,,,,,,Slots_Estimated,This metric estimates fraction of slots the CPU retired uops as a result of handing SSE to AVX* or AVX* to SSE transition Assists. ,> 0.1,4.6,HPC,,,L5,,,ZeroOk,, +RET,,,,CISC,,,,,,,,,,,,,,,,,,,,,,,,,"max( 0 , Microcode_Sequencer - Assists )",,#NA,MTL/ADL/SPR/SPR-HBM ? FRONTEND_RETIRED.MS_FLOWS : #NA,Slots,This metric estimates fraction of cycles the CPU retired uops originated from CISC (complex instruction set computer) instruction. A CISC instruction has multiple uops that are required to perform the instruction's functionality as in the case of read-modify-write as an example. Since these instructions require multiple uops they may or may not imply sub-optimal use of machine resources.,> 0.1 & P,4.4,,,,L4,,,,, +.,metrics,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,2.5,,,pub/v3,-,;bot;,,,, +Info.Botlnk.L0,Core_Bound_Likely,,,,,,,#NA,,,,,,,,,,,,,,,100 * ( 1 - Core_Bound / Ports_Utilization if Core_Bound < Ports_Utilization else 1 ) if SMT_2T_Utilization > 0.5 else 0,,,,,,,,,,Metric,Probability of Core Bound bottleneck hidden by SMT-profiling artifacts,> 0.5,4.7,Cor;SMT,1,,0,,,InTree+SMT_2T_Utilization,Tip: consider analysis with SMT disabled, +Info.Thread,IPC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / CLKS,,Metric,Instructions Per Cycle (per Logical Processor),,4.3,Ret;Summary,#Pipeline_Width + 2,pub/v3,L1,;bot;EDP;perf;VTune,,,, +Info.Thread,UopPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#Retired_Slots / INST_RETIRED.ANY,,Metric,Uops Per Instruction,> 1.05,4.5,Pipeline;Ret;Retire,2,pub/v3,L1,;EDP;perf,,,, +Info.Thread,UpTB,,,,,,,,,,,,,,,,,,,,,,,,,,,,#Retired_Slots / BR_INST_RETIRED.NEAR_TAKEN,,,,Metric,Uops per taken branch,< #Pipeline_Width * 1.5,4.8,Branches;Fed;FetchBW,,pub/5.0,i,;bot;perf,,,, +Info.Thread,CPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 / IPC,,Metric,Cycles Per Instruction (per Logical Processor),,2.7,Pipeline;Mem,,pub/v3,i,;EDP;perf;VTune,,,, +Info.Thread,CLKS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD,,Count,Per-Logical Processor actual clocks when the Logical Processor is active.,,4.2,Pipeline,,pub/v3,L1,;bot;EDP;perf;VTune,,,, +Info.Thread,SLOTS,,,,,,,TOPDOWN.SLOTS:perf_metrics if #PERF_METRICS_MSR else TOPDOWN.SLOTS_P,,,,,,,,,,TOPDOWN.SLOTS:perf_metrics if #PERF_METRICS_MSR else TOPDOWN.SLOTS,,,,,,,,,,,,,#Pipeline_Width * CORE_CLKS,,Count,Total issue-pipeline slots (per-Physical Core till ICL; per-Logical Processor ICL onward),,4.3,TmaL1,,pub/v3,L1,;bot;EDP;perf;VTune,,,, +Info.Thread,Slots_Utilization,,,,,,,#NA,,,,,,,,,,SLOTS / ( TOPDOWN.SLOTS:percore / 2 ) if #SMT_on else 1,,,,,,,,,,,,,#NA,,Metric,Fraction of Physical Core issue-slots utilized by this Logical Processor,,4.1,SMT;TmaL1,1,,i,,,,, +Info.Thread,Execute_per_Issue,,,,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / UOPS_ISSUED.ANY,,#NA,,UOPS_EXECUTED.THREAD / UOPS_ISSUED.ANY,,UOPS_DISPATCHED.THREAD / UOPS_ISSUED.ANY,,Metric,"The ratio of Executed- by Issued-Uops. Ratio > 1 suggests high rate of uop micro-fusions. Ratio < 1 suggest high rate of ""execute"" at rename stage.",,4.3,Cor;Pipeline,,,,,,,, +Info.Core,CoreIPC,,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / CORE_CLKS,,Core_Metric,Instructions Per Cycle across hyper-threads (per physical core),,4.3,Ret;SMT;TmaL1,#Pipeline_Width + 2,pub/v3,1,;EDP;perf,,,, +Info.Core,FLOPc,,,,,,,#FLOP_Count / CLKS,,,,,,,,,,,,,,,,,#FLOP_Count / CORE_CLKS,,#NA,,,,#FLOP_Count / CORE_CLKS,,Core_Metric,Floating Point Operations Per Cycle,,4.8,Ret;Flops,10,pub/v3,i,;perf,,,, +Info.Core,FP_Arith_Utilization,,,,,,,( FP_ARITH_DISPATCHED.V0 + FP_ARITH_DISPATCHED.V1 + FP_ARITH_DISPATCHED.V2 + FP_ARITH_DISPATCHED.V3 ) / ( 4 * CLKS ),,,,,,( FP_ARITH_DISPATCHED.PORT_0 + FP_ARITH_DISPATCHED.PORT_1 + FP_ARITH_DISPATCHED.PORT_5 ) / ( 2 * CORE_CLKS ),,,,,,,,,,,( #FP_Arith_Scalar + #FP_Arith_Vector ) / ( 2 * CORE_CLKS ),,,,,,#NA,,Core_Metric,Actual per-core usage of the Floating Point non-X87 execution units (regardless of precision or vector-width). Values > 1 are possible due to ([BDW+] Fused-Multiply Add (FMA) counting - common; [ADL+] use all of ADD/MUL/FMA in Scalar or 128/256-bit vectors - less common).,,4.8,Cor;Flops;HPC,2,,i,;EDP,,,, +Info.Core,ILP,,,,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / UOPS_EXECUTED.THREAD:c1,,( UOPS_EXECUTED.CORE / 2 / #Execute_Cycles ) if #SMT_on else UOPS_EXECUTED.CORE / #Execute_Cycles,,UOPS_EXECUTED.THREAD / UOPS_EXECUTED.THREAD:c1,,UOPS_DISPATCHED.THREAD / #Execute_Cycles,,Metric,Instruction-Level-Parallelism (average number of uops executed when there is execution) per thread (logical-processor),,4.7,Backend;Cor;Pipeline;PortsUtil,#Exe_Ports,pub/v3,i,;EDP;perf,,,, +Info.Core,EPC,,,,,,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / CLKS,,,,,,,,,,Metric,uops Executed per Cycle,,4.6,Power,20,,,;EDP;perf,,,, +Info.Core,CORE_CLKS,,,,,,,#NA,,,,,,,,,,CPU_CLK_UNHALTED.DISTRIBUTED if #SMT_on else CLKS,,,,,,,,,,,,,( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ) if #EBS_Mode else ( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else CLKS,,Count,Core actual clocks when any Logical Processor is active on the Physical Core,,4.1,SMT,,pub/v3,1,;bot;perf;vtune,,,, +Info.Inst_Mix,IpLoad,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_LOADS,,,,,,INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_LOADS_PS,,,,Inst_Metric,Instructions per Load (lower number means higher occurrence rate),< 3,4.6,InsType,,pub/v3.2,i,;perf,,,Tip: reduce memory accesses,#Link Opt Guide section: Minimize Register Spills +Info.Inst_Mix,IpStore,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_STORES,,,,,,INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_STORES_PS,,,,Inst_Metric,Instructions per Store (lower number means higher occurrence rate),< 8,4.6,InsType,,pub/v3.2,i,;perf,,,Tip: reduce memory accesses,#Link Opt Guide section: Minimize Register Spills +Info.Inst_Mix,IpBranch,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.ALL_BRANCHES,,,,Inst_Metric,Instructions per Branch (lower number means higher occurrence rate),< 8,3.2,Branches;Fed;InsType,,pub/v3.2,i,;perf,,,, +Info.Inst_Mix,IpCall,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.NEAR_CALL,,,,Inst_Metric,Instructions per (near) call (lower number means higher occurrence rate),< 200,4.7,Branches;Fed;PGO,,pub/v3.4,i,;perf,,,, +Info.Inst_Mix,IpTB,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.NEAR_TAKEN,,,,Inst_Metric,Instructions per taken branch,< #Pipeline_Width * 2 + 1; $issueFB,4.5,Branches;Fed;FetchBW;Frontend;PGO,,pub/v3.2,i,;EDP;perf,,,, +Info.Inst_Mix,BpTkBranch,,,,,,,,,,,,,,,,,,,,,,,,,,,,BR_INST_RETIRED.ALL_BRANCHES / BR_INST_RETIRED.NEAR_TAKEN,,,,Metric,Branch instructions per taken branch. ,,4,Branches;Fed;PGO,,pub/v3.2,i,;perf,,,Can be used to approximate PGO-likelihood for non-loopy codes., +Info.Inst_Mix,IpFLOP,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / #FLOP_Count,,,,,,,,Inst_Metric,Instructions per Floating Point (FP) Operation (lower number means higher occurrence rate),< 10,4.8,Flops;InsType,,pub/v4,i,;perf,,,Reference: Tuning Performance via Metrics with Expectations,https://doi.org/10.1109/LCA.2019.2916408 +Info.Inst_Mix,IpArith,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / ( #FP_Arith_Scalar + #FP_Arith_Vector ),,#NA,,1 / ( FP_Scalar + FP_Vector ),,,,Inst_Metric,Instructions per FP Arithmetic instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting. Approximated prior to BDW.,< 10,4.8,Flops;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_Scalar_HP,,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED2.SCALAR if #FP16 else #NA,,,,,,,,,,,,,,,,,,,,Inst_Metric,Instructions per FP Arithmetic Scalar Half-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_Scalar_SP,,,,,,,INST_RETIRED.ANY / FP_ARITH_OPS_RETIRED.SCALAR_SINGLE,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED.SCALAR_SINGLE,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic Scalar Single-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_Scalar_DP,,,,,,,INST_RETIRED.ANY / FP_ARITH_OPS_RETIRED.SCALAR_DOUBLE,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FP_ARITH_INST_RETIRED.SCALAR_DOUBLE,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic Scalar Double-Precision instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.7,Flops;FpScalar;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_AVX128,,,,,,,INST_RETIRED.ANY / ( FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.128B_PACKED_SINGLE ),,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16 ),,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE ),,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX/SSE 128-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_AVX256,,,,,,,INST_RETIRED.ANY / ( FP_ARITH_OPS_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_OPS_RETIRED.256B_PACKED_SINGLE ),,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.256BIT_PACKED_BF16 ),,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE ),,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX* 256-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, +Info.Inst_Mix,IpArith_AVX512,,,,,,,,,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) if #FP16 else INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),#NA,,,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE + FP_ARITH_INST_RETIRED2.512BIT_PACKED_BF16 ),,,INST_RETIRED.ANY / ( FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),,,,,,,,,#NA,,Inst_Metric,Instructions per FP Arithmetic AVX 512-bit instruction (lower number means higher occurrence rate). Values < 1 are possible due to intentional FMA double counting.,< 10,4.8,Flops;FpVector;InsType,,,i,,,,, +Info.Inst_Mix,VectorMixPKI,,,,,,,,,,,,,1000 * ASSISTS.SSE_AVX_MIX / INST_RETIRED.ANY,,,,,,,,,,,,,,,,,#NA,,Inst_Metric,AVX preserve/restore assists per kilo instruction,> 0.05; $issueMV,4.6,,1,,i,,,,, +Info.Inst_Mix,IpPause,,,,,,,,,,,,,Instructions / CPU_CLK_UNHALTED.PAUSE_INST,,,,Instructions / MISC_RETIRED.PAUSE_INST,,,Instructions / ROB_MISC_EVENTS.PAUSE_INST,,,,,,,,,,,,Inst_Metric,Instructions per PAUSE (lower number means higher occurrence rate),,4.7,Flops;FpVector;InsType,,,,,,,, +Info.Inst_Mix,IpSWPF,,,,,,,INST_RETIRED.ANY / MEM_INST_RETIRED.ALL_SWPF,,,,,,,,,,,,,,,INST_RETIRED.ANY / SW_PREFETCH_ACCESS.ANY,,,,,,,,,,Inst_Metric,Instructions per Software prefetch instruction (of any type: NTA/T0/T1/T2/Prefetch) (lower number means higher occurrence rate),< 100,4.9,Prefetches,1000,,i,,,,, +Info.Inst_Mix,Instructions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY,INST_RETIRED.PREC_DIST,Count,Total number of retired Instructions,,4,Summary;TmaL1,,pub/v3.2,L1,;perf,,,, +Info.Pipeline,Retire,,,,,,,,,,,,,,,,,#Retired_Slots / UOPS_RETIRED.SLOTS:c1,,,,,,,,,,,,,#Retired_Slots / UOPS_RETIRED.RETIRE_SLOTS:c1,,Metric,Average number of Uops retired in cycles where at least one uop has retired.,,4.4,Pipeline;Ret,,,,,,,, +Info.Pipeline,Retire_Stall,,,,,,,UOPS_RETIRED.STALLS / CLKS,,,,,,,,,,,,,,,,,,,,,,,,,Metric,Total percent of cycles without actually retired uops,,4.4,Pipeline;Ret,,,,,,,, +Info.Pipeline,Strings_Cycles,,,,,,,,,,,,,INST_RETIRED.REP_ITERATION / UOPS_RETIRED.SLOTS:c1,,,,,,,,,,,,,,,,,,,Metric,Estimated fraction of retirement-cycles dealing with repeat instructions,> 0.1,4.4,MicroSeq;Pipeline;Ret,,,3,;EDP;perf,,,, +Info.Pipeline,IpAssist,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / ASSISTS.ANY,,,,,INST_RETIRED.ANY / ( FP_ASSIST.ANY + OTHER_ASSISTS.ANY ),,,,,,,,,,Inst_Metric,Instructions per a microcode Assist invocation. See Assists tree node for details (lower number means higher occurrence rate),< 100000,4.6,MicroSeq;Pipeline;Ret;Retire,,pub/v4.6,,,,,, +Info.Pipeline,Execute,,,,,,,#NA,,,,,,,,,,,,,,,,,UOPS_EXECUTED.THREAD / #Execute_Cycles,,#NA,,UOPS_EXECUTED.THREAD / #Execute_Cycles,,,,Metric,Instruction-Level-Parallelism (average number of uops executed when there is execution) per physical core,,4.7,Cor;Pipeline;PortsUtil;SMT,#Exe_Ports,,i,,,,, +Info.Pipeline,Fetch_LSD,,,,,,#NA,,#NA,,,,#NA,,,,#NA,,,#NA,LSD.UOPS / LSD.CYCLES_ACTIVE,,,,,,,,,,#NA,,Metric,Average number of uops fetched from LSD per cycle,,5.02,Fed;FetchBW,,,,,,,, +Info.Pipeline,Fetch_DSB,,,,,,,,,,,,,,,,,,,,,,IDQ.DSB_UOPS / IDQ.DSB_CYCLES_ANY,,,,,,,,,,Metric,Average number of uops fetched from DSB per cycle,,4.8,Fed;FetchBW,,,,,,,, +Info.Pipeline,Fetch_MITE,,,,,,,,,,,,,,,,,IDQ.MITE_UOPS / IDQ.MITE_CYCLES_ANY,,,,,IDQ.MITE_UOPS / IDQ.MITE_CYCLES,,,,,,,,,,Metric,Average number of uops fetched from MITE per cycle,,4.8,Fed;FetchBW,,,,,,,, +Info.Pipeline,Fetch_MS,,,,,,,IDQ.MS_UOPS / IDQ.MS_UOPS:c1,,,,,,#NA,,,,,,,,,IDQ.MS_UOPS / IDQ.MS_UOPS:c1,,,,,,,,,,Metric,Average number of uops fetched from MS per cycle,,5.1,Fed;FetchLat;MicroSeq,,,,,,,, +Info.Frontend,Fetch_UpC,,,,,,,,,,,,,,,,,,,,,,UOPS_ISSUED.ANY / UOPS_ISSUED.ANY:c1,,,,,,,,,,Metric,Average number of Uops issued by front-end when it issued something,,4.3,Fed;FetchBW,6,pub/v4.5,,,,,, +Info.Frontend,LSD_Coverage,,,,,,#NA,,#NA,,,,#NA,,,,#NA,,,#NA,LSD.UOPS / #Fetched_Uops,,,,,,,,,,#NA,,Metric,Fraction of Uops delivered by the LSD (Loop Stream Detector; aka Loop Cache),,5.02,Fed;LSD,1,pub/v4,i,;perf,,,, +Info.Frontend,DSB_Coverage,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IDQ.DSB_UOPS / #Fetched_Uops,,Metric,Fraction of Uops delivered by the DSB (aka Decoded ICache; or Uop Cache),< 0.7 & #HighIPC; $issueFB,4.5,DSB;Fed;FetchBW,1,pub/v3,i,;perf;vtune,,,See section 'Decoded ICache' in Optimization Manual,http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html +Info.Frontend,Unknown_Branch_Cost,,,,,,,,,,,,,INT_MISC.UNKNOWN_BRANCH_CYCLES / INT_MISC.UNKNOWN_BRANCH_CYCLES:c1:e1,,,,,,,,,,,,,,,,,,,Metric,Average number of cycles the front-end was delayed due to an Unknown Branch detection. See Unknown_Branches node.,,4.6,Fed,,,,,,,, +Info.Frontend,DSB_Switch_Cost,,,,,,,,,,,,,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / DSB2MITE_SWITCHES.PENALTY_CYCLES:c1:e1,,,,,DSB2MITE_SWITCHES.PENALTY_CYCLES / DSB2MITE_SWITCHES.COUNT,,,,,,,,,,Metric,Average number of cycles of a switch from the DSB fetch-unit to MITE fetch unit - see DSB_Switches tree node for details.,,4.4,DSBmiss,,,,,,,, +Info.Frontend,TBpC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BR_INST_RETIRED.NEAR_TAKEN / CLKS,,Metric,Taken Branches retired Per Cycle,,5,Branches;FetchBW,,,,,,,, +Info.Botlnk.L2,DSB_Misses,,,,,,,,,,,,,,,,,,,,,,100 * ( Fetch_Latency * DSB_Switches / ##Fetch_Latency + Fetch_Bandwidth * MITE / ##Fetch_Bandwidth ),,,,,,,,,,Scaled_Slots,Total pipeline cost of DSB (uop cache) misses - subset of the Instruction_Fetch_BW Bottleneck.,> 10; $issueFB,4.5,DSBmiss;Fed,,pub/v4.3,0,;EDP;perf;VTune,,InTree,, +Info.Botlnk.L2,DSB_Bandwidth,,,,,,,,,,,,,,,,,,,,,,100 * ( Frontend_Bound * ( Fetch_Bandwidth / ##Frontend_Bound ) * ( DSB / ##Fetch_Bandwidth ) ),,,,,,,,,,Scaled_Slots,Total pipeline cost of DSB (uop cache) hits - subset of the Instruction_Fetch_BW Bottleneck.,> 10; $issueFB,4.8,DSB;Fed;FetchBW,,,0,;EDP;perf;VTune,,InTree,, +Info.Frontend,DSB_Switches_Ret,,,,,,,,,FRONTEND_RETIRED.ANY_DSB_MISS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired DSB misses,> 0.05,5,DSBmiss;Fed;FetchLat,,,3,,,,, +Info.Frontend,MS_Latency_Ret,,,,,,,,,FRONTEND_RETIRED.MS_FLOWS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired operations that invoke the Microcode Sequencer,> 0.05,5,Fed;FetchLat;MicroSeq,,,3,,,,, +Info.Frontend,Unknown_Branches_Ret,,,,,,,,,FRONTEND_RETIRED.UNKNOWN_BRANCH*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to retired branches who got branch address clears,,5,Fed;FetchLat,,,3,,,,, +Info.Frontend,ICache_Miss_Latency,,,,,,,,,ICACHE_DATA.STALLS / ICACHE_DATA.STALL_PERIODS,,,,ICACHE_DATA.STALLS / ICACHE_DATA.STALLS:c1:e1,,,,ICACHE_16B.IFDATA_STALL / ICACHE_16B.IFDATA_STALL:c1:e1,,,,,ICACHE_16B.IFDATA_STALL / ICACHE_16B.IFDATA_STALL:c1:e1 + 2,,,,,,,,,,Metric,Average Latency for L1 instruction cache misses,,4.5,Fed;FetchLat;IcMiss,,,3,,,,, +Info.Botlnk.L2,IC_Misses,,,,,,,,,,,,,,,,,,,,,,100 * ( Fetch_Latency * ICache_Misses / ##Fetch_Latency ),,,,,,,,,,Scaled_Slots,Total pipeline cost of Instruction Cache misses - subset of the Big_Code Bottleneck.,> 5; $issueFL,4.5,Fed;FetchLat;IcMiss,,,0,,,InTree,, +Info.Frontend,IpDSB_Miss_Ret,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / FRONTEND_RETIRED.ANY_DSB_MISS,,,,,,,,,,Inst_Metric,Instructions per non-speculative DSB miss (lower number means higher occurrence rate),< 50,4.3,DSBmiss;Fed,,,3,;EDP;perf,,,, +Info.Frontend,IpUnknown_Branch,,,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions / BACLEARS.ANY,,,,Metric,Instructions per speculative Unknown Branch Misprediction (BAClear) (lower number means higher occurrence rate),,4.5,Fed,,,i,EDP,,,, +Info.Frontend,L2MPKI_Code,,,,,,,,,,,,,,,,,,,,,,1000 * FRONTEND_RETIRED.L2_MISS / INST_RETIRED.ANY,,,,,,,,,,Metric,L2 cache true code cacheline misses per kilo instruction ,,4.5,IcMiss,,,i,,,,, +Info.Frontend,L2MPKI_Code_All,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.CODE_RD_MISS / INST_RETIRED.ANY,,,,,,,,,,Metric,L2 cache speculative code cacheline misses per kilo instruction ,,4.5,IcMiss,,,i,,,,, +Info.Bad_Spec,IpMispredict,,,,,,,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.ALL_BRANCHES,,,,Inst_Metric,Number of Instructions per non-speculative Branch Misprediction (JEClear) (lower number means higher occurrence rate),< 200,4.4,Bad;BadSpec;BrMispredicts,,pub/v3.4,i,;perf,,,, +Info.Bad_Spec,IpMisp_Cond_Ntaken,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_NTAKEN,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for conditional non-taken branches (lower number means higher occurrence rate).,< 200,4.5,Bad;BrMispredicts,,,,,,,, +Info.Bad_Spec,IpMisp_Cond_Taken,,,,,,,#NA,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for conditional taken branches (lower number means higher occurrence rate).,< 200,4.5,Bad;BrMispredicts,,,,,,,, +Info.Bad_Spec,IpMisp_Cond_Taken_Bwd,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN_BWD,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions per retired Mispredicts for conditional backward-taken branches (lower number means higher occurrence rate).,,5.1,Bad;BrMispredicts,,,,,,,, +Info.Bad_Spec,IpMisp_Cond_Taken_Fwd,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.COND_TAKEN_FWD,,,,,,,,,,,,,,,,,,,,,,,,,,Instructions per retired Mispredicts for conditional forward-taken branches (lower number means higher occurrence rate).,,5.1,Bad;BrMispredicts,,,,,,,, +Info.Bad_Spec,IpMisp_Ret,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.RET,,,,,,,,,,,,,,,Inst_Metric,Instructions per retired Mispredicts for return branches (lower number means higher occurrence rate).,< 500,4.5,Bad;BrMispredicts,,,,,,,, +Info.Bad_Spec,IpMisp_Indirect,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_MISP_RETIRED.INDIRECT,,,,,,,,,,,Instructions / ( #Retire_Fraction * BR_MISP_EXEC.INDIRECT ),,,,Inst_Metric,Instructions per retired Mispredicts for indirect CALL or JMP branches (lower number means higher occurrence rate).,< 1000,4.6,Bad;BrMispredicts,,,i,,,,, +Info.Bad_Spec,Branch_Misprediction_Cost,,,,,,,,,,,,,,,,,,,,,,Mispredictions * SLOTS / #Pipeline_Width / BR_MISP_RETIRED.ALL_BRANCHES / 100,,,,,,,,#NA,,Core_Metric,Branch Misprediction Cost: Cycles representing fraction of TMA slots wasted per non-speculative branch misprediction (retired JEClear),; $issueBM,5.02,Bad;BrMispredicts,50,pub/v3.4,i,;bot;perf,,,, +Info.Bad_Spec,Spec_Clears_Ratio,,,,,,,,,,,,,,,,,,,,,,INT_MISC.CLEARS_COUNT / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT ),,,,,,,,,,Metric,Speculative to Retired ratio of all clears (covering Mispredicts and nukes),,4.6,BrMispredicts,,,,,,,, +Info.Branches,Cond_NT,,,,,,,,,,,,,,,,,BR_INST_RETIRED.COND_NTAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,BR_INST_RETIRED.NOT_TAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are non-taken conditionals,,4.3,Bad;Branches;CodeGen;PGO,1,,i,,,,, +Info.Branches,Cond_TK,,,,,,,#NA,,,,,,,,,,BR_INST_RETIRED.COND_TAKEN / BR_INST_RETIRED.ALL_BRANCHES,,,,,( BR_INST_RETIRED.CONDITIONAL_PS - BR_INST_RETIRED.NOT_TAKEN ) / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are taken conditionals,,4.3,Bad;Branches;CodeGen;PGO,1,,i,,,,, +Info.Branches,Cond_TK_Bwd,,,,,,,BR_INST_RETIRED.COND_TAKEN_BWD / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,,,,,,,,,,,,,,,,Fraction,Fraction of branches that are forward taken conditionals,> 0.3,5,Bad;Branches;CodeGen;PGO,1,,,,,,, +Info.Branches,Cond_TK_Fwd,,,,,,,BR_INST_RETIRED.COND_TAKEN_FWD / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,,,,,,,,,,,,,,,,Fraction,Fraction of branches that are forward taken conditionals,> 0.2,5.02,Bad;Branches;CodeGen;PGO,1,,,,,,, +Info.Branches,CallRet,,,,,,,,,,,,,,,,,,,,,,( BR_INST_RETIRED.NEAR_CALL + BR_INST_RETIRED.NEAR_RETURN ) / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are CALL or RET,,4.3,Bad;Branches,1,,i,,,,, +Info.Branches,Jump,,,,,,,,,,,,,,,,,,,,,,#Br_DoI_Jumps / BR_INST_RETIRED.ALL_BRANCHES,,,,,,,,,,Fraction,Fraction of branches that are unconditional (direct or indirect) jumps,,5.1,Bad;Branches,1,,i,,,,, +Info.Branches,Other_Branches,,,,,,,1 - ( Cond_NT + Cond_TK_Bwd + Cond_TK_Fwd + CallRet + Jump ),,,,,,,,,,1 - ( Cond_NT + Cond_TK + CallRet + Jump ),,,,,,,,,,,,,,,Fraction,Fraction of branches of other types (not individually covered by other metrics in Info.Branches group),,4.3,Bad;Branches,1,,i,,,,, +Info.Memory,Load_Miss_Real_Latency,,,,,,,L1D_PENDING.LOAD / L1D_MISS.LOAD,,,,,,L1D_PEND_MISS.PENDING / MEM_LOAD_COMPLETED.L1_MISS_ANY,,,,,,,,,L1D_PEND_MISS.PENDING / ( MEM_LOAD_RETIRED.L1_MISS_PS + MEM_LOAD_RETIRED.FB_HIT_PS ),,,,,,L1D_PEND_MISS.PENDING / ( MEM_LOAD_UOPS_RETIRED.L1_MISS + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS ),,#NA,,Clocks_Latency,Actual Average Latency for L1 data-cache miss demand load operations (in core cycles),,4.4,Mem;MemoryBound;MemoryLat,1000,pub/v3.1,3,;bot;EDP;perf;VTune,,,, +Info.Memory,MLP,,,,,,,L1D_PENDING.LOAD / L1D_PENDING.LOAD_CYCLES,,,,,,,,,,,,,,,,,,,,,L1D_PEND_MISS.PENDING / L1D_PEND_MISS.PENDING_CYCLES,,#NA,,Metric,Memory-Level-Parallelism (average number of L1 miss demand load when there is at least one such miss. Per-Logical Processor),,3.4,Mem;MemoryBound;MemoryBW,10,pub/v3.3,i,;EDP;perf,,,, +Info.Memory,L1DL0_MPKI,,,,,,,1000 * ( MEM_LOAD_RETIRED.L1_MISS + MEM_LOAD_RETIRED.L1_HIT_L1 ) / INST_RETIRED.ANY,,,,,,,,,,,,,,,,,,,,,,,#NA,,Metric,L0 cache true misses per kilo instruction for retired demand loads,,5.1,CacheHits;Mem,,,,,,,, +Info.Memory,L1MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L1_MISS / INST_RETIRED.ANY,,,,,,1000 * MEM_LOAD_UOPS_RETIRED.L1_MISS / INST_RETIRED.ANY,,#NA,,Metric,L1 cache true misses per kilo instruction for retired demand loads,,3.3,CacheHits;Mem,,pub/v3.3,i,;perf,,,, +Info.Memory,L2MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L2_MISS / INST_RETIRED.ANY,,,,,,1000 * MEM_LOAD_UOPS_RETIRED.L2_MISS / INST_RETIRED.ANY,,#NA,,Metric,L2 cache true misses per kilo instruction for retired demand loads,,3.3,Mem;Backend;CacheHits,,pub/v3.3,i,;perf,,,, +Info.Memory,L3MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.L3_MISS / INST_RETIRED.ANY,,,,1000 * MEM_LOAD_UOPS_RETIRED.L3_MISS_PS / INST_RETIRED.ANY,,1000 * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS / INST_RETIRED.ANY,,#NA,,Metric,L3 cache true misses per kilo instruction for retired demand loads,,3.3,Mem;,,pub/v3.3,i,;perf,,,, +Info.Memory,FB_HPKI,,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_RETIRED.FB_HIT / INST_RETIRED.ANY,,,,,,,,#NA,,Metric,Fill Buffer (FB) hits per kilo instructions for retired demand loads (L1D misses that merge into ongoing miss-handling entries),,4.4,CacheHits;Mem,,,i,,,,, +Info.Memory,L1MPKI_Load,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.ALL_DEMAND_DATA_RD / INST_RETIRED.ANY,,,,,,,,#NA,,Metric,L1 cache true misses per kilo instruction for all demand loads (including speculative),,4.1,CacheHits;Mem,,,i,,,,, +Info.Memory,L2MPKI_All,,,,,,,,,,,,,,,1000 * L2_RQSTS.MISS / INST_RETIRED.ANY,,1000 * ( ( OFFCORE_REQUESTS.ALL_DATA_RD - OFFCORE_REQUESTS.DEMAND_DATA_RD ) + L2_RQSTS.ALL_DEMAND_MISS + L2_RQSTS.SWPF_MISS ) / Instructions,,,,,,,1000 * L2_RQSTS.MISS / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache ([RKL+] true) misses per kilo instruction for all request types (including speculative),,4.4,CacheHits;Mem;Offcore,,pub/v3.5,i,;perf,,,, +Info.Memory,L2MPKI_Load,,,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.DEMAND_DATA_RD_MISS / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache ([RKL+] true) misses per kilo instruction for all demand loads (including speculative),,4.4,CacheHits;Mem,,,i,;,,,, +Info.Memory,L2MPKI_RFO,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.RFO_MISS / INST_RETIRED.ANY,,,,,,,,,,,1000 * OFFCORE_REQUESTS.DEMAND_RFO / INST_RETIRED.ANY,,#NA,,Metric,Offcore requests (L2 cache miss) per kilo instruction for demand RFOs,,4.8,CacheMisses;Offcore,,,i,,,,, +Info.Memory,L2HPKI_All,,,,,,,,,,,,,,,1000 * ( L2_RQSTS.REFERENCES - L2_RQSTS.MISS ) / INST_RETIRED.ANY,,#NA,,,,,,,1000 * ( L2_RQSTS.REFERENCES - L2_RQSTS.MISS ) / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache hits per kilo instruction for all request types (including speculative),,4.1,CacheHits;Mem,,pub/v3.5,i,;perf,,,, +Info.Memory,L2HPKI_Load,,,,,,,,,,,,,,,,,,,,,,,,1000 * L2_RQSTS.DEMAND_DATA_RD_HIT / INST_RETIRED.ANY,,,,,,#NA,,Metric,L2 cache hits per kilo instruction for all demand loads (including speculative),,3.5,CacheHits;Mem,,,i,;,,,, +Info.Memory,L1DL0_Cache_Fill_BW,,,,,,,64 * L1D.L0_REPLACEMENT / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,,,,#NA,,Metric,Average per-thread data fill bandwidth to the Level 0 within L1D cache [GB / sec],,5,Mem;MemoryBW,,,,,,,, +Info.Memory,L1D_Cache_Fill_BW,,,,,,,64 * L1D.L1_REPLACEMENT / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,,64 * L1D.REPLACEMENT / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L1 data cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, +Info.Memory,L2_Cache_Fill_BW,,,,,,,,,,,,,,,,,,,,,,,,,,,,64 * L2_LINES_IN.ALL / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L2 cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, +Info.Memory,L3_Cache_Fill_BW,,,,,,,,,,,,,,,,,,,,,,,,,,,,64 * LONGEST_LAT_CACHE.MISS / #OneBillion / Time,,#NA,,Metric,Average per-thread data fill bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW,,pub/v4.6,i,;perf,,,, +Info.Memory,L3_Cache_Access_BW,,,,,,,,,,,,,,,,,,,,,,64 * OFFCORE_REQUESTS.ALL_REQUESTS / #OneBillion / Time,,,,,,,,#NA,,Metric,Average per-thread data access bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW;Offcore,,pub/v4.6,i,;perf,,,, +Info.Memory.TLB,Page_Walks_Utilization,,,,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 4 * CLKS ),,,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 4 * CORE_CLKS ),,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING ) / ( 2 * CORE_CLKS ),,,,,( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING + EPT.WALK_PENDING ) / ( 2 * CORE_CLKS ),( ITLB_MISSES.WALK_DURATION + DTLB_LOAD_MISSES.WALK_DURATION + DTLB_STORE_MISSES.WALK_DURATION + 7 * ( DTLB_STORE_MISSES.WALK_COMPLETED + DTLB_LOAD_MISSES.WALK_COMPLETED + ITLB_MISSES.WALK_COMPLETED ) ) / ( 2 * CORE_CLKS ),( ITLB_MISSES.WALK_DURATION:c1 + DTLB_LOAD_MISSES.WALK_DURATION:c1 + DTLB_STORE_MISSES.WALK_DURATION:c1 + 7 * ( DTLB_STORE_MISSES.WALK_COMPLETED + DTLB_LOAD_MISSES.WALK_COMPLETED + ITLB_MISSES.WALK_COMPLETED ) ) / CORE_CLKS,,,,( ITLB_MISSES.WALK_DURATION + DTLB_LOAD_MISSES.WALK_DURATION + DTLB_STORE_MISSES.WALK_DURATION ) / CORE_CLKS,,#NA,,Core_Metric,Utilization of the core's Page Walker(s) serving STLB misses triggered by instruction/Load/Store accesses,> 0.5,4.3,Mem;MemoryTLB,1,pub/v3.2,i,;perf,,,, +Info.Memory.TLB,Code_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * ITLB_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) code speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Fed;MemoryTLB,,,,,,,, +Info.Memory.TLB,Load_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * DTLB_LOAD_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) data load speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Mem;MemoryTLB,,,,,,,, +Info.Memory.TLB,Store_STLB_MPKI,,,,,,,,,,,,,,,,,,,,,,1000 * DTLB_STORE_MISSES.WALK_COMPLETED / INST_RETIRED.ANY,,,,,,,,,,Metric,STLB (2nd level TLB) data store speculative misses per kilo instruction (misses of any page-size that complete the page walk),,4.5,Mem;MemoryTLB,,,,,,,, +Info.Memory.TLB,Load_STLB_Miss_Ret,,,,,,,,,MEM_INST_RETIRED.STLB_MISS_LOADS*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to STLB misses by demand loads,> 0.05,5,Mem;MemoryTLB,,,3,,,,, +Info.Memory.TLB,Store_STLB_Miss_Ret,,,,,,,,,MEM_INST_RETIRED.STLB_MISS_STORES*$PEBS / CLKS,,,,,,,,,,,,,,,,,,,,,,,Clocks_Retired,This metric represents fraction of cycles the CPU retirement was stalled likely due to STLB misses by demand stores,> 0.05,5,Mem;MemoryTLB,,,3,,,,, +Info.Memory.Core,L1D_Cache_Fill_BW_2T,,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L1D_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L1 data cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, +Info.Memory.Core,L2_Cache_Fill_BW_2T,,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L2_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L2 cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, +Info.Memory.Core,L3_Cache_Fill_BW_2T,,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,L3_Cache_Fill_BW,,#NA,,Core_Metric,Average per-core data fill bandwidth to the L3 cache [GB / sec],,4.6,Mem;MemoryBW,,,i,,,,, +Info.Memory.Core,L3_Cache_Access_BW_2T,,,,,,,#NA,,,,,,,,,,,,,,,L3_Cache_Access_BW,,,,,,,,#NA,,Core_Metric,Average per-core data access bandwidth to the L3 cache [GB / sec],,4.7,Mem;MemoryBW;Offcore,,,i,,,,, +Info.Memory.Core,L2_Evictions_Silent_PKI,,,,,,,,,,,,,,,,,,,,,1000 * L2_LINES_OUT.SILENT / Instructions,,,,,,,,,#NA,,Core_Metric,Rate of silent evictions from the L2 cache per Kilo instruction where the evicted lines are dropped (no writeback to L3 or memory),,4.4,L2Evicts;Mem;Server,,pub/v3.6,i,;perf,,,, +Info.Memory.Core,L2_Evictions_NonSilent_PKI,,,,,,,,,,,,,,,,,,,,,1000 * L2_LINES_OUT.NON_SILENT / Instructions,,,,,,,,,#NA,,Core_Metric,Rate of non silent evictions from the L2 cache per Kilo instruction,,4.4,L2Evicts;Mem;Server,,pub/v3.6,i,;perf,,,, +Info.Memory.Prefetches,Useless_HWPF,,,,,,,,,,,,,,,,,L2_LINES_OUT.USELESS_HWPF / ( L2_LINES_OUT.SILENT + L2_LINES_OUT.NON_SILENT ),,,,,,,,,,,,,#NA,,Metric,Rate of L2 HW prefetched lines that were not used by demand accesses,> 0.15,5,Prefetches,1,,,,,,, +Info.Memory.Latency,Load_L2_Miss_Latency,,,,,,,,,,,,,,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS.DEMAND_DATA_RD,,,,Clocks_Latency,Average Latency for L2 cache miss demand Loads,,4.5,LockCont;Memory_Lat;Offcore,1000,,,;EDP,,,, +Info.Memory.Latency,Load_L3_Miss_Latency,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.L3_MISS_DEMAND_DATA_RD / OFFCORE_REQUESTS.L3_MISS_DEMAND_DATA_RD,,,,,,,,,,,,,,,,,,,Clocks_Latency,Average Latency for L3 cache miss demand Loads,,4.5,Memory_Lat;Offcore,1000,,,;EDP,,,, +Info.Memory.Latency,Load_L2_MLP,,,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD:c1,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_DATA_RD,,,,Metric,Average Parallel L2 cache miss demand Loads,,4.5,Memory_BW;Offcore,100,,,,,,, +Info.Memory.Latency,Data_L2_MLP,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD,,,,,,,,,,,,,,,OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD / OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD,,,,Metric,Average Parallel L2 cache miss data reads,,4.6,Memory_BW;Offcore,100,,,,,,, +Info.Memory.Mix,Offcore_Read_Any_PKI,,,,,,,,,,,,1000 * OCR.READS_TO_CORE.ANY_RESPONSE / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,Off-core accesses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.6,CacheHits;Offcore;Server,,,,,,,, +Info.Memory.Mix,Offcore_Read_L3M_PKI,,,,,,,,,,,,1000 * OCR.READS_TO_CORE.L3_MISS / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,L3 cache misses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.6,Offcore;Server,,,,,,,, +Info.Memory.Mix,Offcore_Read_HBM_PKI,,,,,,,,,,#NA,#NA if #Memory > 2 else 1000 * OCR.DEMAND_DATA_RD.PMM / Instructions,,,,,,,,,,,,,,,,,,,#NA,,Metric,High-Bandwidth Memory (HBM) accesses per kilo instruction for reads-to-core requests (speculative; including in-core HW prefetches),,4.7,Offcore;Server,,,,,,,, +Info.Memory.Mix,Offcore_MWrite_Any_PKI,,,,,,,,,,,,1000 * OCR.MODIFIED_WRITE.ANY_RESPONSE / Instructions,,,,,,,,,,,,,,,,,,#NA,,Metric,Off-core accesses per kilo instruction for modified write requests,,4.6,Offcore;Server,,,,,,,, +Info.Memory.Mix,UC_Load_PKI,,,,,,,,,,,,,,,,,,,,,,1000 * MEM_LOAD_MISC_RETIRED.UC / INST_RETIRED.ANY,,,,,,,,,,Metric,Un-cacheable retired load per kilo instruction,,4.6,Mem,,,,;EDP;perf,,,, +Info.Memory.Mix,Bus_Lock_PKI,,,,,,,,,,,,,,,,,1000 * SQ_MISC.BUS_LOCK / INST_RETIRED.ANY,,,,,,,,,,,,,,,Metric,"""Bus lock"" per kilo instruction",,4.6,Mem,,,,;EDP;perf,,,, +Info.System,CPU_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPUs_Utilized / Num_CPUs,,Metric,Average CPU Utilization (percentage),,4.8,HPC;Summary,1,pub/v3,i,perf,,,, +Info.System,CPUs_Utilized,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.REF_TSC / TSC,,Metric,Average number of utilized CPUs,,4.8,Summary,300,pub/v4.6,,;bot;EDP;perf,,,, +Info.System,Core_Frequency,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Turbo_Utilization * TSC / #OneBillion / Time,,System_Metric,Measured Average Core Frequency for unhalted processors [GHz],,4.6,Summary;Power,,pub/v3.4,i,;bot;EDP;perf;VTune,,,, +Info.System,GFLOPs,,,,,,,,,,,,,,,,,,,,,,,,( #FLOP_Count / #OneBillion ) / Time,,#NA,,,,( #FLOP_Count / #OneBillion ) / Time,,Metric,"Giga Floating Point Operations Per Second. Aggregate across all supported options of: FP precisions, scalar and vector instructions, vector-width",,4.8,Cor;Flops;HPC,200,pub/v3,i,;EDP;perf,,,, +Info.System,Turbo_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CLKS / CPU_CLK_UNHALTED.REF_TSC,,Core_Metric,Average Frequency Utilization relative nominal frequency,,3,Power,10,pub/v3,i,;bot;EDP;perf;VTune,,,, +Info.System ,SMT_2T_Utilization,,,,,,,#NA,,,,,,,,,,1 - CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_DISTRIBUTED if #SMT_on else 0,,,,,,,,,,,,,1 - CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / ( CPU_CLK_UNHALTED.REF_XCLK_ANY / 2 ) if #SMT_on else 0,,Core_Metric,Fraction of cycles where both hardware Logical Processors were active,,4.1,SMT,1,pub/v3,i,;EDP,,,, +Info.System,Kernel_Utilization,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P:SUP / CPU_CLK_UNHALTED.THREAD,,Metric,Fraction of cycles spent in the Operating System (OS) Kernel mode,> 0.05,4.2,OS,1,pub/v3,i,;perf,,,, +Info.System,Kernel_CPI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P:SUP / INST_RETIRED.ANY_P:SUP,,Metric,Cycles Per Instruction for the Operating System (OS) Kernel mode,,4.3,OS,,pub/v4.3,i,;perf,,,, +Info.System,C0_Wait,,,,,,,,,,,,,CPU_CLK_UNHALTED.C0_WAIT / CLKS,,,,,,,,,,,,,,,,,,,Metric,"Fraction of cycles the processor is waiting yet unhalted; covering legacy PAUSE instruction, as well as C0.1 / C0.2 power-performance optimized states",> 0.05,4.6,C0Wait,1,,i,;EDP;perf,,ZeroOk,Sample code of TPAUSE: https://github.com/torvalds/linux/blob/master/arch/x86/lib/delay.c#L105,"If running on Linux, please check the power control interface: https://github.com/torvalds/linux/blob/master/arch/x86/kernel/cpu/umwait.c and https://github.com/torvalds/linux/blob/master/Documentation/ABI/testing/sysfs-devices-system-cpu#L587" +Info.System,DRAM_BW_Use,,,,,,,,( 64 * ( UNC_M_CAS_COUNT_SCH0.RD + UNC_M_CAS_COUNT_SCH1.RD + UNC_M_CAS_COUNT_SCH0.WR + UNC_M_CAS_COUNT_SCH1.WR ) / #OneBillion ) / Time,32 * UNC_M_TOTAL_DATA / #OneBillion / Time,,,,,,,,,,,,,,,,,,,,( 64 * ( UNC_M_CAS_COUNT.RD + UNC_M_CAS_COUNT.WR ) / #OneBillion ) / Time,64 * ( UNC_ARB_TRK_REQUESTS.ALL + UNC_ARB_COH_TRK_REQUESTS.ALL ) / #OneMillion / Time / 1000,,GB/sec,Average external Memory Bandwidth Use for reads and writes [GB / sec],; $issueBW,5.2,HPC;MemOffcore;MemoryBW;SoC,200,pub/v3,i,;perf,,,, +Info.Memory.SoC,R2C_Offcore_BW,,,,,,,,,,,,64 * OCR.READS_TO_CORE.ANY_RESPONSE / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average Off-core access BW for Reads-to-Core (R2C). R2C account for demand or prefetch load/RFO/code access that fill data into the Core caches.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, +Info.Memory.SoC,R2C_L3M_BW,,,,,,,,,,,,64 * OCR.READS_TO_CORE.L3_MISS / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average L3-cache miss BW for Reads-to-Core (R2C). This covering going to DRAM or other memory off-chip memory tears. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, +Info.Memory.SoC,R2C_DRAM_BW,,,,,,,,,,,,64 * OCR.READS_TO_CORE.DRAM / 1e9 / Time,,,,,,,,,,,,,,,,,,,,GB/sec,Average DRAM BW for Reads-to-Core (R2C) covering for memory attached to local- and remote-socket. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, +Info.Memory.SoC,R2C_HBM_BW,,,,,,,,,,#NA,#NA if #Memory > 2 else 64 * OCR.DEMAND_DATA_RD.PMM / 1e9 / Time,,,,,,,,,,,,,,,,,,,,,GB/sec,Average HBM BW for Reads-to-Core. See R2C_Offcore_BW.,,5.1,HPC;Mem;MemoryBW;Server;Offcore,,,,;EDP;perf,,,, +Info.System,MEM_Read_Latency,,,,,,,,,#NA,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),,,( UNC_ARB_TRK_OCCUPANCY.RD + UNC_ARB_DAT_OCCUPANCY.RD ) / UNC_ARB_TRK_REQUESTS.RD,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),#NA,,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_INSERTS.IA_MISS_DRD ) / ( Socket_CLKS / Time ),#OneBillion * ( UNC_ARB_TRK_OCCUPANCY.DATA_READ / UNC_ARB_TRK_REQUESTS.DATA_READ ) / ( Socket_CLKS / Time ),,,#OneBillion * ( UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182 / UNC_C_TOR_INSERTS.MISS_OPCODE:opc=0x182 ) / ( Socket_CLKS / Time ),,,,"#OneBillion * ( ""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182"" / ""UNC_C_TOR_INSERTS.MISS_OPCODE/Match=0x182"" ) / ( Socket_CLKS / Time )",#NA,,NanoSeconds,Average latency of data read request to external memory (in nanoseconds). Accounts for demand loads and L1/L2 prefetches. ([RKL+]memory-controller only),,4.5,Mem;MemoryLat;SoC,1000,pub/v3.4,i,;perf,,,, +Info.System,MEM_Parallel_Reads,,,,,,,#NA,,,,,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,,,UNC_ARB_DAT_OCCUPANCY.RD / UNC_ARB_DAT_OCCUPANCY.RD:c1,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,#NA,,,,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD / UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD:c1,UNC_ARB_TRK_OCCUPANCY.DATA_READ / UNC_ARB_TRK_OCCUPANCY.DATA_READ:c1,,,UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182 / UNC_C_TOR_OCCUPANCY.MISS_OPCODE:opc=0x182:c1,,,,"""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182"" / ""UNC_C_TOR_OCCUPANCY.MISS_OPCODE/Match=0x182:c1""",#NA,,System_Metric,Average number of parallel data read requests to external memory. Accounts for demand loads and L1/L2 prefetches,,4.5,Mem;MemoryBW;SoC,100,pub/v3.4,i,;perf,,,, +Info.System,MEM_PMM_Read_Latency,,,,,,,,,,,#NA,,,,,( #OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD_PMM / UNC_CHA_TOR_INSERTS.IA_MISS_DRD_PMM ) / UNC_CHA_CLOCKTICKS:one_unit ) if #PMM_App_Direct else #NA,,,( #OneBillion * ( UNC_M_PMM_RPQ_OCCUPANCY.ALL / UNC_M_PMM_RPQ_INSERTS ) / UNC_M_CLOCKTICKS:one_unit ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,NanoSeconds,Average latency of data read request to external 3D X-Point memory [in nanoseconds]. Accounts for demand loads and L1/L2 data-read prefetches,,4.6,MemOffcore;MemoryLat;SoC;Server,,pub/v3.5,i,;perf,,,, +Info.System,MEM_DRAM_Read_Latency,,,,,,,,,,,,,,,,#OneBillion * ( UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD_DDR / UNC_CHA_TOR_INSERTS.IA_MISS_DRD_DDR ) / UNC_CHA_CLOCKTICKS:one_unit,,,,,#OneBillion * ( UNC_M_RPQ_OCCUPANCY / UNC_M_RPQ_INSERTS ) / UNC_M_CLOCKTICKS:one_unit,,,,,,,,,#NA,,NanoSeconds,Average latency of data read request to external DRAM memory [in nanoseconds]. Accounts for demand loads and L1/L2 data-read prefetches,,4.6,MemOffcore;MemoryLat;SoC;Server,,,i,;,,,, +Info.System,CXL_Mem_Read_BW,,,,,,,,( ( 64 * UNC_CXLCM_RxC_PACK_BUF_INSERTS.MEM_DATA / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,( ( 64 * UNC_M_PMM_RPQ_INSERTS / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,GB/sec,Average 3DXP Memory Bandwidth Use for reads [GB / sec],,4.6,MemOffcore;MemoryBW;SoC;Server,,pub/v3.5,i,;perf,,,, +Info.System,CXL_Mem_Write_BW,,,,,,,,( ( 64 * UNC_CXLDP_TxC_AGF_INSERTS.M2S_DATA / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,( ( 64 * UNC_M_PMM_WPQ_INSERTS / #OneBillion ) / Time ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,GB/sec,Average 3DXP Memory Bandwidth Use for Writes [GB / sec],,4.6,MemOffcore;MemoryBW;SoC;Server,,pub/v3.5,i,;perf,,,, +Info.System,IO_Read_BW,,,,,,,,,,,,,,,,UNC_CHA_TOR_INSERTS.IO_PCIRDCUR * 64 / #OneBillion / Time,,,,,( UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART0 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART1 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART2 + UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART3 ) * 4 / #OneBillion / Time,,,,,,,,,,,GB/sec,Average IO (network or disk) Bandwidth Use for Reads [GB / sec]. Bandwidth of IO reads that are initiated by end device controllers that are requesting memory from the CPU,,4.6,IoBW;MemOffcore;SoC;Server,,pub/v4,i,;perf,,,, +Info.System,IO_Write_BW,,,,,,,,,,,,( UNC_CHA_TOR_INSERTS.IO_ITOM + UNC_CHA_TOR_INSERTS.IO_ITOMCACHENEAR ) * 64 / #OneBillion / Time,,,,( UNC_CHA_TOR_INSERTS.IO_HIT_ITOM + UNC_CHA_TOR_INSERTS.IO_MISS_ITOM + UNC_CHA_TOR_INSERTS.IO_HIT_ITOMCACHENEAR + UNC_CHA_TOR_INSERTS.IO_MISS_ITOMCACHENEAR ) * 64 / #OneBillion / Time,,,,,( UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART0 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART1 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART2 + UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART3 ) * 4 / #OneBillion / Time,,,,,,,,,,,GB/sec,Average IO (network or disk) Bandwidth Use for Writes [GB / sec]. Bandwidth of IO writes that are initiated by end device controllers that are writing memory to the CPU,,4.6,IoBW;MemOffcore;SoC;Server,,pub/v4,i,;perf,,,, +Info.System,UPI_Data_Transmit_BW,,,,,,,,,,,,UNC_UPI_TxL_FLITS.ALL_DATA * 64 / 9 / 1000000,,,,,,,,,,,,,,,,,,,,MB/sec,Cross-socket Ultra Path Interconnect (UPI) data transmit bandwidth for data only [MB / sec],,4.5,SoC;Server,,,,;EDP,,,, +Info.System,Power,,,,,,,,,,,,,,,,,,,,,,,,,( FREERUN_PKG_ENERGY_STATUS * #Energy_Unit + 15.6 * FREERUN_DRAM_ENERGY_STATUS ) / ( #DurationTimeInSeconds * #OneMillion ),UNC_PKG_ENERGY_STATUS * #Energy_Unit / ( Time * #OneMillion ),( FREERUN_PKG_ENERGY_STATUS + FREERUN_DRAM_ENERGY_STATUS ) * #Energy_Unit / ( #DurationTimeInSeconds * #OneMillion ),UNC_PKG_ENERGY_STATUS * #Energy_Unit / ( Time * #OneMillion ),,#NA,,System_Metric,Total package Power in Watts,,2.9,Power;SoC,200,pub/v3.2,i,;,,,, +Info.System,Time,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#DurationTimeInSeconds,,Seconds,Run duration time in seconds,< 1,4,Summary,,pub/v3,i,;bot;EDP;perf;VTune,,,, +Info.System,MUX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,CPU_CLK_UNHALTED.THREAD_P / CPU_CLK_UNHALTED.THREAD,,Clocks,PerfMon Event Multiplexing accuracy indicator,( > 1.1 | < 0.9 ),3.1,Summary,,pub/v3,i,;,,,, +Info.System,Socket_CLKS,,,,,,,,,,,,,,,,,,,,,UNC_CHA_CLOCKTICKS:one_unit,,,,,,,,UNC_C_CLOCKTICKS:one_unit,UNC_CLOCK.SOCKET,,Count,Socket actual clocks when any core is active on that socket,,3.4,SoC,,pub/v3,i,;perf,,,, +Info.System,IpFarBranch,,,,,,,,,,,,,,,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.FAR_BRANCH:USER,,,,,,,,INST_RETIRED.ANY / BR_INST_RETIRED.FAR_BRANCH_PS:USER,,Inst_Metric,"Instructions per Far Branch ( Far Branches apply upon transition from application to operating system, handling interrupts, exceptions) [lower number means higher occurrence rate]",< 1000000,4.3,Branches;OS,,pub/v3.6,i,;perf,,,, +.,auxiliary,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-,,2.5,,,pub/v3,-,;bot;,,,, +Aux,#Backend_Bound_Cycles,,,,,,,,,,,,,#NA,,,,CYCLE_ACTIVITY.STALLS_TOTAL + #Few_Uops_Executed_Threshold + EXE_ACTIVITY.BOUND_ON_STORES,,,,,CYCLE_ACTIVITY.STALLS_TOTAL + #Few_Uops_Executed_Threshold + EXE_ACTIVITY.BOUND_ON_STORES,,( CYCLE_ACTIVITY.STALLS_TOTAL + UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + ( UOPS_EXECUTED.CORE:c1 - #Few_Uops_Executed_Threshold ) / 2 - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ) if #SMT_on else ( #STALLS_TOTAL + UOPS_EXECUTED.CORE:c1 - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,( #STALLS_TOTAL + UOPS_DISPATCHED.THREAD:c1 - #Few_Uops_Executed_Threshold - #Frontend_RS_Empty_Cycles + RESOURCE_STALLS.SB ),,Count,,,4.4,,,pub,2,;bot;,,,, +Aux,#Br_DoI_Jumps,,,,,,,BR_INST_RETIRED.NEAR_TAKEN - BR_INST_RETIRED.COND_TAKEN_BWD - BR_INST_RETIRED.COND_TAKEN_FWD - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,,,,,,BR_INST_RETIRED.NEAR_TAKEN - BR_INST_RETIRED.COND_TAKEN - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,BR_INST_RETIRED.NEAR_TAKEN - ( BR_INST_RETIRED.COND_PS - BR_INST_RETIRED.NOT_TAKEN ) - 2 * BR_INST_RETIRED.NEAR_CALL,,,,,,,,,,Count,,,5.02,Branches,,,0,,,,, +Aux,#Branching_Retired,,,,,,,,,,,,,,,,,,,,,,( BR_INST_RETIRED.ALL_BRANCHES + 2 * BR_INST_RETIRED.NEAR_CALL + INST_RETIRED.NOP ) / SLOTS,,,,,,,,#NA,,Slots,,,4.8,BvBO;Ret,,pub/5.0,0,;bot;,,,, +Aux,#Serialize_Core,,,,,,,,,,,,,Core_Bound * ( Serializing_Operation + RS.EMPTY_RESOURCE / CLKS * Ports_Utilized_0 ) / ##Core_Bound,,,,,,,,,Core_Bound * ( Serializing_Operation + Core_Bound * RS_EVENTS.EMPTY_CYCLES / CLKS * Ports_Utilized_0 ) / ##Core_Bound,,,,,,,,,,Fraction,,,4.9,,,pub/5.0,0,;bot;,,,, +Aux,#Umisp,,,,,,,,,,,,,,,,,,,,,,10 * Microcode_Sequencer * Other_Mispredicts / Branch_Mispredicts,,,,,,,,,,Fraction,,,4.7,MS,,pub/v4.6,0,;bot;,,,, +Aux,#Assist,,,,,,,"( Microcode_Sequencer / ( Microcode_Sequencer + max( 0 , Heavy_Operations - Microcode_Sequencer ) ) ) * ( #Avg_Assist_Cost * ASSISTS.ANY / SLOTS / Microcode_Sequencer )",,,,,,,,,,,,,,,( Microcode_Sequencer / ##Heavy_Operations ) * ( Assists / Microcode_Sequencer ),,,,,,,,,,Fraction,,,4.6,MS,,pub/v4.6,0,;bot;,,,, +Aux,#Assist_Frontend,,,,,,,,,,,,,( 1 - INST_RETIRED.REP_ITERATION / UOPS_RETIRED.MS:c1 ) * ( Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + Mispredicts_Resteers * Other_Mispredicts / Branch_Mispredicts ) / ##Branch_Resteers ) / ##Fetch_Latency + MS ),,,,#Assist * ( Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + #Umisp * Mispredicts_Resteers ) / ##Branch_Resteers ) / ##Fetch_Latency + MS ),,,,,#Assist * Fetch_Latency * ( MS_Switches + Branch_Resteers * ( Clears_Resteers + Mispredicts_Resteers * #Umisp ) / ##Branch_Resteers ) / ##Fetch_Latency,,,,,,,,,,Slots,,,5.1,MS,,pub/v4.6,0,;bot;,,,, +Aux,#Assist_Retired,,,,,,,,,,,,,,,,,,,,,,#Assist * Heavy_Operations,,,,,,,,,,Slots,,,4.6,MS,,pub/5.0,0,;bot;,,,, +Aux,#Core_Bound_Cycles,,,,,,,EXE_ACTIVITY.EXE_BOUND_0_PORTS + #Few_Uops_Executed_Threshold,,,,,,,,,,,,,,,Ports_Utilized_0 * CLKS + #Few_Uops_Executed_Threshold,,,,,,,,,,Count,,,4.7,PortsUtil,,pub/v4,3,;bot;,,,, +Aux,#Cycles_0_Ports_Utilized,,,,,,,,,,,,,,,,,#NA,,,,,UOPS_EXECUTED.CORE_CYCLES_NONE / 2 if #SMT_on else CYCLE_ACTIVITY.STALLS_TOTAL - CYCLE_ACTIVITY.STALLS_MEM_ANY,,( UOPS_EXECUTED.CORE:i1:c1 ) / 2 if #SMT_on else ( CYCLE_ACTIVITY.STALLS_TOTAL - #Frontend_RS_Empty_Cycles ),,,,( UOPS_EXECUTED.CORE:i1:c1 ) / 2 if #SMT_on else ( #STALLS_TOTAL - #Frontend_RS_Empty_Cycles ),,,,Count,,,4.2,,,pub/v4.6,4,;bot;,,,, +Aux,#Cycles_1_Port_Utilized,,,,,,,,,,,,,,,,,#NA,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_1 - UOPS_EXECUTED.CORE_CYCLES_GE_2 ) / 2 if #SMT_on else EXE_ACTIVITY.1_PORTS_UTIL,,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC ),,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ),,( UOPS_EXECUTED.CORE:c1 - UOPS_EXECUTED.CORE:c2 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC - UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC ),,,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, +Aux,#Cycles_2_Ports_Utilized,,,,,,,,,,,,,,,,,#NA,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_2 - UOPS_EXECUTED.CORE_CYCLES_GE_3 ) / 2 if #SMT_on else EXE_ACTIVITY.2_PORTS_UTIL,,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC - UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC ),,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ),,( UOPS_EXECUTED.CORE:c2 - UOPS_EXECUTED.CORE:c3 ) / 2 if #SMT_on else ( UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC - UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC ),,,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, +Aux,#Cycles_3m_Ports_Utilized,,,,,,,,,,,,,,,,,#NA,,,,,UOPS_EXECUTED.CORE_CYCLES_GE_3 / 2 if #SMT_on else UOPS_EXECUTED.CORE_CYCLES_GE_3,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CORE:c3,,( UOPS_EXECUTED.CORE:c3 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC,,#NA,,Count,,,3.5,,,pub/5.0,4,;bot;,,,, +Aux,#DurationTimeInSeconds,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DurationTimeInMilliSeconds / 1000,,Count,,,4.1,,,pub/v3,i,;bot;EDP;perf;VTune,,,, +Aux,#Exe_Ports,,,,,,,18,,,,,,12,,,,10,,,,,,,,,8,,,,6,,Constant,,,4.4,,,pub/v4.4,,,,,, +Aux,#Execute_Cycles,,,,,,,#NA,,,,,,,,,,,,,,,( UOPS_EXECUTED.CORE_CYCLES_GE_1 / 2 ) if #SMT_on else UOPS_EXECUTED.THREAD:c1,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CORE:c1,,( UOPS_EXECUTED.CORE:c1 / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC,,( UOPS_DISPATCHED.CORE:c1 / 2 ) if #SMT_on else UOPS_DISPATCHED.CORE:c1,,Count,,,2.9,,,pub,i,;,,,, +Aux,#FB_Factor,,,,,,,,,,,,,,,,,,,,,,1 + #FBHit_per_L1Miss / 2,,,,,,,,#NA,,Metric,factor used for metrics associating fixed costs for FB Hits - according to probability theory if all FB Hits come at a random rate in original L1_Miss cost interval then the average cost for each one is 0.5 of the fixed cost,,4.1,,,pub/5.0,i,;bot;,,,, +Aux,#FBHit_per_L1Miss,,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.FB_HIT / MEM_LOAD_RETIRED.L1_MISS,,,,,,,,#NA,,Metric,,,4.5,,,pub,i,;bot;,,,, +Aux,#Fetched_Uops,,,,,,,,,,,,,,,,,,,IDQ.DSB_UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,,IDQ.DSB_UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS,,,,,,,,( IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS ) ,,Count,,,4.5,,,pub,i,;,,,, +Aux,#Few_Uops_Executed_Threshold,,,,,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL + Retiring * EXE_ACTIVITY.2_3_PORTS_UTIL,,,,,,,,,EXE_ACTIVITY.1_PORTS_UTIL + Retiring * EXE_ACTIVITY.2_PORTS_UTIL,,UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC if ( IPC > 1.8 ) else UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC,,UOPS_EXECUTED.CORE:c3 if ( IPC > 1.8 ) else UOPS_EXECUTED.CORE:c2,,UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC if ( IPC > 1.8 ) else UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC,,UOPS_DISPATCHED.THREAD:c3 if ( IPC > 1.8 ) else UOPS_DISPATCHED.THREAD:c2,,Count,,,4.9,PortsUtil,,pub,2,;bot;,,,, +Aux,#FLOP_Count,,,,,,,FP_ARITH_OPS_RETIRED.SCALAR + 2 * FP_ARITH_OPS_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_OPS_RETIRED.4_FLOPS + 8 * FP_ARITH_OPS_RETIRED.256B_PACKED_SINGLE,( 1 * FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),,,,( 1 * ( FP_ARITH_INST_RETIRED.SCALAR + FP_ARITH_INST_RETIRED2.SCALAR_HALF ) + 2 * ( FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + FP_ARITH_INST_RETIRED2.COMPLEX_SCALAR_HALF ) + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * ( FP_ARITH_INST_RETIRED2.128B_PACKED_HALF + FP_ARITH_INST_RETIRED.8_FLOPS ) + 16 * ( FP_ARITH_INST_RETIRED2.256B_PACKED_HALF + FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ) + 32 * FP_ARITH_INST_RETIRED2.512B_PACKED_HALF ) if #FP16 else ( 1 * FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE ),FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE,,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE,,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.8_FLOPS + 16 * FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE,,,FP_ARITH_INST_RETIRED.SCALAR + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.4_FLOPS + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE,,#NA,,,,( 1 * ( FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE ) + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * ( FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE ) + 8 * SIMD_FP_256.PACKED_SINGLE ),,Count,Floating Point computational (arithmetic) Operations Count,,4.8,Flops;HPC,,pub,i,;,,,, +Aux,#FP_Arith_Scalar,,,,,,,FP_ARITH_OPS_RETIRED.SCALAR,,,,,FP_ARITH_INST_RETIRED.SCALAR + FP_ARITH_INST_RETIRED2.SCALAR if #FP16 else FP_ARITH_INST_RETIRED.SCALAR,,,,,,,,,,,,FP_ARITH_INST_RETIRED.SCALAR,,#NA,,,,FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE,,Count,,,4.8,Flops;HPC,,pub,i,;,,,, +Aux,#FP_Arith_Vector,,,,,,,FP_ARITH_OPS_RETIRED.VECTOR,,,,,FP_ARITH_INST_RETIRED.VECTOR + FP_ARITH_INST_RETIRED2.VECTOR if #FP16 else FP_ARITH_INST_RETIRED.VECTOR,,,,,FP_ARITH_INST_RETIRED.VECTOR,FP_ARITH_INST_RETIRED.VECTOR + FP_ARITH_INST_RETIRED2.128BIT_PACKED_BF16:u0xe0,,,FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE:u0xfc,,,FP_ARITH_INST_RETIRED.VECTOR,,#NA,,,,FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE,,Count,,,4.8,Flops;HPC,,pub,i,;,,,, +Aux,#Frontend_RS_Empty_Cycles,,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,,,RS_EVENTS.EMPTY_CYCLES if ( Fetch_Latency > 0.1 ) else 0,,Count,,,3.1,,,pub,2,;,,,, +Aux,#Frontend_Latency_Cycles,,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,"min( CPU_CLK_UNHALTED.THREAD , IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE )",,Count,,,3,,,pub,2,;,,,, +Aux,#HighIPC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IPC / #Pipeline_Width,,Metric,,> 0.35,3.5,,,pub,2,;,,,, +Aux,#ITLB_Miss_Cycles,,,,,,,,,,,,,,,,,,,,,,#NA,,( 14 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION:c1 + 7 * ITLB_MISSES.WALK_COMPLETED ),,( 14 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION ),,,,( 12 * ITLB_MISSES.STLB_HIT + ITLB_MISSES.WALK_DURATION ),,Count,,,4.1,MemoryTLB,,pub,3,;,,,, +Aux,#L2_Bound_Ratio,,,,,,,,,,,,,#NA,,,,,,,,,( CYCLE_ACTIVITY.STALLS_L1D_MISS - CYCLE_ACTIVITY.STALLS_L2_MISS ) / CLKS,,,,,,,,#NA,,Fraction,,,3.1,,,pub,3,;bot;,,,, +Aux,#Light_Ops_Sum,,,,,,,Retiring * UOPS_EXECUTED.X87 / UOPS_EXECUTED.THREAD + ( #FP_Arith_Scalar + #FP_Arith_Vector ) / #Retired_Slots + ( INT_VEC_RETIRED.ADD_128 + INT_VEC_RETIRED.VNNI_128 + INT_VEC_RETIRED.ADD_256 + INT_VEC_RETIRED.MUL_256 + INT_VEC_RETIRED.VNNI_256 ) / #Retired_Slots + Memory_Operations + Fused_Instructions + Non_Fused_Branches,,,,,,FP_Arith + Int_Operations + Memory_Operations + Fused_Instructions + Non_Fused_Branches,,,,FP_Arith + Memory_Operations + Branch_Instructions,,,,,FP_Arith + Memory_Operations + Fused_Instructions + Non_Fused_Branches ,,,,,,,,,,Count,,,4.7,,,pub/v4.3,L3,,,,, +Aux,#LOAD_L1_MISS,,,,,,,,,,,,,,,,,,,,,,#NA,,,,MEM_LOAD_UOPS_RETIRED.L2_HIT_PS + MEM_LOAD_UOPS_RETIRED.L3_HIT_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS + MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS,,MEM_LOAD_UOPS_RETIRED.L2_HIT_PS + MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS + MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS,,#NA,,Count,,,4.1,,,pub,i,;bot;,,,, +Aux,#LOAD_L1_MISS_NET,,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.L1_MISS,,,#LOAD_L1_MISS + MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS + MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_RETIRED.L3_MISS_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS + MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS,#LOAD_L1_MISS + MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS,,#NA,,Count,,,4,,,pub,i,;bot;,,,, +Aux,#LOAD_L2_HIT,,,,,,,,,#NA,,,,#NA,,,,,,,,,MEM_LOAD_RETIRED.L2_HIT_PS * ( 1 + #FBHit_per_L1Miss ),,,,,,,,#NA,,Count,,,4.3,,,pub/v4.2,i,;bot;,,,, +Aux,#LOAD_L3_HIT,,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_RETIRED.L3_HIT * #FB_Factor,,,,MEM_LOAD_UOPS_RETIRED.L3_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.1,,,pub/5.0,i,;bot;,,,, +Aux,#LOAD_LCL_MEM,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM * ( 1 + #FBHit_per_L1Miss ),,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.4,Server,,pub,i,;bot;,,,, +Aux,#LOAD_LCL_PMM,,,,,,,,MEM_LOAD_RETIRED.LOCAL_CXL_MEM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,MEM_LOAD_RETIRED.LOCAL_PMM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Count,,,5.02,Server,,pub,i,;bot;,,,, +Aux,#LOAD_RMT_FWD,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD * ( 1 + #FBHit_per_L1Miss ) if #DS else 0,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_FWD_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, +Aux,#LOAD_RMT_HITM,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM * ( 1 + #FBHit_per_L1Miss ) if #DS else 0,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, +Aux,#LOAD_RMT_MEM,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM * ( 1 + #FBHit_per_L1Miss ) if #DS else 0,,,,MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,,#NA,,Count,,,3.1,Server,,pub,i,;bot;,,,, +Aux,#LOAD_RMT_PMM,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_CXL_MEM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,#NA,#NA,,,,,,,,MEM_LOAD_L3_MISS_RETIRED.REMOTE_PMM * ( 1 + #FBHit_per_L1Miss ) if #PMM_App_Direct else #NA,,,,,,,,,,,#NA,,Count,,,5.02,Server,,pub,i,;bot;,,,, +Aux,#LOAD_XSNP_HIT,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD + MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD * ( 1 - #True_XSNP_HitM_Fraction ),,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS + MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS * ( 1 - #True_XSNP_HitM_Fraction ),MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT_PS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Offcore;Snoop,,pub/5.0,i,;bot;,,,, +Aux,#LOAD_XSNP_HITM,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD * #True_XSNP_HitM_Fraction,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS * #True_XSNP_HitM_Fraction,MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM_PS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Offcore;Snoop,,pub/5.0,i,;bot;,,,, +Aux,#LOAD_XSNP_MISS,,,,,,,,,,,,,,,,,,,,,,MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS,,,,MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS_PS * ( 1 + MEM_LOAD_UOPS_RETIRED.HIT_LFB_PS / #LOAD_L1_MISS_NET ),,#NA,,Count,,,4.7,Snoop,,pub/5.0,i,;bot;,,,, +Aux,#MEM_Bound_Ratio,,,,,,,MEMORY_STALLS.MEM / CLKS,,,,,,MEMORY_ACTIVITY.STALLS_L3_MISS / CLKS,,,,,,,,,CYCLE_ACTIVITY.STALLS_L3_MISS / CLKS + #L2_Bound_Ratio - L2_Bound,,,,,,,,,,Fraction,,,4.1,,,pub,3,;bot;,,,, +Aux,#Mem_DDR_Hit_Fraction,,,,,,,,( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) / ( ( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) + ( 25 * #LOAD_LCL_PMM + 33 * #LOAD_RMT_PMM ) ) if #PMM_App_Direct else 1,,#NA,#NA,,,,,,,,( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) / ( ( 19 * #LOAD_RMT_MEM + 10 * ( #LOAD_LCL_MEM + #LOAD_RMT_FWD + #LOAD_RMT_HITM ) ) + ( 25 * #LOAD_LCL_PMM + 33 * #LOAD_RMT_PMM ) ) if #PMM_App_Direct else 1,,,,,,,,,,,#NA,,Fraction,,,5.02,Server,,pub,3,;bot;,,,, +Aux,#Mem_L2_Store_Cost,,,,,,,,,,,,,,,,,10,,,,11,,,,,,,9,,,,Constant,,,4,,,pub/5.0,4,;bot;,,,, +Aux,#Mem_L3_Hit_Fraction,,,,,,,,,,,,,,,,,,,,,,#NA,,,,MEM_LOAD_UOPS_RETIRED.L3_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.L3_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.L3_MISS_PS ),,MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS ),MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS ),MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS / ( MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS + #Mem_L3_Weight * MEM_LOAD_UOPS_MISC_RETIRED.LLC_MISS_PS ),,Fraction,,,3,,,pub,3,;,,,, +Aux,#Mem_Lock_St_Fraction,,,,,,,,,,,,,,,,,,,,,,MEM_INST_RETIRED.LOCK_LOADS / MEM_INST_RETIRED.ALL_STORES,,,,,,MEM_UOPS_RETIRED.LOCK_LOADS_PS / MEM_UOPS_RETIRED.ALL_STORES_PS,,,,Fraction,,,3,,,pub/5.0,4,;bot;,,,, +Aux,#Memory_Bound_Fraction,,,,,,,,,,,,,#NA,,,,,,,,,( CYCLE_ACTIVITY.STALLS_MEM_ANY + EXE_ACTIVITY.BOUND_ON_STORES ) / #Backend_Bound_Cycles,,( CYCLE_ACTIVITY.STALLS_MEM_ANY + RESOURCE_STALLS.SB ) / #Backend_Bound_Cycles,,,,,,( #STALLS_MEM_ANY + RESOURCE_STALLS.SB ) / #Backend_Bound_Cycles,,Fraction,,,4,,,pub,2,;bot;,,,, +Aux,#Mispred_Clears_Fraction,,,,,,,,,,,,,Branch_Mispredicts / Bad_Speculation,,,,,,,,,,,,,,,,,BR_MISP_RETIRED.ALL_BRANCHES / ( BR_MISP_RETIRED.ALL_BRANCHES + MACHINE_CLEARS.COUNT ),,Fraction,,,4.4,BrMispredicts,,pub,2,;bot;,,,, +Aux,#OCR_all_rfo_l3_hit_snoop_hitm,,,,,,,,,,,,,,,,,#NA,,OCR.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE + OCR.PF_L2_RFO.L3_HIT.HITM_OTHER_CORE,,OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.HITM_OTHER_CORE + OFFCORE_RESPONSE.PF_L2_RFO.L3_HIT.HITM_OTHER_CORE,OFFCORE_RESPONSE.DEMAND_RFO.L3_HIT.SNOOP_HITM,,,,,,,,,,Count,,,4,Offcore,,pub/5.0,i,;bot;,,,, +Aux,#OCR_all_rfo_l3_miss_remote_hitm,,,,,,,,,,,,,,,,,#NA,,OCR.DEMAND_RFO.L3_MISS.REMOTE_HITM + OCR.PF_L2_RFO.L3_MISS.REMOTE_HITM,,OFFCORE_RESPONSE.DEMAND_RFO.L3_MISS.REMOTE_HITM + OFFCORE_RESPONSE.PF_L2_RFO.L3_MISS.REMOTE_HITM,,,,,,,,,,,Count,,,4,Offcore;Server,,pub/5.0,i,;bot;,,,, +Aux,#ORO_Demand_RFO_C1,,,,,,,,,,,,,,,,,,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_RFO )",,,,Count,,,2.9,Offcore,,pub/5.0,4,;bot;,,,, +Aux,#ORO_DRD_Any_Cycles,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DATA_RD )",,Count,,,3.1,Offcore,,pub,4,;bot;,,,, +Aux,#ORO_DRD_BW_Cycles,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c12 )","min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.DATA_RD:c4 )",,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c12 )",,,,,,,,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c4 )",,,,,,"min( CPU_CLK_UNHALTED.THREAD , OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD:c6 )",,Count,,,3.1,Offcore,,pub,4,;bot;,,,, +Aux,#SQ_Full_Cycles,,,,,,,,,,,,,,,,,#NA,,,,,,,,,,,( OFFCORE_REQUESTS_BUFFER.SQ_FULL / 2 ) if #SMT_on else OFFCORE_REQUESTS_BUFFER.SQ_FULL,,,,Count,,,4,Offcore,,pub/5.0,4,;bot;,,,, +Aux,#STALLS_MEM_ANY,,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.STALLS_LDM_PENDING )",,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.STALLS_L1D_PENDING )",,Count,,,3.1,,,pub,2,;,,,, +Aux,#STALLS_TOTAL,,,,,,,,,,,,,,,,,,,,,,,,#NA,,,,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.CYCLES_NO_EXECUTE )",,"min( CPU_CLK_UNHALTED.THREAD , CYCLE_ACTIVITY.CYCLES_NO_DISPATCH )",,Count,,,2.9,,,pub,2,;,,,, +Aux,#Store_L2_Hit_Cycles,,,,,,,,,,,,,MEM_STORE_RETIRED.L2_HIT * #Mem_L2_Store_Cost * ( 1 - #Mem_Lock_St_Fraction ),,,,,,,,,,,,,,,L2_RQSTS.RFO_HIT * #Mem_L2_Store_Cost * ( 1 - #Mem_Lock_St_Fraction ),,#NA,,Count,,,3.1,,,pub/5.0,4,;bot;,,,, +Aux,#True_XSNP_HitM_Fraction,,,,,,,#NA,,,,,,,OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM / ( OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM + OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM / ( OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM + OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,,OCR.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE / ( OCR.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE + OCR.DEMAND_DATA_RD.L3_HIT.HIT_OTHER_CORE_FWD ),,OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE / ( OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.HITM_OTHER_CORE + OFFCORE_RESPONSE.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD ),,,,,,,,,#NA,,Fraction,,,3.5,Offcore;Snoop,,pub/5.0,3,;bot;,,,, +Aux,#Mem_L3_Weight,,,,,,,,,,,,,,,,,,,,,,#NA,,,,,,,,7,,Constant,,,2.5,,,pub,-,;,,,, +Aux,#Mem_STLB_Hit_Cost,,,,,,,,,,,,,,,,,7,,,,,9,,,,8,,,,7,,Constant,,,4.2,MemoryTLB,,pub,4,;bot;,,,, +Aux,#Mem_XSNP_HitM_Cost,,,,,,,,,,,,81 * Core_Frequency,28 * Core_Frequency,54 * Core_Frequency,,48 * Core_Frequency,32.5 * Core_Frequency,,,,47.5 * Core_Frequency,22 * Core_Frequency,,,,,,60,,,,NanoSeconds,L3 issuing the snoop,,4.8,Snoop,,pub/5.0,4,;bot;,,,, +Aux,#Mem_XSNP_Hit_Cost,,,,,,,,,,,,79 * Core_Frequency,27 * Core_Frequency,53 * Core_Frequency,,47.5 * Core_Frequency,27 * Core_Frequency,,,,47.5 * Core_Frequency,20 * Core_Frequency,,,,,,43,,,,NanoSeconds,L3 issuing the snoop,,4.8,Snoop,,pub/5.0,4,;bot;,,,, +Aux,#Mem_XSNP_None_Cost,,,,,,,,,,,,37 * Core_Frequency,12 * Core_Frequency,22.5 * Core_Frequency,,23 * Core_Frequency,12.5 * Core_Frequency,,,,20.5 * Core_Frequency,10 * Core_Frequency,,,,,41,29,,,,NanoSeconds,L3 not issuing a snoop,,4.7,Snoop,,pub/5.0,4,;bot;,,,, +Aux,#Mem_Local_DRAM_Cost,,,,,,,,,,,,109 * Core_Frequency,,,,66.5 * Core_Frequency,,,,,80 * Core_Frequency,,,,,,200,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, +Aux,#Mem_Remote_DRAM_Cost,,,,,,,,,,,,190 * Core_Frequency,,,,131 * Core_Frequency,,,,,147.5 * Core_Frequency,,,,,,310,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, +Aux,#Mem_Remote_HitM_Cost,,,,,,,,,,,,170 * Core_Frequency,,,,120 * Core_Frequency,,,,,110 * Core_Frequency,,,,,,200,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, +Aux,#Mem_Remote_Fwd_Cost,,,,,,,,,,,,170 * Core_Frequency,,,,120 * Core_Frequency,,,,,110 * Core_Frequency,,,,,,180,,,,,NanoSeconds,,,4.8,Server,,pub/5.0,5,;bot;,,,, +Aux,#Mem_L2_Hit_Cost,,,,,,,,,,,,4.4 * Core_Frequency,3 * Core_Frequency,5 * Core_Frequency,,4 * Core_Frequency,,,,,,3.5 * Core_Frequency,,,,,180,,,,,NanoSeconds,,,4.8,,,pub/5.0,5,;bot;,,,, +Aux,#BAClear_Cost,,,,,,,,,,,,,#NA,,,,10,,,,,9,,,,,,,,12,,Constant,,,4.4,,,pub,i,;bot;,,,, +Aux,#MS_Switches_Cost,,,,,,,,,,,,,,,,,3,,,,,,,,,2,,,,3,,Constant,,,4,,,pub,3,;bot;,,,, +Aux,#Avg_Assist_Cost,,,,,,,,,,,,,( 99 *3 + 63 + 30 ) / 5,,,,,,,,,34,,,,,,66,,,,Constant,,,4.6,,,pub/v4.6,3,;bot;,,,, +Aux,#UC_Scale_Factor,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,#NA,,Constant,,,5,,,,,,,,, +Aux,#PERF_METRICS_SUM,,,,,,,,,,,,,,,,,PERF_METRICS.FRONTEND_BOUND + PERF_METRICS.BAD_SPECULATION + PERF_METRICS.RETIRING + PERF_METRICS.BACKEND_BOUND,,,,,,,,,,,,,#NA,,Count,,,4.1,TmaL1,,pub/v4,1,;bot;perf,,,, +Aux,#Pipeline_Width,,,,,,,8,,,,,,6,,,,5,,,,,,,,,,,,,4,,Constant,,,4.1,TmaL1,,pub,1,;bot;perf,,,, +Aux,#DSB_Width,,,,,,,12,,,,,,8,,,,,,,,,6,,,,,,,,4,,Constant,,,5.02,,,,,ptools,,,, +Aux,#MITE_Width,,,,,,,8,,,,,,6,,,,,,,,,5,,,,,,,,,,Constant,,,5.02,,,,,ptools,,,, +Aux,#Decode_Width,,,,,,,8,,,,,,6,,,,,,,,,4,,,,,,,,,,Constant,,,5.02,,,,,ptools,,,, +Aux,#MS_Width,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,Constant,,,5.02,,,,,ptools,,,, +Aux,#Retire_Width,,,,,,,12,,,,,,,,,,8,,,,,4,,,,,,,,,,Constant,,,5.02,,,,,ptools,,,, +Aux,#Recovery_Cycles,,,,,,,,,,,,,#NA,,,,#NA,,,,,,,,,,,,,( INT_MISC.RECOVERY_CYCLES_ANY / 2 ) if #SMT_on else INT_MISC.RECOVERY_CYCLES,,Count,,,4.2,,,pub,1,;bot;,,,, +Aux,#Retire_Fraction,,,,,,,,,,,,,,,,,UOPS_RETIRED.SLOTS / UOPS_ISSUED.ANY,,,,,,,,,,,,,#Retired_Slots / UOPS_ISSUED.ANY,,Fraction,,,4.6,BrMispredicts,,pub,2,;bot;,,,, +Aux,#Retired_Slots,,,,,,,,,,,,,,,,,Retiring * SLOTS,,,,,,,,,,,,,UOPS_RETIRED.RETIRE_SLOTS,,Count,,,4.1,TmaL1,,pub,1,;bot;perf,,,, +Aux,#OneMillion,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1000000,,Constant,,,2.6,,,pub,i,;bot;,,,, +Aux,#OneBillion,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1000000000,,Constant,,,3,,,pub,i,;bot;,,,, +Aux,#Energy_Unit,,,,,,,,,,,,,,,,,,,,,,,,,,61,,15.6,,,,Constant,,,3,,,pub,i,;,,,, +Aux,#Errata_Whitelist,,,,,,,,,#NA,,,SPR121;SPR103,ADL038;ADL066,,,,#NA,,,,,SKL091,,BDE69;BDE70,,,,,,,,Constant,,,4.8,,,pub,i,;toplev,,,, +Aux,#SMT_on,,,,,,,#NA,,,,,,,,,,,,,,,,,,,,,,,1,,SystemParameter,whether Simultaneous Multi Threading (SMT) is enabled (in BIOS),,2.7,SMT;Summary,,pub/v3,1,;bot;,EDP ? system.sockets[0][0].size > 1 : perf ? /sys/devices/system/cpu/smt/control : Intel-way-SMT-on,,, +Aux,#EBS_Mode,,,,,,,,,,,,,,,,,#NA,,,,,,,,,,,,,0,,ExternalParameter,Use ratios that apply to Event Based Sampling where applicable. By setting this flag user acks homogeneous behavior across all processors. Note this may increase counter multiplexing.,,4.6,,,pub/v3.3,1,;bot;vtune,,,, +Aux,Num_CPUs,,,,,,,NUM_CORES if NUM_CORES else 16,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 320 / ( 2 - #SMT_on ),,,,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 224 / ( 2 - #SMT_on ),NUM_CORES * NUM_THREADS if NUM_CORES else ( 8 + 16 / ( 2 - #SMT_on ) ),NUM_CORES * NUM_THREADS if NUM_CORES else 16 / ( 2 - #SMT_on ),,NUM_CORES * NUM_SOCKETS * NUM_THREADS if NUM_CORES else 160 / ( 2 - #SMT_on ),,,112 if #SMT_on else 56,,,,,,,,,,,8 if #SMT_on else 4,,SystemParameter,Number of logical processors (enabled or online) on the target system,,4.6,Summary,,pub/v4.6,,;,EDP ? system.sockets[0].cpus.count : perf ? Linux-way-Num-CPUs : Intel-way-Num-CPUs,,, +Aux,#Memory,,,,,,,,,,0,2,0,,,,,,,1,,,,,,,,,,,#NA,,ExternalParameter,,,4.8,Server,,pub/v3.5,3,;bot;,,,, +Aux,#PMM_App_Direct,,,,,,,,,,,,,,,,,,,1 if #Memory == 1 else 0,,,,,,,,,,,#NA,,ExternalParameter,,,4.5,Server,,pub,3,;bot;,,,, +Aux,#HBM,,,,,,,,0,,,,1 if #Memory > 1 else 0,,,,,,,,,,,,,,,,,,,,ExternalParameter,,,4.7,Server,,pub/v4.6,,;bot;,,,, +Aux,DurationTimeInMilliSeconds,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SystemParameter,The duration time in milli-seconds of the profile,,4.2,Summary,,pub,,;bot;EDP;perf;VTune,EDP ? 1000 : duration-time,,, +Aux,Dependent_Loads_Weight,,,,,,,#NA,,,,,,,,,,,,,,,20,,,,,,,,,,SystemParameter,A system parameter for dependent-loads (pointer chasing like access pattern) of the workload. An integer fraction in range from 0 (no dependent loads) to 100 (all loads are dependent loads),,4.8,MemoryLat,,pub/5.0,,;bot;,,,, +Aux,#PERF_METRICS_MSR,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,#NA,,ExternalParameter,,,4.2,,,,1,;bot;toplev;vtune,,,, +Aux,#FP16,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,ExternalParameter,A system parameter to indicate FP16 on vector stack and AMX (any data type) are enabled,,4.6,Flops,,pub/v4.5,,,,,, +Aux,#DS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,0,,ExternalParameter,A system parameter to indicate Dual-Socket is enabled,,4.8,Server,,pub/5.0,,;bot;,,,, diff --git a/TMA_Metrics-full.xlsx b/TMA_Metrics-full.xlsx old mode 100644 new mode 100755 index fb236e1b0b6b3467d39f8af753daabdbec363fc8..1a6208acde54bd9d506b9d70c1e121f904b714b3 GIT binary patch literal 172028 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 literal 243848 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�^WlzpsmX@!VSBa$IMO*>PsW;4gtxk{?4P-d3+ z)Z`!O4=Tja1qEImzgZ;GVhyZrw>A<~*7J^bHLBp_YXcbaIo zA(HiZ3X!{^N{s1-$UF9l?tnt6YFpC#FTb;8M4r-!G4;0V270o$u?x z@zQFC+a#tll{eJl)Fos$csE`l;oFAB8devOWCQrhqC|M?wv_S5I-5QGFmFmJlok|Q z!)L#+Iz#Bp+{k#pDQ$<3DbPJ@l2! z=EqUCSIyxsb9{s2B5a8UFEy1$=xu1GVo5+G81n3v`Mys$B5a NMeX_VV+_vc)kb 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