diff --git a/grafana_plugins/svg_plugin/package.json b/grafana_plugins/svg_plugin/package.json index aa445bd25..603ddc7ce 100644 --- a/grafana_plugins/svg_plugin/package.json +++ b/grafana_plugins/svg_plugin/package.json @@ -24,7 +24,7 @@ "@grafana/e2e-selectors": "9.5.3", "@grafana/eslint-config": "^6.0.0", "@grafana/tsconfig": "^1.2.0-rc1", - "@swc/core": "^1.3.62", + "@swc/core": "1.3.75", "@swc/helpers": "^0.5.0", "@swc/jest": "^0.2.26", "@testing-library/jest-dom": "^5.16.5", diff --git a/requirements.txt b/requirements.txt index 1c28bddd2..426696b2e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ astunparse==1.6.2 colorlover -dash +dash>=1.12.0 matplotlib numpy>=1.17.5 -pandas>=1.4.3 +pandas==1.4.3 pymongo pyyaml tabulate diff --git a/src/common.py b/src/common.py index e39a8c69c..fa2909573 100644 --- a/src/common.py +++ b/src/common.py @@ -44,10 +44,9 @@ def resolve_rocprof(returnPath=False): else: rocprof_cmd = os.environ["ROCPROF"] - rocprof_path = subprocess.run( - ["which", rocprof_cmd], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - if rocprof_path.returncode != 0: + rocprof_path = shutil.which(rocprof_cmd) + + if not rocprof_path: print("\nError: Unable to resolve path to %s binary" % rocprof_cmd) print( "Please verify installation or set ROCPROF environment variable with full path." @@ -55,7 +54,7 @@ def resolve_rocprof(returnPath=False): sys.exit(1) else: # Resolve any sym links in file path - rocprof_path = os.path.realpath(rocprof_path.stdout.decode("utf-8").rstrip("\n")) + rocprof_path = os.path.realpath(rocprof_path.rstrip("\n")) print("ROC Profiler: ", rocprof_path) if returnPath: return rocprof_path diff --git a/src/omniperf b/src/omniperf index b63cf093b..ec239271c 100755 --- a/src/omniperf +++ b/src/omniperf @@ -35,6 +35,7 @@ import pandas as pd from datetime import datetime from pathlib import Path as path import warnings +import shutil from parser import parse from utils import specs @@ -235,10 +236,10 @@ def gen_sysinfo(workload_name, workload_dir, ip_blocks, app_cmd, skip_roof): def mongo_import(args, profileAndImport): # Validate target directory - connectionInfo, Extractionlvl = csv_processor.parse(args, profileAndImport) + connectionInfo = csv_processor.parse(args, profileAndImport) # Convert and upload data print("-- Conversion & Upload in Progress --") - csv_processor.convert_folder(connectionInfo, Extractionlvl) + csv_processor.convert_folder(connectionInfo) print("-- Complete! --") ################################################ @@ -438,10 +439,8 @@ def characterize_app(args, VER): def run_rocscope(args, fname): # profile the app if args.use_rocscope == True: - result = subprocess.run( - ["which", "rocscope"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - if result.returncode == 0: + result = shutil.which("rocscope") + if result: rs_cmd = [ result.stdout.decode("ascii").strip(), "metrics", @@ -530,7 +529,10 @@ def omniperf_profile(args, VER): print("KernelName verbose level: ", str(args.kernelVerbose)) # Set up directories - workload_dir = args.path + "/" + args.name + "/" + args.target + if args.path == os.getcwd() + "/workloads": + workload_dir = args.path + "/" + args.name + "/" + args.target + else: + workload_dir = args.path perfmon_dir = str(OMNIPERF_HOME) + "/perfmon_pub" # Perfmon filtering @@ -553,10 +555,8 @@ def omniperf_profile(args, VER): print(e) sys.exit(1) - result = subprocess.run( - ["which", "rocscope"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - if result.returncode == 0: + result = shutil.which("rocscope") + if result: rs_cmd = [ result.stdout.decode("ascii").strip(), "top10", @@ -587,10 +587,8 @@ def omniperf_profile(args, VER): print(e) sys.exit(1) - result = subprocess.run( - ["which", "rocscope"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - if result.returncode == 0: + result = shutil.which("rocscope") + if result: rs_cmd = [ result.stdout.decode("ascii").strip(), "summary", diff --git a/src/omniperf_analyze/configs/gfx906/1300_instruction-cache.yaml b/src/omniperf_analyze/configs/gfx906/1300_instruction-cache.yaml index 361cb9ae2..05dc75980 100644 --- a/src/omniperf_analyze/configs/gfx906/1300_instruction-cache.yaml +++ b/src/omniperf_analyze/configs/gfx906/1300_instruction-cache.yaml @@ -38,38 +38,38 @@ Panel Config: title: Instruction Cache Accesses header: metric: L1I Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_ICACHE_REQ / $denom)) + avg: AVG((SQC_ICACHE_REQ / $denom)) min: MIN((SQC_ICACHE_REQ / $denom)) max: MAX((SQC_ICACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_ICACHE_HITS / $denom)) + avg: AVG((SQC_ICACHE_HITS / $denom)) min: MIN((SQC_ICACHE_HITS / $denom)) max: MAX((SQC_ICACHE_HITS / $denom)) unit: (Hits + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_ICACHE_MISSES / $denom)) + avg: AVG((SQC_ICACHE_MISSES / $denom)) min: MIN((SQC_ICACHE_MISSES / $denom)) max: MAX((SQC_ICACHE_MISSES / $denom)) unit: (Misses + $normUnit) tips: Misses - Duplicated: - mean: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_ICACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: Cache Hit: - mean: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) diff --git a/src/omniperf_analyze/configs/gfx906/1400_constant-cache.yaml b/src/omniperf_analyze/configs/gfx906/1400_constant-cache.yaml index eec636b38..563caad13 100644 --- a/src/omniperf_analyze/configs/gfx906/1400_constant-cache.yaml +++ b/src/omniperf_analyze/configs/gfx906/1400_constant-cache.yaml @@ -39,38 +39,38 @@ Panel Config: title: Scalar L1D Cache Accesses header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_DCACHE_REQ / $denom)) + avg: AVG((SQC_DCACHE_REQ / $denom)) min: MIN((SQC_DCACHE_REQ / $denom)) max: MAX((SQC_DCACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_DCACHE_HITS / $denom)) + avg: AVG((SQC_DCACHE_HITS / $denom)) min: MIN((SQC_DCACHE_HITS / $denom)) max: MAX((SQC_DCACHE_HITS / $denom)) unit: (Req + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_DCACHE_MISSES / $denom)) + avg: AVG((SQC_DCACHE_MISSES / $denom)) min: MIN((SQC_DCACHE_MISSES / $denom)) max: MAX((SQC_DCACHE_MISSES / $denom)) unit: (Req + $normUnit) tips: Misses- Duplicated: - mean: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_DCACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: Cache Hit: - mean: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) @@ -82,7 +82,7 @@ Panel Config: unit: pct tips: Read Req (Total): - mean: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) @@ -91,37 +91,37 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_DCACHE_ATOMIC / $denom)) + avg: AVG((SQC_DCACHE_ATOMIC / $denom)) min: MIN((SQC_DCACHE_ATOMIC / $denom)) max: MAX((SQC_DCACHE_ATOMIC / $denom)) unit: (Req + $normUnit) tips: Read Req (1 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_1 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_1 / $denom)) unit: (Req + $normUnit) tips: Read Req (2 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_2 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_2 / $denom)) unit: (Req + $normUnit) tips: Read Req (4 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_4 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_4 / $denom)) unit: (Req + $normUnit) tips: Read Req (8 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_8 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_8 / $denom)) unit: (Req + $normUnit) tips: Read Req (16 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_16 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_16 / $denom)) unit: (Req + $normUnit) @@ -132,32 +132,32 @@ Panel Config: title: Scalar L1D Cache - L2 Interface header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Read Req: - mean: AVG((SQC_TC_DATA_READ_REQ / $denom)) + avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) max: MAX((SQC_TC_DATA_READ_REQ / $denom)) unit: (Req + $normUnit) tips: Write Req: - mean: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) + avg: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) min: MIN((SQC_TC_DATA_WRITE_REQ / $denom)) max: MAX((SQC_TC_DATA_WRITE_REQ / $denom)) unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) + avg: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) min: MIN((SQC_TC_DATA_ATOMIC_REQ / $denom)) max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: Stall: - mean: AVG((SQC_TC_STALL / $denom)) + avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) unit: (Cycles + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml b/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml index e1a7e29cc..01e6d29d7 100644 --- a/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml +++ b/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml @@ -50,14 +50,14 @@ Panel Config: title: L1D Cache Stalls header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Stalled on L2 Data: - mean: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -66,7 +66,7 @@ Panel Config: unit: pct tips: Stalled on L2 Req: - mean: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -75,7 +75,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Read): - mean: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -84,7 +84,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Write): - mean: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -93,7 +93,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Atomic): - mean: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -363,20 +363,20 @@ Panel Config: title: L1D Addr Translation header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max units: Units tips: Tips metric: Req: - mean: AVG((TCP_UTCL1_REQUEST_sum / $denom)) + avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) units: (Req + $normUnit) tips: Hit Ratio: - mean: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) @@ -385,19 +385,19 @@ Panel Config: units: pct tips: Hits: - mean: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) units: (Hits + $normUnit) tips: Misses (Translation): - mean: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) units: (Misses + $normUnit) tips: Misses (Permission): - mean: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) units: (Misses + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx906/1800_L2_cache_per_channel.yaml b/src/omniperf_analyze/configs/gfx906/1800_L2_cache_per_channel.yaml index 08a9a9f76..7a808c5b8 100644 --- a/src/omniperf_analyze/configs/gfx906/1800_L2_cache_per_channel.yaml +++ b/src/omniperf_analyze/configs/gfx906/1800_L2_cache_per_channel.yaml @@ -13,15 +13,15 @@ Panel Config: title: Aggregate Stats (All 32 channels) header: metric: Metric - mean: Mean + avg: Mean std dev: Std Dev min: Min max: Max - units: Units + unit: Unit tips: Tips metric: L2 Cache Hit Rate: - mean: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + avg: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + (100 * TCC_HIT[2])) + (100 * TCC_HIT[3])) + (100 * TCC_HIT[4])) + (100 * TCC_HIT[5])) + (100 * TCC_HIT[6])) + (100 * TCC_HIT[7])) + (100 * TCC_HIT[8])) + (100 * TCC_HIT[9])) + (100 * TCC_HIT[10])) + (100 * TCC_HIT[11])) + (100 @@ -165,10 +165,10 @@ Panel Config: + TCC_HIT[25])) + (TCC_MISS[26] + TCC_HIT[26])) + (TCC_MISS[27] + TCC_HIT[27])) + (TCC_MISS[28] + TCC_HIT[28])) + (TCC_MISS[28] + TCC_HIT[29])) + (TCC_MISS[30] + TCC_HIT[30])) + (TCC_MISS[31] + TCC_HIT[31])) != 0) else None)) - units: pct + unit: pct tips: Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + TO_INT(TCC_REQ[2])) + TO_INT(TCC_REQ[3])) + TO_INT(TCC_REQ[4])) + TO_INT(TCC_REQ[5])) + TO_INT(TCC_REQ[6])) + TO_INT(TCC_REQ[7])) + TO_INT(TCC_REQ[8])) + TO_INT(TCC_REQ[9])) + TO_INT(TCC_REQ[10])) + TO_INT(TCC_REQ[11])) + TO_INT(TCC_REQ[12])) + TO_INT(TCC_REQ[13])) @@ -204,10 +204,10 @@ Panel Config: + TO_INT(TCC_REQ[22])) + TO_INT(TCC_REQ[23])) + TO_INT(TCC_REQ[24])) + TO_INT(TCC_REQ[25])) + TO_INT(TCC_REQ[26])) + TO_INT(TCC_REQ[27])) + TO_INT(TCC_REQ[28])) + TO_INT(TCC_REQ[29])) + TO_INT(TCC_REQ[30])) + TO_INT(TCC_REQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + TO_INT(TCC_READ[2])) + TO_INT(TCC_READ[3])) + TO_INT(TCC_READ[4])) + TO_INT(TCC_READ[5])) + TO_INT(TCC_READ[6])) + TO_INT(TCC_READ[7])) + TO_INT(TCC_READ[8])) + TO_INT(TCC_READ[9])) + TO_INT(TCC_READ[10])) + TO_INT(TCC_READ[11])) + TO_INT(TCC_READ[12])) + @@ -247,10 +247,10 @@ Panel Config: + TO_INT(TCC_READ[24])) + TO_INT(TCC_READ[25])) + TO_INT(TCC_READ[26])) + TO_INT(TCC_READ[27])) + TO_INT(TCC_READ[28])) + TO_INT(TCC_READ[29])) + TO_INT(TCC_READ[30])) + TO_INT(TCC_READ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + TO_INT(TCC_WRITE[2])) + TO_INT(TCC_WRITE[3])) + TO_INT(TCC_WRITE[4])) + TO_INT(TCC_WRITE[5])) + TO_INT(TCC_WRITE[6])) + TO_INT(TCC_WRITE[7])) + TO_INT(TCC_WRITE[8])) + TO_INT(TCC_WRITE[9])) + TO_INT(TCC_WRITE[10])) + TO_INT(TCC_WRITE[11])) @@ -294,10 +294,10 @@ Panel Config: + TO_INT(TCC_WRITE[24])) + TO_INT(TCC_WRITE[25])) + TO_INT(TCC_WRITE[26])) + TO_INT(TCC_WRITE[27])) + TO_INT(TCC_WRITE[28])) + TO_INT(TCC_WRITE[29])) + TO_INT(TCC_WRITE[30])) + TO_INT(TCC_WRITE[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + TO_INT(TCC_ATOMIC[2])) + TO_INT(TCC_ATOMIC[3])) + TO_INT(TCC_ATOMIC[4])) + TO_INT(TCC_ATOMIC[5])) + TO_INT(TCC_ATOMIC[6])) + TO_INT(TCC_ATOMIC[7])) + TO_INT(TCC_ATOMIC[8])) + TO_INT(TCC_ATOMIC[9])) + TO_INT(TCC_ATOMIC[10])) @@ -345,10 +345,10 @@ Panel Config: + TO_INT(TCC_ATOMIC[26])) + TO_INT(TCC_ATOMIC[27])) + TO_INT(TCC_ATOMIC[28])) + TO_INT(TCC_ATOMIC[29])) + TO_INT(TCC_ATOMIC[30])) + TO_INT(TCC_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + TO_INT(TCC_EA_RDREQ[2])) + TO_INT(TCC_EA_RDREQ[3])) + TO_INT(TCC_EA_RDREQ[4])) + TO_INT(TCC_EA_RDREQ[5])) + TO_INT(TCC_EA_RDREQ[6])) + TO_INT(TCC_EA_RDREQ[7])) + TO_INT(TCC_EA_RDREQ[8])) + TO_INT(TCC_EA_RDREQ[9])) + TO_INT(TCC_EA_RDREQ[10])) @@ -396,10 +396,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ[26])) + TO_INT(TCC_EA_RDREQ[27])) + TO_INT(TCC_EA_RDREQ[28])) + TO_INT(TCC_EA_RDREQ[29])) + TO_INT(TCC_EA_RDREQ[30])) + TO_INT(TCC_EA_RDREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + TO_INT(TCC_EA_WRREQ[2])) + TO_INT(TCC_EA_WRREQ[3])) + TO_INT(TCC_EA_WRREQ[4])) + TO_INT(TCC_EA_WRREQ[5])) + TO_INT(TCC_EA_WRREQ[6])) + TO_INT(TCC_EA_WRREQ[7])) + TO_INT(TCC_EA_WRREQ[8])) + TO_INT(TCC_EA_WRREQ[9])) + TO_INT(TCC_EA_WRREQ[10])) @@ -447,10 +447,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ[26])) + TO_INT(TCC_EA_WRREQ[27])) + TO_INT(TCC_EA_WRREQ[28])) + TO_INT(TCC_EA_WRREQ[29])) + TO_INT(TCC_EA_WRREQ[30])) + TO_INT(TCC_EA_WRREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + TO_INT(TCC_EA_ATOMIC[2])) + TO_INT(TCC_EA_ATOMIC[3])) + TO_INT(TCC_EA_ATOMIC[4])) + TO_INT(TCC_EA_ATOMIC[5])) + TO_INT(TCC_EA_ATOMIC[6])) + TO_INT(TCC_EA_ATOMIC[7])) + TO_INT(TCC_EA_ATOMIC[8])) + TO_INT(TCC_EA_ATOMIC[9])) + TO_INT(TCC_EA_ATOMIC[10])) @@ -498,10 +498,10 @@ Panel Config: + TO_INT(TCC_EA_ATOMIC[26])) + TO_INT(TCC_EA_ATOMIC[27])) + TO_INT(TCC_EA_ATOMIC[28])) + TO_INT(TCC_EA_ATOMIC[29])) + TO_INT(TCC_EA_ATOMIC[30])) + TO_INT(TCC_EA_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + TCC_EA_RDREQ_LEVEL[2]) + TCC_EA_RDREQ_LEVEL[3]) + TCC_EA_RDREQ_LEVEL[4]) + TCC_EA_RDREQ_LEVEL[5]) + TCC_EA_RDREQ_LEVEL[6]) + TCC_EA_RDREQ_LEVEL[7]) + TCC_EA_RDREQ_LEVEL[8]) + TCC_EA_RDREQ_LEVEL[9]) + TCC_EA_RDREQ_LEVEL[10]) @@ -613,10 +613,10 @@ Panel Config: + TCC_EA_RDREQ[21]) + TCC_EA_RDREQ[22]) + TCC_EA_RDREQ[23]) + TCC_EA_RDREQ[24]) + TCC_EA_RDREQ[25]) + TCC_EA_RDREQ[26]) + TCC_EA_RDREQ[27]) + TCC_EA_RDREQ[28]) + TCC_EA_RDREQ[29]) + TCC_EA_RDREQ[30]) + TCC_EA_RDREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Write Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + TCC_EA_WRREQ_LEVEL[2]) + TCC_EA_WRREQ_LEVEL[3]) + TCC_EA_WRREQ_LEVEL[4]) + TCC_EA_WRREQ_LEVEL[5]) + TCC_EA_WRREQ_LEVEL[6]) + TCC_EA_WRREQ_LEVEL[7]) + TCC_EA_WRREQ_LEVEL[8]) + TCC_EA_WRREQ_LEVEL[9]) + TCC_EA_WRREQ_LEVEL[10]) @@ -728,10 +728,10 @@ Panel Config: + TCC_EA_WRREQ[21]) + TCC_EA_WRREQ[22]) + TCC_EA_WRREQ[23]) + TCC_EA_WRREQ[24]) + TCC_EA_WRREQ[25]) + TCC_EA_WRREQ[26]) + TCC_EA_WRREQ[27]) + TCC_EA_WRREQ[28]) + TCC_EA_WRREQ[29]) + TCC_EA_WRREQ[30]) + TCC_EA_WRREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Atomic Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + TCC_EA_ATOMIC_LEVEL[2]) + TCC_EA_ATOMIC_LEVEL[3]) + TCC_EA_ATOMIC_LEVEL[4]) + TCC_EA_ATOMIC_LEVEL[5]) + TCC_EA_ATOMIC_LEVEL[6]) + TCC_EA_ATOMIC_LEVEL[7]) + TCC_EA_ATOMIC_LEVEL[8]) + TCC_EA_ATOMIC_LEVEL[9]) + TCC_EA_ATOMIC_LEVEL[10]) @@ -847,56 +847,56 @@ Panel Config: + TCC_EA_ATOMIC[25]) + TCC_EA_ATOMIC[26]) + TCC_EA_ATOMIC[27]) + TCC_EA_ATOMIC[28]) + TCC_EA_ATOMIC[29]) + TCC_EA_ATOMIC[30]) + TCC_EA_ATOMIC[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Read Stall (IO): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (GMI): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (DRAM): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (IO): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (GMI): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (DRAM): - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Starve: - mean: None # No perf counter + avg: None # No perf counter std dev: None # No perf counter min: None # No perf counter max: None # No perf counter - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: - metric_table: id: 1802 diff --git a/src/omniperf_analyze/configs/gfx908/1300_instruction-cache.yaml b/src/omniperf_analyze/configs/gfx908/1300_instruction-cache.yaml index 361cb9ae2..05dc75980 100644 --- a/src/omniperf_analyze/configs/gfx908/1300_instruction-cache.yaml +++ b/src/omniperf_analyze/configs/gfx908/1300_instruction-cache.yaml @@ -38,38 +38,38 @@ Panel Config: title: Instruction Cache Accesses header: metric: L1I Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_ICACHE_REQ / $denom)) + avg: AVG((SQC_ICACHE_REQ / $denom)) min: MIN((SQC_ICACHE_REQ / $denom)) max: MAX((SQC_ICACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_ICACHE_HITS / $denom)) + avg: AVG((SQC_ICACHE_HITS / $denom)) min: MIN((SQC_ICACHE_HITS / $denom)) max: MAX((SQC_ICACHE_HITS / $denom)) unit: (Hits + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_ICACHE_MISSES / $denom)) + avg: AVG((SQC_ICACHE_MISSES / $denom)) min: MIN((SQC_ICACHE_MISSES / $denom)) max: MAX((SQC_ICACHE_MISSES / $denom)) unit: (Misses + $normUnit) tips: Misses - Duplicated: - mean: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_ICACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: Cache Hit: - mean: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) diff --git a/src/omniperf_analyze/configs/gfx908/1400_constant-cache.yaml b/src/omniperf_analyze/configs/gfx908/1400_constant-cache.yaml index eec636b38..563caad13 100644 --- a/src/omniperf_analyze/configs/gfx908/1400_constant-cache.yaml +++ b/src/omniperf_analyze/configs/gfx908/1400_constant-cache.yaml @@ -39,38 +39,38 @@ Panel Config: title: Scalar L1D Cache Accesses header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_DCACHE_REQ / $denom)) + avg: AVG((SQC_DCACHE_REQ / $denom)) min: MIN((SQC_DCACHE_REQ / $denom)) max: MAX((SQC_DCACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_DCACHE_HITS / $denom)) + avg: AVG((SQC_DCACHE_HITS / $denom)) min: MIN((SQC_DCACHE_HITS / $denom)) max: MAX((SQC_DCACHE_HITS / $denom)) unit: (Req + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_DCACHE_MISSES / $denom)) + avg: AVG((SQC_DCACHE_MISSES / $denom)) min: MIN((SQC_DCACHE_MISSES / $denom)) max: MAX((SQC_DCACHE_MISSES / $denom)) unit: (Req + $normUnit) tips: Misses- Duplicated: - mean: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_DCACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: Cache Hit: - mean: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) @@ -82,7 +82,7 @@ Panel Config: unit: pct tips: Read Req (Total): - mean: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) @@ -91,37 +91,37 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_DCACHE_ATOMIC / $denom)) + avg: AVG((SQC_DCACHE_ATOMIC / $denom)) min: MIN((SQC_DCACHE_ATOMIC / $denom)) max: MAX((SQC_DCACHE_ATOMIC / $denom)) unit: (Req + $normUnit) tips: Read Req (1 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_1 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_1 / $denom)) unit: (Req + $normUnit) tips: Read Req (2 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_2 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_2 / $denom)) unit: (Req + $normUnit) tips: Read Req (4 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_4 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_4 / $denom)) unit: (Req + $normUnit) tips: Read Req (8 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_8 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_8 / $denom)) unit: (Req + $normUnit) tips: Read Req (16 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_16 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_16 / $denom)) unit: (Req + $normUnit) @@ -132,32 +132,32 @@ Panel Config: title: Scalar L1D Cache - L2 Interface header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Read Req: - mean: AVG((SQC_TC_DATA_READ_REQ / $denom)) + avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) max: MAX((SQC_TC_DATA_READ_REQ / $denom)) unit: (Req + $normUnit) tips: Write Req: - mean: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) + avg: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) min: MIN((SQC_TC_DATA_WRITE_REQ / $denom)) max: MAX((SQC_TC_DATA_WRITE_REQ / $denom)) unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) + avg: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) min: MIN((SQC_TC_DATA_ATOMIC_REQ / $denom)) max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: Stall: - mean: AVG((SQC_TC_STALL / $denom)) + avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) unit: (Cycles + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml b/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml index 22efba955..cac92b1f2 100644 --- a/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml +++ b/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml @@ -50,14 +50,14 @@ Panel Config: title: L1D Cache Stalls header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Stalled on L2 Data: - mean: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -66,7 +66,7 @@ Panel Config: unit: pct tips: Stalled on L2 Req: - mean: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -75,7 +75,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Read): - mean: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -84,7 +84,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Write): - mean: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -93,7 +93,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Atomic): - mean: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -363,20 +363,20 @@ Panel Config: title: L1D Addr Translation header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max units: Units tips: Tips metric: Req: - mean: AVG((TCP_UTCL1_REQUEST_sum / $denom)) + avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) units: (Req + $normUnit) tips: Hit Ratio: - mean: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) @@ -385,19 +385,19 @@ Panel Config: units: pct tips: Hits: - mean: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) units: (Hits + $normUnit) tips: Misses (Translation): - mean: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) units: (Misses + $normUnit) tips: Misses (Permission): - mean: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) units: (Misses + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx908/1800_L2_cache_per_channel.yaml b/src/omniperf_analyze/configs/gfx908/1800_L2_cache_per_channel.yaml index 3acee5740..45f8abb41 100644 --- a/src/omniperf_analyze/configs/gfx908/1800_L2_cache_per_channel.yaml +++ b/src/omniperf_analyze/configs/gfx908/1800_L2_cache_per_channel.yaml @@ -13,15 +13,15 @@ Panel Config: title: Aggregate Stats (All 32 channels) header: metric: Metric - mean: Mean + avg: Avg std dev: Std Dev min: Min max: Max - units: Units + unit: Unit tips: Tips metric: L2 Cache Hit Rate: - mean: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + avg: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + (100 * TCC_HIT[2])) + (100 * TCC_HIT[3])) + (100 * TCC_HIT[4])) + (100 * TCC_HIT[5])) + (100 * TCC_HIT[6])) + (100 * TCC_HIT[7])) + (100 * TCC_HIT[8])) + (100 * TCC_HIT[9])) + (100 * TCC_HIT[10])) + (100 * TCC_HIT[11])) + (100 @@ -165,10 +165,10 @@ Panel Config: + TCC_HIT[25])) + (TCC_MISS[26] + TCC_HIT[26])) + (TCC_MISS[27] + TCC_HIT[27])) + (TCC_MISS[28] + TCC_HIT[28])) + (TCC_MISS[28] + TCC_HIT[29])) + (TCC_MISS[30] + TCC_HIT[30])) + (TCC_MISS[31] + TCC_HIT[31])) != 0) else None)) - units: pct + unit: pct tips: Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + TO_INT(TCC_REQ[2])) + TO_INT(TCC_REQ[3])) + TO_INT(TCC_REQ[4])) + TO_INT(TCC_REQ[5])) + TO_INT(TCC_REQ[6])) + TO_INT(TCC_REQ[7])) + TO_INT(TCC_REQ[8])) + TO_INT(TCC_REQ[9])) + TO_INT(TCC_REQ[10])) + TO_INT(TCC_REQ[11])) + TO_INT(TCC_REQ[12])) + TO_INT(TCC_REQ[13])) @@ -204,10 +204,10 @@ Panel Config: + TO_INT(TCC_REQ[22])) + TO_INT(TCC_REQ[23])) + TO_INT(TCC_REQ[24])) + TO_INT(TCC_REQ[25])) + TO_INT(TCC_REQ[26])) + TO_INT(TCC_REQ[27])) + TO_INT(TCC_REQ[28])) + TO_INT(TCC_REQ[29])) + TO_INT(TCC_REQ[30])) + TO_INT(TCC_REQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + TO_INT(TCC_READ[2])) + TO_INT(TCC_READ[3])) + TO_INT(TCC_READ[4])) + TO_INT(TCC_READ[5])) + TO_INT(TCC_READ[6])) + TO_INT(TCC_READ[7])) + TO_INT(TCC_READ[8])) + TO_INT(TCC_READ[9])) + TO_INT(TCC_READ[10])) + TO_INT(TCC_READ[11])) + TO_INT(TCC_READ[12])) + @@ -247,10 +247,10 @@ Panel Config: + TO_INT(TCC_READ[24])) + TO_INT(TCC_READ[25])) + TO_INT(TCC_READ[26])) + TO_INT(TCC_READ[27])) + TO_INT(TCC_READ[28])) + TO_INT(TCC_READ[29])) + TO_INT(TCC_READ[30])) + TO_INT(TCC_READ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + TO_INT(TCC_WRITE[2])) + TO_INT(TCC_WRITE[3])) + TO_INT(TCC_WRITE[4])) + TO_INT(TCC_WRITE[5])) + TO_INT(TCC_WRITE[6])) + TO_INT(TCC_WRITE[7])) + TO_INT(TCC_WRITE[8])) + TO_INT(TCC_WRITE[9])) + TO_INT(TCC_WRITE[10])) + TO_INT(TCC_WRITE[11])) @@ -294,10 +294,10 @@ Panel Config: + TO_INT(TCC_WRITE[24])) + TO_INT(TCC_WRITE[25])) + TO_INT(TCC_WRITE[26])) + TO_INT(TCC_WRITE[27])) + TO_INT(TCC_WRITE[28])) + TO_INT(TCC_WRITE[29])) + TO_INT(TCC_WRITE[30])) + TO_INT(TCC_WRITE[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + TO_INT(TCC_ATOMIC[2])) + TO_INT(TCC_ATOMIC[3])) + TO_INT(TCC_ATOMIC[4])) + TO_INT(TCC_ATOMIC[5])) + TO_INT(TCC_ATOMIC[6])) + TO_INT(TCC_ATOMIC[7])) + TO_INT(TCC_ATOMIC[8])) + TO_INT(TCC_ATOMIC[9])) + TO_INT(TCC_ATOMIC[10])) @@ -345,10 +345,10 @@ Panel Config: + TO_INT(TCC_ATOMIC[26])) + TO_INT(TCC_ATOMIC[27])) + TO_INT(TCC_ATOMIC[28])) + TO_INT(TCC_ATOMIC[29])) + TO_INT(TCC_ATOMIC[30])) + TO_INT(TCC_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + TO_INT(TCC_EA_RDREQ[2])) + TO_INT(TCC_EA_RDREQ[3])) + TO_INT(TCC_EA_RDREQ[4])) + TO_INT(TCC_EA_RDREQ[5])) + TO_INT(TCC_EA_RDREQ[6])) + TO_INT(TCC_EA_RDREQ[7])) + TO_INT(TCC_EA_RDREQ[8])) + TO_INT(TCC_EA_RDREQ[9])) + TO_INT(TCC_EA_RDREQ[10])) @@ -396,10 +396,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ[26])) + TO_INT(TCC_EA_RDREQ[27])) + TO_INT(TCC_EA_RDREQ[28])) + TO_INT(TCC_EA_RDREQ[29])) + TO_INT(TCC_EA_RDREQ[30])) + TO_INT(TCC_EA_RDREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + TO_INT(TCC_EA_WRREQ[2])) + TO_INT(TCC_EA_WRREQ[3])) + TO_INT(TCC_EA_WRREQ[4])) + TO_INT(TCC_EA_WRREQ[5])) + TO_INT(TCC_EA_WRREQ[6])) + TO_INT(TCC_EA_WRREQ[7])) + TO_INT(TCC_EA_WRREQ[8])) + TO_INT(TCC_EA_WRREQ[9])) + TO_INT(TCC_EA_WRREQ[10])) @@ -447,10 +447,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ[26])) + TO_INT(TCC_EA_WRREQ[27])) + TO_INT(TCC_EA_WRREQ[28])) + TO_INT(TCC_EA_WRREQ[29])) + TO_INT(TCC_EA_WRREQ[30])) + TO_INT(TCC_EA_WRREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + TO_INT(TCC_EA_ATOMIC[2])) + TO_INT(TCC_EA_ATOMIC[3])) + TO_INT(TCC_EA_ATOMIC[4])) + TO_INT(TCC_EA_ATOMIC[5])) + TO_INT(TCC_EA_ATOMIC[6])) + TO_INT(TCC_EA_ATOMIC[7])) + TO_INT(TCC_EA_ATOMIC[8])) + TO_INT(TCC_EA_ATOMIC[9])) + TO_INT(TCC_EA_ATOMIC[10])) @@ -498,10 +498,10 @@ Panel Config: + TO_INT(TCC_EA_ATOMIC[26])) + TO_INT(TCC_EA_ATOMIC[27])) + TO_INT(TCC_EA_ATOMIC[28])) + TO_INT(TCC_EA_ATOMIC[29])) + TO_INT(TCC_EA_ATOMIC[30])) + TO_INT(TCC_EA_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + TCC_EA_RDREQ_LEVEL[2]) + TCC_EA_RDREQ_LEVEL[3]) + TCC_EA_RDREQ_LEVEL[4]) + TCC_EA_RDREQ_LEVEL[5]) + TCC_EA_RDREQ_LEVEL[6]) + TCC_EA_RDREQ_LEVEL[7]) + TCC_EA_RDREQ_LEVEL[8]) + TCC_EA_RDREQ_LEVEL[9]) + TCC_EA_RDREQ_LEVEL[10]) @@ -613,10 +613,10 @@ Panel Config: + TCC_EA_RDREQ[21]) + TCC_EA_RDREQ[22]) + TCC_EA_RDREQ[23]) + TCC_EA_RDREQ[24]) + TCC_EA_RDREQ[25]) + TCC_EA_RDREQ[26]) + TCC_EA_RDREQ[27]) + TCC_EA_RDREQ[28]) + TCC_EA_RDREQ[29]) + TCC_EA_RDREQ[30]) + TCC_EA_RDREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Write Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + TCC_EA_WRREQ_LEVEL[2]) + TCC_EA_WRREQ_LEVEL[3]) + TCC_EA_WRREQ_LEVEL[4]) + TCC_EA_WRREQ_LEVEL[5]) + TCC_EA_WRREQ_LEVEL[6]) + TCC_EA_WRREQ_LEVEL[7]) + TCC_EA_WRREQ_LEVEL[8]) + TCC_EA_WRREQ_LEVEL[9]) + TCC_EA_WRREQ_LEVEL[10]) @@ -728,10 +728,10 @@ Panel Config: + TCC_EA_WRREQ[21]) + TCC_EA_WRREQ[22]) + TCC_EA_WRREQ[23]) + TCC_EA_WRREQ[24]) + TCC_EA_WRREQ[25]) + TCC_EA_WRREQ[26]) + TCC_EA_WRREQ[27]) + TCC_EA_WRREQ[28]) + TCC_EA_WRREQ[29]) + TCC_EA_WRREQ[30]) + TCC_EA_WRREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Atomic Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + TCC_EA_ATOMIC_LEVEL[2]) + TCC_EA_ATOMIC_LEVEL[3]) + TCC_EA_ATOMIC_LEVEL[4]) + TCC_EA_ATOMIC_LEVEL[5]) + TCC_EA_ATOMIC_LEVEL[6]) + TCC_EA_ATOMIC_LEVEL[7]) + TCC_EA_ATOMIC_LEVEL[8]) + TCC_EA_ATOMIC_LEVEL[9]) + TCC_EA_ATOMIC_LEVEL[10]) @@ -847,10 +847,10 @@ Panel Config: + TCC_EA_ATOMIC[25]) + TCC_EA_ATOMIC[26]) + TCC_EA_ATOMIC[27]) + TCC_EA_ATOMIC[28]) + TCC_EA_ATOMIC[29]) + TCC_EA_ATOMIC[30]) + TCC_EA_ATOMIC[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Read Stall (IO): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[6])) @@ -918,10 +918,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (GMI): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[6])) @@ -989,10 +989,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (DRAM): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[6])) @@ -1060,10 +1060,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (IO): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[6])) @@ -1131,10 +1131,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (GMI): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[6])) @@ -1202,10 +1202,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (DRAM): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[6])) @@ -1273,10 +1273,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Starve: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[0]) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[1])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[2])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[3])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[4])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[5])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[6])) @@ -1344,7 +1344,7 @@ Panel Config: + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[27])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[28])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[29])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[30])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: - metric_table: id: 1802 diff --git a/src/omniperf_analyze/configs/gfx90a/1300_instruction-cache.yaml b/src/omniperf_analyze/configs/gfx90a/1300_instruction-cache.yaml index c287c13bd..329a7edba 100644 --- a/src/omniperf_analyze/configs/gfx90a/1300_instruction-cache.yaml +++ b/src/omniperf_analyze/configs/gfx90a/1300_instruction-cache.yaml @@ -38,38 +38,38 @@ Panel Config: title: Instruction Cache Accesses header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_ICACHE_REQ / $denom)) + avg: AVG((SQC_ICACHE_REQ / $denom)) min: MIN((SQC_ICACHE_REQ / $denom)) max: MAX((SQC_ICACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_ICACHE_HITS / $denom)) + avg: AVG((SQC_ICACHE_HITS / $denom)) min: MIN((SQC_ICACHE_HITS / $denom)) max: MAX((SQC_ICACHE_HITS / $denom)) unit: (Hits + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_ICACHE_MISSES / $denom)) + avg: AVG((SQC_ICACHE_MISSES / $denom)) min: MIN((SQC_ICACHE_MISSES / $denom)) max: MAX((SQC_ICACHE_MISSES / $denom)) unit: (Misses + $normUnit) tips: Misses - Duplicated: - mean: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_ICACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_ICACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: Cache Hit: - mean: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) diff --git a/src/omniperf_analyze/configs/gfx90a/1400_constant-cache.yaml b/src/omniperf_analyze/configs/gfx90a/1400_constant-cache.yaml index eec636b38..563caad13 100644 --- a/src/omniperf_analyze/configs/gfx90a/1400_constant-cache.yaml +++ b/src/omniperf_analyze/configs/gfx90a/1400_constant-cache.yaml @@ -39,38 +39,38 @@ Panel Config: title: Scalar L1D Cache Accesses header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Req: - mean: AVG((SQC_DCACHE_REQ / $denom)) + avg: AVG((SQC_DCACHE_REQ / $denom)) min: MIN((SQC_DCACHE_REQ / $denom)) max: MAX((SQC_DCACHE_REQ / $denom)) unit: (Req + $normUnit) tips: Hits: - mean: AVG((SQC_DCACHE_HITS / $denom)) + avg: AVG((SQC_DCACHE_HITS / $denom)) min: MIN((SQC_DCACHE_HITS / $denom)) max: MAX((SQC_DCACHE_HITS / $denom)) unit: (Req + $normUnit) tips: Misses - Non Duplicated: - mean: AVG((SQC_DCACHE_MISSES / $denom)) + avg: AVG((SQC_DCACHE_MISSES / $denom)) min: MIN((SQC_DCACHE_MISSES / $denom)) max: MAX((SQC_DCACHE_MISSES / $denom)) unit: (Req + $normUnit) tips: Misses- Duplicated: - mean: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) + avg: AVG((SQC_DCACHE_MISSES_DUPLICATE / $denom)) min: MIN((SQC_DCACHE_MISSES_DUPLICATE / $denom)) max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: Cache Hit: - mean: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) @@ -82,7 +82,7 @@ Panel Config: unit: pct tips: Read Req (Total): - mean: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) @@ -91,37 +91,37 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_DCACHE_ATOMIC / $denom)) + avg: AVG((SQC_DCACHE_ATOMIC / $denom)) min: MIN((SQC_DCACHE_ATOMIC / $denom)) max: MAX((SQC_DCACHE_ATOMIC / $denom)) unit: (Req + $normUnit) tips: Read Req (1 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_1 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_1 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_1 / $denom)) unit: (Req + $normUnit) tips: Read Req (2 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_2 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_2 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_2 / $denom)) unit: (Req + $normUnit) tips: Read Req (4 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_4 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_4 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_4 / $denom)) unit: (Req + $normUnit) tips: Read Req (8 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_8 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_8 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_8 / $denom)) unit: (Req + $normUnit) tips: Read Req (16 DWord): - mean: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) + avg: AVG((SQC_DCACHE_REQ_READ_16 / $denom)) min: MIN((SQC_DCACHE_REQ_READ_16 / $denom)) max: MAX((SQC_DCACHE_REQ_READ_16 / $denom)) unit: (Req + $normUnit) @@ -132,32 +132,32 @@ Panel Config: title: Scalar L1D Cache - L2 Interface header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: Read Req: - mean: AVG((SQC_TC_DATA_READ_REQ / $denom)) + avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) max: MAX((SQC_TC_DATA_READ_REQ / $denom)) unit: (Req + $normUnit) tips: Write Req: - mean: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) + avg: AVG((SQC_TC_DATA_WRITE_REQ / $denom)) min: MIN((SQC_TC_DATA_WRITE_REQ / $denom)) max: MAX((SQC_TC_DATA_WRITE_REQ / $denom)) unit: (Req + $normUnit) tips: Atomic Req: - mean: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) + avg: AVG((SQC_TC_DATA_ATOMIC_REQ / $denom)) min: MIN((SQC_TC_DATA_ATOMIC_REQ / $denom)) max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: Stall: - mean: AVG((SQC_TC_STALL / $denom)) + avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) unit: (Cycles + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml b/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml index 28450f2ae..d9291de21 100644 --- a/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml +++ b/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml @@ -50,14 +50,14 @@ Panel Config: title: L1D Cache Stalls header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max unit: unit tips: Tips metric: Stalled on L2 Data: - mean: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -66,7 +66,7 @@ Panel Config: unit: pct tips: Stalled on L2 Req: - mean: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -75,7 +75,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Read): - mean: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -84,7 +84,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Write): - mean: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -93,7 +93,7 @@ Panel Config: unit: pct tips: Tag RAM Stall (Atomic): - mean: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum != 0) else None)) @@ -363,20 +363,20 @@ Panel Config: title: L1D Addr Translation header: metric: Metric - mean: Mean + avg: Avg min: Min max: Max units: Units tips: Tips metric: Req: - mean: AVG((TCP_UTCL1_REQUEST_sum / $denom)) + avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) units: (Req + $normUnit) tips: Hit Ratio: - mean: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) @@ -385,19 +385,19 @@ Panel Config: units: pct tips: Hits: - mean: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) units: (Hits + $normUnit) tips: Misses (Translation): - mean: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) units: (Misses + $normUnit) tips: Misses (Permission): - mean: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) + avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) units: (Misses + $normUnit) diff --git a/src/omniperf_analyze/configs/gfx90a/1800_L2_cache_per_channel.yaml b/src/omniperf_analyze/configs/gfx90a/1800_L2_cache_per_channel.yaml index f13647847..c6d93aa61 100644 --- a/src/omniperf_analyze/configs/gfx90a/1800_L2_cache_per_channel.yaml +++ b/src/omniperf_analyze/configs/gfx90a/1800_L2_cache_per_channel.yaml @@ -13,15 +13,15 @@ Panel Config: title: Aggregate Stats (All 32 channels) header: metric: Metric - mean: Mean + avg: Avg std dev: Std Dev min: Min max: Max - units: Units + unit: Unit tips: Tips metric: L2 Cache Hit Rate: - mean: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + avg: AVG(((((((((((((((((((((((((((((((((((100 * TCC_HIT[0]) + (100 * TCC_HIT[1])) + (100 * TCC_HIT[2])) + (100 * TCC_HIT[3])) + (100 * TCC_HIT[4])) + (100 * TCC_HIT[5])) + (100 * TCC_HIT[6])) + (100 * TCC_HIT[7])) + (100 * TCC_HIT[8])) + (100 * TCC_HIT[9])) + (100 * TCC_HIT[10])) + (100 * TCC_HIT[11])) + (100 @@ -165,10 +165,10 @@ Panel Config: + TCC_HIT[25])) + (TCC_MISS[26] + TCC_HIT[26])) + (TCC_MISS[27] + TCC_HIT[27])) + (TCC_MISS[28] + TCC_HIT[28])) + (TCC_MISS[28] + TCC_HIT[29])) + (TCC_MISS[30] + TCC_HIT[30])) + (TCC_MISS[31] + TCC_HIT[31])) != 0) else None)) - units: pct + unit: pct tips: Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_REQ[0]) + TO_INT(TCC_REQ[1])) + TO_INT(TCC_REQ[2])) + TO_INT(TCC_REQ[3])) + TO_INT(TCC_REQ[4])) + TO_INT(TCC_REQ[5])) + TO_INT(TCC_REQ[6])) + TO_INT(TCC_REQ[7])) + TO_INT(TCC_REQ[8])) + TO_INT(TCC_REQ[9])) + TO_INT(TCC_REQ[10])) + TO_INT(TCC_REQ[11])) + TO_INT(TCC_REQ[12])) + TO_INT(TCC_REQ[13])) @@ -204,10 +204,10 @@ Panel Config: + TO_INT(TCC_REQ[22])) + TO_INT(TCC_REQ[23])) + TO_INT(TCC_REQ[24])) + TO_INT(TCC_REQ[25])) + TO_INT(TCC_REQ[26])) + TO_INT(TCC_REQ[27])) + TO_INT(TCC_REQ[28])) + TO_INT(TCC_REQ[29])) + TO_INT(TCC_REQ[30])) + TO_INT(TCC_REQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_READ[0]) + TO_INT(TCC_READ[1])) + TO_INT(TCC_READ[2])) + TO_INT(TCC_READ[3])) + TO_INT(TCC_READ[4])) + TO_INT(TCC_READ[5])) + TO_INT(TCC_READ[6])) + TO_INT(TCC_READ[7])) + TO_INT(TCC_READ[8])) + TO_INT(TCC_READ[9])) + TO_INT(TCC_READ[10])) + TO_INT(TCC_READ[11])) + TO_INT(TCC_READ[12])) + @@ -247,10 +247,10 @@ Panel Config: + TO_INT(TCC_READ[24])) + TO_INT(TCC_READ[25])) + TO_INT(TCC_READ[26])) + TO_INT(TCC_READ[27])) + TO_INT(TCC_READ[28])) + TO_INT(TCC_READ[29])) + TO_INT(TCC_READ[30])) + TO_INT(TCC_READ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_WRITE[0]) + TO_INT(TCC_WRITE[1])) + TO_INT(TCC_WRITE[2])) + TO_INT(TCC_WRITE[3])) + TO_INT(TCC_WRITE[4])) + TO_INT(TCC_WRITE[5])) + TO_INT(TCC_WRITE[6])) + TO_INT(TCC_WRITE[7])) + TO_INT(TCC_WRITE[8])) + TO_INT(TCC_WRITE[9])) + TO_INT(TCC_WRITE[10])) + TO_INT(TCC_WRITE[11])) @@ -294,10 +294,10 @@ Panel Config: + TO_INT(TCC_WRITE[24])) + TO_INT(TCC_WRITE[25])) + TO_INT(TCC_WRITE[26])) + TO_INT(TCC_WRITE[27])) + TO_INT(TCC_WRITE[28])) + TO_INT(TCC_WRITE[29])) + TO_INT(TCC_WRITE[30])) + TO_INT(TCC_WRITE[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L1 - L2 Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_ATOMIC[0]) + TO_INT(TCC_ATOMIC[1])) + TO_INT(TCC_ATOMIC[2])) + TO_INT(TCC_ATOMIC[3])) + TO_INT(TCC_ATOMIC[4])) + TO_INT(TCC_ATOMIC[5])) + TO_INT(TCC_ATOMIC[6])) + TO_INT(TCC_ATOMIC[7])) + TO_INT(TCC_ATOMIC[8])) + TO_INT(TCC_ATOMIC[9])) + TO_INT(TCC_ATOMIC[10])) @@ -345,10 +345,10 @@ Panel Config: + TO_INT(TCC_ATOMIC[26])) + TO_INT(TCC_ATOMIC[27])) + TO_INT(TCC_ATOMIC[28])) + TO_INT(TCC_ATOMIC[29])) + TO_INT(TCC_ATOMIC[30])) + TO_INT(TCC_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ[0]) + TO_INT(TCC_EA_RDREQ[1])) + TO_INT(TCC_EA_RDREQ[2])) + TO_INT(TCC_EA_RDREQ[3])) + TO_INT(TCC_EA_RDREQ[4])) + TO_INT(TCC_EA_RDREQ[5])) + TO_INT(TCC_EA_RDREQ[6])) + TO_INT(TCC_EA_RDREQ[7])) + TO_INT(TCC_EA_RDREQ[8])) + TO_INT(TCC_EA_RDREQ[9])) + TO_INT(TCC_EA_RDREQ[10])) @@ -396,10 +396,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ[26])) + TO_INT(TCC_EA_RDREQ[27])) + TO_INT(TCC_EA_RDREQ[28])) + TO_INT(TCC_EA_RDREQ[29])) + TO_INT(TCC_EA_RDREQ[30])) + TO_INT(TCC_EA_RDREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Write Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ[0]) + TO_INT(TCC_EA_WRREQ[1])) + TO_INT(TCC_EA_WRREQ[2])) + TO_INT(TCC_EA_WRREQ[3])) + TO_INT(TCC_EA_WRREQ[4])) + TO_INT(TCC_EA_WRREQ[5])) + TO_INT(TCC_EA_WRREQ[6])) + TO_INT(TCC_EA_WRREQ[7])) + TO_INT(TCC_EA_WRREQ[8])) + TO_INT(TCC_EA_WRREQ[9])) + TO_INT(TCC_EA_WRREQ[10])) @@ -447,10 +447,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ[26])) + TO_INT(TCC_EA_WRREQ[27])) + TO_INT(TCC_EA_WRREQ[28])) + TO_INT(TCC_EA_WRREQ[29])) + TO_INT(TCC_EA_WRREQ[30])) + TO_INT(TCC_EA_WRREQ[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Atomic Req: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_ATOMIC[0]) + TO_INT(TCC_EA_ATOMIC[1])) + TO_INT(TCC_EA_ATOMIC[2])) + TO_INT(TCC_EA_ATOMIC[3])) + TO_INT(TCC_EA_ATOMIC[4])) + TO_INT(TCC_EA_ATOMIC[5])) + TO_INT(TCC_EA_ATOMIC[6])) + TO_INT(TCC_EA_ATOMIC[7])) + TO_INT(TCC_EA_ATOMIC[8])) + TO_INT(TCC_EA_ATOMIC[9])) + TO_INT(TCC_EA_ATOMIC[10])) @@ -498,10 +498,10 @@ Panel Config: + TO_INT(TCC_EA_ATOMIC[26])) + TO_INT(TCC_EA_ATOMIC[27])) + TO_INT(TCC_EA_ATOMIC[28])) + TO_INT(TCC_EA_ATOMIC[29])) + TO_INT(TCC_EA_ATOMIC[30])) + TO_INT(TCC_EA_ATOMIC[31])) / 32) / $denom)) - units: (Req + $normUnit) + unit: (Req + $normUnit) tips: L2 - EA Read Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_RDREQ_LEVEL[0] + TCC_EA_RDREQ_LEVEL[1]) + TCC_EA_RDREQ_LEVEL[2]) + TCC_EA_RDREQ_LEVEL[3]) + TCC_EA_RDREQ_LEVEL[4]) + TCC_EA_RDREQ_LEVEL[5]) + TCC_EA_RDREQ_LEVEL[6]) + TCC_EA_RDREQ_LEVEL[7]) + TCC_EA_RDREQ_LEVEL[8]) + TCC_EA_RDREQ_LEVEL[9]) + TCC_EA_RDREQ_LEVEL[10]) @@ -613,10 +613,10 @@ Panel Config: + TCC_EA_RDREQ[21]) + TCC_EA_RDREQ[22]) + TCC_EA_RDREQ[23]) + TCC_EA_RDREQ[24]) + TCC_EA_RDREQ[25]) + TCC_EA_RDREQ[26]) + TCC_EA_RDREQ[27]) + TCC_EA_RDREQ[28]) + TCC_EA_RDREQ[29]) + TCC_EA_RDREQ[30]) + TCC_EA_RDREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Write Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_WRREQ_LEVEL[0] + TCC_EA_WRREQ_LEVEL[1]) + TCC_EA_WRREQ_LEVEL[2]) + TCC_EA_WRREQ_LEVEL[3]) + TCC_EA_WRREQ_LEVEL[4]) + TCC_EA_WRREQ_LEVEL[5]) + TCC_EA_WRREQ_LEVEL[6]) + TCC_EA_WRREQ_LEVEL[7]) + TCC_EA_WRREQ_LEVEL[8]) + TCC_EA_WRREQ_LEVEL[9]) + TCC_EA_WRREQ_LEVEL[10]) @@ -728,10 +728,10 @@ Panel Config: + TCC_EA_WRREQ[21]) + TCC_EA_WRREQ[22]) + TCC_EA_WRREQ[23]) + TCC_EA_WRREQ[24]) + TCC_EA_WRREQ[25]) + TCC_EA_WRREQ[26]) + TCC_EA_WRREQ[27]) + TCC_EA_WRREQ[28]) + TCC_EA_WRREQ[29]) + TCC_EA_WRREQ[30]) + TCC_EA_WRREQ[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Atomic Lat: - mean: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + avg: AVG((((((((((((((((((((((((((((((((((TCC_EA_ATOMIC_LEVEL[0] + TCC_EA_ATOMIC_LEVEL[1]) + TCC_EA_ATOMIC_LEVEL[2]) + TCC_EA_ATOMIC_LEVEL[3]) + TCC_EA_ATOMIC_LEVEL[4]) + TCC_EA_ATOMIC_LEVEL[5]) + TCC_EA_ATOMIC_LEVEL[6]) + TCC_EA_ATOMIC_LEVEL[7]) + TCC_EA_ATOMIC_LEVEL[8]) + TCC_EA_ATOMIC_LEVEL[9]) + TCC_EA_ATOMIC_LEVEL[10]) @@ -847,10 +847,10 @@ Panel Config: + TCC_EA_ATOMIC[25]) + TCC_EA_ATOMIC[26]) + TCC_EA_ATOMIC[27]) + TCC_EA_ATOMIC[28]) + TCC_EA_ATOMIC[29]) + TCC_EA_ATOMIC[30]) + TCC_EA_ATOMIC[31]) != 0) else None)) - units: Cycles + unit: Cycles tips: L2 - EA Read Stall (IO): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[6])) @@ -918,10 +918,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (GMI): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[6])) @@ -989,10 +989,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Read Stall (DRAM): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[1])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[2])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[3])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[4])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[5])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[6])) @@ -1060,10 +1060,10 @@ Panel Config: + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[27])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[28])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[29])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[30])) + TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (IO): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[6])) @@ -1131,10 +1131,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (GMI): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[6])) @@ -1202,10 +1202,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Stall (DRAM): - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[1])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[2])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[3])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[4])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[5])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[6])) @@ -1273,10 +1273,10 @@ Panel Config: + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[27])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[28])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[29])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[30])) + TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: L2 - EA Write Starve: - mean: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[0]) + avg: AVG((((((((((((((((((((((((((((((((((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[0]) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[1])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[2])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[3])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[4])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[5])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[6])) @@ -1344,7 +1344,7 @@ Panel Config: + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[27])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[28])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[29])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[30])) + TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[31])) / 32) / $denom)) - units: (Cycles + $normUnit) + unit: (Cycles + $normUnit) tips: - metric_table: id: 1802 diff --git a/src/omniperf_analyze/omniperf_analyze.py b/src/omniperf_analyze/omniperf_analyze.py index 3485d33a5..7168c2494 100644 --- a/src/omniperf_analyze/omniperf_analyze.py +++ b/src/omniperf_analyze/omniperf_analyze.py @@ -178,7 +178,6 @@ def run_gui(args, runs): runs[args.path[0][0]].filter_gpu_ids, runs[args.path[0][0]].filter_dispatch_ids, args.time_unit, - args.max_kernel_num, ) runs[args.path[0][0]].raw_pmc = file_io.create_df_pmc( args.path[0][0], args.verbose @@ -230,7 +229,6 @@ def run_cli(args, runs): runs[d[0]].filter_gpu_ids, runs[d[0]].filter_dispatch_ids, args.time_unit, - args.max_kernel_num, ) runs[d[0]].raw_pmc = file_io.create_df_pmc( d[0], args.verbose @@ -299,14 +297,6 @@ def analyze(args): # Filtering if args.gpu_kernel: for d, gk in zip(args.path, args.gpu_kernel): - for k_idx in gk: - if int(k_idx) >= 10: - print( - "{} is an invalid kernel filter. Must be between 0-9.".format( - k_idx - ) - ) - sys.exit(2) runs[d[0]].filter_kernel_ids = gk if args.gpu_id: if len(args.gpu_id) == 1 and len(args.path) != 1: diff --git a/src/omniperf_analyze/utils/file_io.py b/src/omniperf_analyze/utils/file_io.py index 714d6016c..60850b626 100644 --- a/src/omniperf_analyze/utils/file_io.py +++ b/src/omniperf_analyze/utils/file_io.py @@ -111,7 +111,6 @@ def create_df_kernel_top_stats( filter_gpu_ids, filter_dispatch_ids, time_unit, - max_kernel_num, sortby="sum", ): """ @@ -171,14 +170,9 @@ def create_df_kernel_top_stats( # Sort by total time as default. if sortby == "sum": grouped = grouped.sort_values(by=("Sum" + time_unit_str), ascending=False) - - grouped = grouped.head(max_kernel_num) # Display only the top n results - grouped.to_csv(os.path.join(raw_data_dir, "pmc_kernel_top.csv"), index=False) elif sortby == "kernel": grouped = grouped.sort_values("KernelName") - - grouped = grouped.head(max_kernel_num) # Display only the top n results grouped.to_csv(os.path.join(raw_data_dir, "pmc_kernel_top.csv"), index=False) diff --git a/src/omniperf_analyze/utils/gui.py b/src/omniperf_analyze/utils/gui.py index 4128bf5ad..29fa36db7 100644 --- a/src/omniperf_analyze/utils/gui.py +++ b/src/omniperf_analyze/utils/gui.py @@ -365,7 +365,33 @@ def build_table_chart( if IS_DARK else {}, style_data_conditional=[ - {"if": {"row_index": "odd"}, "backgroundColor": "rgb(60, 60, 60)"} + {"if": {"row_index": "odd"}, "backgroundColor": "rgb(60, 60, 60)"}, + { + "if": {"column_id": "PoP", "filter_query": "{PoP} > 50"}, + "backgroundColor": "#ffa90a", + "color": "white", + }, + { + "if": {"column_id": "PoP", "filter_query": "{PoP} > 80"}, + "backgroundColor": "#ff120a", + "color": "white", + }, + { + "if": { + "column_id": "Avg", + "filter_query": "{Unit} = Pct && {Avg} > 50", + }, + "backgroundColor": "#ffa90a", + "color": "white", + }, + { + "if": { + "column_id": "Avg", + "filter_query": "{Unit} = Pct && {Avg} > 80", + }, + "backgroundColor": "#ff120a", + "color": "white", + }, ] if IS_DARK else [], @@ -440,7 +466,7 @@ def generate_from_filter( print("disp-filter is ", disp_filt) print("kernel-filter is ", kernel_filter) print("gpu-filter is ", gcd_filter) - print("top-n kernel filter is ", top_n_filter, "\n") + print("top-n kernel filter is ", top_n_filt, "\n") base_data[base_run].filter_kernel_ids = kernel_filter base_data[base_run].filter_gpu_ids = gcd_filter base_data[base_run].filter_dispatch_ids = disp_filt @@ -451,7 +477,6 @@ def generate_from_filter( base_data[base_run].filter_gpu_ids, base_data[base_run].filter_dispatch_ids, time_unit, - base_data[base_run].filter_top_n, ) is_gui = True # Only display basic metrics if no filters are applied @@ -484,7 +509,7 @@ def generate_from_filter( div_children.append( get_roofline( path_to_dir, - parser.apply_filters(base_data[base_run], is_gui, debug), + parser.apply_filters(base_data[base_run], path_to_dir, is_gui, debug), verbose, ) ) @@ -512,6 +537,15 @@ def generate_from_filter( if t_type == "raw_csv_table" and "Info" in original_df.keys(): original_df.reset_index(inplace=True) + # Only show top N kernels (as specified in --max-kernel-num) in "Top Stats" section + if ( + t_type == "raw_csv_table" + and table_config["source"] == "pmc_kernel_top.csv" + ): + original_df = original_df.head( + base_data[base_run].filter_top_n + ) + display_columns = original_df.columns.values.tolist().copy() # Remove hidden columns. Better way to do it? for col in HIDDEN_COLUMNS: diff --git a/src/omniperf_analyze/utils/parser.py b/src/omniperf_analyze/utils/parser.py index bff3314b2..ceccb0746 100644 --- a/src/omniperf_analyze/utils/parser.py +++ b/src/omniperf_analyze/utils/parser.py @@ -697,7 +697,7 @@ def eval_metric(dfs, dfs_type, sys_info, soc_spec, raw_pmc_df, debug): # print(tabulate(df, headers='keys', tablefmt='fancy_grid')) -def apply_filters(workload, is_gui, debug): +def apply_filters(workload, dir, is_gui, debug): """ Apply user's filters to the raw_pmc df. """ @@ -726,6 +726,17 @@ def apply_filters(workload, is_gui, debug): if not is_gui: if debug: print("CLI kernel filtering") + + # Verify valid kernel filter + kernels_df = pd.read_csv(os.path.join(dir, "pmc_kernel_top.csv")) + for kernel_id in workload.filter_kernel_ids: + if kernel_id > len(kernels_df["KernelName"]): + print( + "{} is an invalid kernel id. Please enter an id between 0-{}".format( + kernel_id, len(kernels_df["KernelName"]) + ) + ) + sys.exit(1) kernels = [] # NB: mark selected kernels with "*" # Todo: fix it for unaligned comparison @@ -763,11 +774,8 @@ def apply_filters(workload, is_gui, debug): ret_df[schema.pmc_perf_file_prefix]["Index"] > int(m.group(1)) ] else: - ret_df = ret_df.loc[ - ret_df[schema.pmc_perf_file_prefix]["Index"] - .astype(str) - .isin(workload.filter_dispatch_ids) - ] + dispatches = [int(x) for x in workload.filter_dispatch_ids] + ret_df = ret_df.loc[dispatches] if debug: print("~" * 40, "\nraw pmc df info:\n") print(workload.raw_pmc.info()) @@ -812,7 +820,7 @@ def load_table_data(workload, dir, is_gui, debug, verbose, skipKernelTop=False): workload.dfs_type, workload.sys_info.iloc[0], workload.soc_spec, - apply_filters(workload, is_gui, debug), + apply_filters(workload, dir, is_gui, debug), debug, ) diff --git a/src/omniperf_analyze/utils/tty.py b/src/omniperf_analyze/utils/tty.py index d04dc2cb9..0117bf3a6 100644 --- a/src/omniperf_analyze/utils/tty.py +++ b/src/omniperf_analyze/utils/tty.py @@ -172,6 +172,12 @@ def show_all(args, runs, archConfigs, output): p.joinpath(table_id_str.replace(" ", "_") + ".csv"), index=False, ) + # Only show top N kernels (as specified in --max-kernel-num) in "Top Stats" section + if ( + type == "raw_csv_table" + and table_config["source"] == "pmc_kernel_top.csv" + ): + df = df.head(args.max_kernel_num) # NB: # "columnwise: True" is a special attr of a table/df diff --git a/src/parser.py b/src/parser.py index 1a692cc16..5e4c94186 100644 --- a/src/parser.py +++ b/src/parser.py @@ -459,7 +459,7 @@ def parse(my_parser): metavar="", type=int, default=10, - help="\t\tSpecify the maximum number of kernels shown (DEFAULT: 10)", + help='\t\tSpecify the maximum number of kernels shown in "Top Stats" table (DEFAULT: 10)', ) analyze_group.add_argument( "--config-dir", diff --git a/src/utils/csv_processor.py b/src/utils/csv_processor.py index c61407bb6..c4e340670 100644 --- a/src/utils/csv_processor.py +++ b/src/utils/csv_processor.py @@ -59,7 +59,7 @@ def shorten_file(df, level): if original_name in cache: continue - cmd = [llvm_filt, original_name] + cmd = [cpp_filt, original_name] proc = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE @@ -127,15 +127,11 @@ def shorten_file(df, level): # Only shorten if valid shortening level if level < 5: - returnPath = True - rocprof_path = resolve_rocprof(returnPath) - # Given expected rocprof dir format (ie '/opt/rocm-x.x.x/bin/rocprof') navigate to llvm in parent - rocm_dir = os.path.abspath(os.path.join(rocprof_path, os.pardir, os.pardir)) - llvm_filt = os.path.join(rocm_dir, "llvm", "bin", "llvm-cxxfilt") - if not os.path.isfile(llvm_filt): + cpp_filt = os.path.join("/usr", "bin", "c++filt") + if not os.path.isfile(cpp_filt): print( - "Error: Could not resolve llvm-cxxfilt in rocm install: {}".format( - llvm_filt + "Error: Could not resolve c++filt in expected directory: {}".format( + cpp_filt ) ) sys.exit(0) @@ -160,7 +156,6 @@ def parse(args, profileAndExport): host = args.host port = str(args.port) username = args.username - Extractionlvl = args.kernelVerbose if profileAndExport: workload = args.workload + "/" + args.target + "/" @@ -211,10 +206,10 @@ def parse(args, profileAndExport): "db": db, } - return connectionInfo, Extractionlvl + return connectionInfo -def convert_folder(connectionInfo, Extractionlvl): +def convert_folder(connectionInfo): # Test connection connection_str = ( "mongodb://" diff --git a/src/utils/perfagg.py b/src/utils/perfagg.py index 6ec4542a9..c486faccf 100755 --- a/src/utils/perfagg.py +++ b/src/utils/perfagg.py @@ -22,7 +22,7 @@ # SOFTWARE. ##############################################################################el -import sys, os, pathlib, shutil, subprocess, argparse, glob, re +import sys, os, shutil, glob, re import numpy as np import math import warnings diff --git a/tests/test_analyze_commands.py b/tests/test_analyze_commands.py index fb6ebe075..ca2fce525 100644 --- a/tests/test_analyze_commands.py +++ b/tests/test_analyze_commands.py @@ -78,7 +78,8 @@ def test_filter_metrics_mi100(): "--path", "tests/workloads/mixbench/mi100", "-b", - "SQ, LDS", + "SQ", + "LDS", ], ): omniperf.main() @@ -95,7 +96,8 @@ def test_filter_metrics_inv_mi100(): "--path", "tests/workloads/mixbench/mi100", "-b", - "Crash, Test", + "Crash", + "Test", ], ): omniperf.main() @@ -129,11 +131,11 @@ def test_filter_gpu_inv_mi100(): "--path", "tests/workloads/mixbench/mi100", "-k", - "99", + "200", ], ): omniperf.main() - assert e.value.code == 2 + assert e.value.code == 1 def test_filter_dispatch_ids_mi100(): @@ -163,11 +165,11 @@ def test_filter_dispatch_ids_inv_mi100(): "--path", "tests/workloads/mixbench/mi100", "--dispatch", - "99", + "200", ], ): omniperf.main() - assert e.value.code == 0 + assert e.value.code == 1 def test_filter_gpu_ids_mi100(): @@ -423,7 +425,8 @@ def test_filter_metrics_mi200(): "--path", "tests/workloads/mixbench/mi200", "-b", - "SQ, LDS", + "SQ", + "LDS", ], ): omniperf.main() @@ -440,7 +443,8 @@ def test_filter_metrics_inv_mi200(): "--path", "tests/workloads/mixbench/mi200", "-b", - "Crash, Test", + "Crash", + "Test", ], ): omniperf.main() @@ -474,11 +478,11 @@ def test_filter_gpu_inv_mi200(): "--path", "tests/workloads/mixbench/mi200", "-k", - "99", + "200", ], ): omniperf.main() - assert e.value.code == 2 + assert e.value.code == 1 def test_filter_dispatch_ids_mi200(): @@ -508,11 +512,11 @@ def test_filter_dispatch_ids_inv_mi200(): "--path", "tests/workloads/mixbench/mi200", "--dispatch", - "99", + "200", ], ): omniperf.main() - assert e.value.code == 0 + assert e.value.code == 1 def test_filter_gpu_ids_mi200():