398 lines
12 KiB
JSON
398 lines
12 KiB
JSON
{
|
|
"SkipList": [
|
|
"tsx_aborted_cycles",
|
|
"tsx_transactional_cycles",
|
|
"C2_Pkg_Residency",
|
|
"C6_Pkg_Residency",
|
|
"C1_Core_Residency",
|
|
"C6_Core_Residency",
|
|
"tma_false_sharing",
|
|
"tma_remote_cache",
|
|
"tma_contested_accesses"
|
|
],
|
|
"RelationshipRules": [
|
|
{
|
|
"RuleIndex": 1,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Intel(R) Optane(TM) Persistent Memory(PMEM) bandwidth total includes Intel(R) Optane(TM) Persistent Memory(PMEM) read bandwidth and Intel(R) Optane(TM) Persistent Memory(PMEM) write bandwidth",
|
|
"Metrics": [
|
|
{
|
|
"Name": "pmem_memory_bandwidth_read",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "pmem_memory_bandwidth_write",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "pmem_memory_bandwidth_total",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 2,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "DDR memory bandwidth total includes DDR memory read bandwidth and DDR memory write bandwidth",
|
|
"Metrics": [
|
|
{
|
|
"Name": "memory_bandwidth_read",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "memory_bandwidth_write",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "memory_bandwidth_total",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 3,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "100",
|
|
"RangeUpper": "100",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Total memory read accesses includes memory reads from last level cache (LLC) addressed to local DRAM and memory reads from the last level cache (LLC) addressed to remote DRAM.",
|
|
"Metrics": [
|
|
{
|
|
"Name": "numa_reads_addressed_to_local_dram",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "numa_reads_addressed_to_remote_dram",
|
|
"Alias": "b"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 4,
|
|
"Formula": "a",
|
|
"TestType": "SingleMetricTest",
|
|
"RangeLower": "0.125",
|
|
"RangeUpper": "",
|
|
"ErrorThreshold": "",
|
|
"Description": "",
|
|
"Metrics": [
|
|
{
|
|
"Name": "cpi",
|
|
"Alias": "a"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 5,
|
|
"Formula": "",
|
|
"TestType": "SingleMetricTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "1",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Ratio values should be within value range [0,1)",
|
|
"Metrics": [
|
|
{
|
|
"Name": "loads_per_instr",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "stores_per_instr",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l1d_mpi",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l1d_demand_data_read_hits_per_instr",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l1_i_code_read_misses_with_prefetches_per_instr",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l2_demand_data_read_hits_per_instr",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l2_mpi",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l2_demand_data_read_mpi",
|
|
"Alias": ""
|
|
},
|
|
{
|
|
"Name": "l2_demand_code_mpi",
|
|
"Alias": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 6,
|
|
"Formula": "a+b+c+d",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "100",
|
|
"RangeUpper": "100",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Sum of TMA level 1 metrics should be 100%",
|
|
"Metrics": [
|
|
{
|
|
"Name": "tma_frontend_bound",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "tma_bad_speculation",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "tma_backend_bound",
|
|
"Alias": "c"
|
|
},
|
|
{
|
|
"Name": "tma_retiring",
|
|
"Alias": "d"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 7,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Sum of the level 2 children should equal level 1 parent",
|
|
"Metrics": [
|
|
{
|
|
"Name": "tma_fetch_latency",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "tma_fetch_bandwidth",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "tma_frontend_bound",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 8,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Sum of the level 2 children should equal level 1 parent",
|
|
"Metrics": [
|
|
{
|
|
"Name": "tma_branch_mispredicts",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "tma_machine_clears",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "tma_bad_speculation",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 9,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Sum of the level 2 children should equal level 1 parent",
|
|
"Metrics": [
|
|
{
|
|
"Name": "tma_memory_bound",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "tma_core_bound",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "tma_backend_bound",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 10,
|
|
"Formula": "a+b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "c",
|
|
"RangeUpper": "c",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Sum of the level 2 children should equal level 1 parent",
|
|
"Metrics": [
|
|
{
|
|
"Name": "tma_light_operations",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "tma_heavy_operations",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "tma_retiring",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 11,
|
|
"Formula": "a+b+c",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "100",
|
|
"RangeUpper": "100",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "The all_requests includes the memory_page_empty, memory_page_misses, and memory_page_hits equals.",
|
|
"Metrics": [
|
|
{
|
|
"Name": "memory_page_empty_vs_all_requests",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "memory_page_misses_vs_all_requests",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "memory_page_hits_vs_all_requests",
|
|
"Alias": "c"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 12,
|
|
"Formula": "a-b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "CPU utilization in kernel mode should always be <= cpu utilization",
|
|
"Metrics": [
|
|
{
|
|
"Name": "cpu_utilization",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "cpu_utilization_in_kernel_mode",
|
|
"Alias": "b"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 13,
|
|
"Formula": "a-b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Total L2 misses per instruction should be >= L2 demand data read misses per instruction",
|
|
"Metrics": [
|
|
{
|
|
"Name": "l2_mpi",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "l2_demand_data_read_mpi",
|
|
"Alias": "b"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 14,
|
|
"Formula": "a-b",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "Total L2 misses per instruction should be >= L2 demand code misses per instruction",
|
|
"Metrics": [
|
|
{
|
|
"Name": "l2_mpi",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "l2_demand_code_mpi",
|
|
"Alias": "b"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 15,
|
|
"Formula": "b+c+d",
|
|
"TestType": "RelationshipTest",
|
|
"RangeLower": "a",
|
|
"RangeUpper": "a",
|
|
"ErrorThreshold": 5.0,
|
|
"Description": "L3 data read, rfo, code misses per instruction equals total L3 misses per instruction.",
|
|
"Metrics": [
|
|
{
|
|
"Name": "llc_mpi",
|
|
"Alias": "a"
|
|
},
|
|
{
|
|
"Name": "llc_data_read_mpi_demand_plus_prefetch",
|
|
"Alias": "b"
|
|
},
|
|
{
|
|
"Name": "llc_rfo_read_mpi_demand_plus_prefetch",
|
|
"Alias": "c"
|
|
},
|
|
{
|
|
"Name": "llc_code_read_mpi_demand_plus_prefetch",
|
|
"Alias": "d"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 16,
|
|
"Formula": "a",
|
|
"TestType": "SingleMetricTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "8",
|
|
"ErrorThreshold": 0.0,
|
|
"Description": "Setting generous range for allowable frequencies",
|
|
"Metrics": [
|
|
{
|
|
"Name": "uncore_freq",
|
|
"Alias": "a"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"RuleIndex": 17,
|
|
"Formula": "a",
|
|
"TestType": "SingleMetricTest",
|
|
"RangeLower": "0",
|
|
"RangeUpper": "8",
|
|
"ErrorThreshold": 0.0,
|
|
"Description": "Setting generous range for allowable frequencies",
|
|
"Metrics": [
|
|
{
|
|
"Name": "cpu_operating_frequency",
|
|
"Alias": "a"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |